---
title: ChatEngine | Developer Documentation
---

The chat engine is a quick and simple way to chat with the data in your index.

```
const retriever = index.asRetriever();
const chatEngine = new ContextChatEngine({ retriever });


// start chatting
const response = await chatEngine.chat({ message: query });
```

In short, you can use the chat engine by calling `index.asChatEngine()`. It will return a `ContextChatEngine` to start chatting.

```
const chatEngine = index.asChatEngine();
```

You can also pass in options to the chat engine.

```
const chatEngine = index.asChatEngine({
  similarityTopK: 5,
  systemPrompt: "You are a helpful assistant.",
});
```

The `chat` function also supports streaming, just add `stream: true` as an option:

```
const chatEngine = index.asChatEngine();
const stream = await chatEngine.chat({ message: query, stream: true });
for await (const chunk of stream) {
  process.stdout.write(chunk.response);
}
```

## Api References

- [ContextChatEngine](/typescript/framework-api-reference/classes/contextchatengine/index.md)
- [CondenseQuestionChatEngine](/typescript/framework-api-reference/classes/condensequestionchatengine/index.md)
- [SimpleChatEngine](/typescript/framework-api-reference/classes/simplechatengine/index.md)
