# ChatPromptTemplate

> **Class** in `@langchain/core`

📖 [View in docs](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate)

Class that represents a chat prompt. It extends the
BaseChatPromptTemplate and uses an array of BaseMessagePromptTemplate
instances to format a series of messages for a conversation.

## Signature

```javascript
class ChatPromptTemplate
```

## Extends

- `BaseChatPromptTemplate<RunInput, PartialVariableName>`

## Implements

- `ChatPromptTemplateInput<RunInput, PartialVariableName>`

## Constructors

- [`constructor()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/constructor)

## Properties

- `inputVariables`
- `lc_kwargs`
- `lc_namespace`
- `lc_runnable`
- `lc_serializable`
- `metadata`
- `name`
- `outputParser`
- `partialVariables`
- `promptMessages`
- `PromptValueReturnType`
- `tags`
- `templateFormat`
- `validateTemplate`
- `lc_aliases`
- `lc_attributes`
- `lc_id`
- `lc_secrets`
- `lc_serializable_keys`

## Methods

- [`_batchWithConfig()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/_batchWithConfig)
- [`_callWithConfig()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/_callWithConfig)
- [`_getOptionsList()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/_getOptionsList)
- [`_getPromptType()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/_getPromptType)
- [`_separateRunnableConfigFromCallOptions()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/_separateRunnableConfigFromCallOptions)
- [`_streamIterator()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/_streamIterator)
- [`_streamLog()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/_streamLog)
- [`_transformStreamWithConfig()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/_transformStreamWithConfig)
- [`assign()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/assign)
- [`asTool()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/asTool)
- [`batch()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/batch)
- [`format()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/format)
- [`formatMessages()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/formatMessages)
- [`formatPromptValue()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/formatPromptValue)
- [`getGraph()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/getGraph)
- [`getName()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/getName)
- [`invoke()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/invoke)
- [`mergePartialAndUserVariables()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/mergePartialAndUserVariables)
- [`partial()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/partial)
- [`pick()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/pick)
- [`pipe()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/pipe)
- [`stream()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/stream)
- [`streamEvents()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/streamEvents)
- [`streamLog()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/streamLog)
- [`toJSON()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/toJSON)
- [`toJSONNotImplemented()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/toJSONNotImplemented)
- [`transform()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/transform)
- [`withConfig()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/withConfig)
- [`withFallbacks()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/withFallbacks)
- [`withListeners()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/withListeners)
- [`withRetry()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/withRetry)
- [`fromMessages()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/fromMessages)
- [`fromTemplate()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/fromTemplate)
- [`isRunnable()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/isRunnable)
- [`lc_name()`](https://reference.langchain.com/javascript/langchain-core/prompts/ChatPromptTemplate/lc_name)

## Examples

```typescript
const message = SystemMessagePromptTemplate.fromTemplate("{text}");
const chatPrompt = ChatPromptTemplate.fromMessages([
  ["ai", "You are a helpful assistant."],
  message,
]);
const formattedChatPrompt = await chatPrompt.invoke({
  text: "Hello world!",
});
```

---

[View source on GitHub](https://github.com/langchain-ai/langchainjs/blob/82a6b8ebf1a876b0ac819f2ee0ae6c6582031cb5/libs/langchain-core/src/prompts/chat.ts#L924)