# How does multi-turn conversation work in the o1-preview Chat Completion API?

**URL:** <https://community.openai.com/t/how-does-multi-turn-conversation-work-in-the-o1-preview-chat-completion-api/949837>\
**Category:** API\
**Tags:** o1-preview\
**Created:** [September 21, 2024, 1:04am UTC](https://community.openai.com/t/how-does-multi-turn-conversation-work-in-the-o1-preview-chat-completion-api/949837 "2024-09-21T01:04:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jarrelscy1](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/jarrelscy1/32/464908_2.png) [@jarrelscy1](https://community.openai.com/u/jarrelscy1)\
**Post date:** [September 21, 2024, 1:04am UTC](https://community.openai.com/t/how-does-multi-turn-conversation-work-in-the-o1-preview-chat-completion-api/949837/1 "2024-09-21T01:04:18Z")

</div>

Previously when using the Chat Completion API, to support multi-turn conversation, we would maintain the state of the conversation in our app and replay the ‘assistant’ messages.

With o1-preview, given that we don’t get access to the reasoning tokens, what is the best practice in maintaining the conversation state? Do we replay just the assistant message without the reasoning token? Would this reduce the accuracy of o1-preview, or lead to unnecessary tokens being generated in the second turn of the conversation as o1-preview might have to ‘rethink’ through the problem again?

---

<div class="post-metadata">

**Author:** ![\_j](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/_j/32/766292_2.png) [@\_j](https://community.openai.com/u/_j)\
**Post date:** [September 21, 2024, 2:33am UTC](https://community.openai.com/t/how-does-multi-turn-conversation-work-in-the-o1-preview-chat-completion-api/949837/2 "2024-09-21T02:33:42Z")

</div>

You have to just accept that you can only pass the last final AI response. Unlike ChatGPT currently, the stateless chat completions AI will never see past reasoning context until you are also able to view it, or can link in a chain of past completion IDs as context, neither which seems likely.

---

<div class="post-metadata">

**Author:** ![sps](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/sps/32/7736_2.png) [@sps](https://community.openai.com/u/sps)\
**Post date:** [September 21, 2024, 5:59am UTC](https://community.openai.com/t/how-does-multi-turn-conversation-work-in-the-o1-preview-chat-completion-api/949837/3 "2024-09-21T05:59:14Z")

</div>

Welcome @jarrelscy1

Per the docs, reasoning tokens are discarded:

> ## [How reasoning works](https://platform.openai.com/docs/guides/reasoning/how-reasoning-works)
> 
> The o1 models introduce reasoning tokens. The models use these reasoning tokens to “think”, breaking down their understanding of the prompt and considering multiple approaches to generating a response. After generating reasoning tokens, the model produces an answer as visible completion tokens, and discards the reasoning tokens from its context.
> 
> Here is an example of a multi-step conversation between a user and an assistant. Input and output tokens from each step are carried over, while reasoning tokens are discarded.
> 
> ![The image visually explains how the input, reasoning, and output processes work across multiple turns within a set context window of 128k tokens, highlighting that the reasoning is discarded with only input and output retained from the previous turn. (Captioned by AI)](https://us1.discourse-cdn.com/openai1/original/4X/7/b/9/7b9a1766ec182e5753cef660cfb3bc05d100ba1e.png)

---

<div class="post-metadata">

**Author:** ![Starwave](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/starwave/32/174920_2.png) [@Starwave](https://community.openai.com/u/Starwave)\
**Post date:** [September 21, 2024, 6:16am UTC](https://community.openai.com/t/how-does-multi-turn-conversation-work-in-the-o1-preview-chat-completion-api/949837/4 "2024-09-21T06:16:04Z")

</div>

I don’t see a difference in how multi-turn conversation would work between o1-preview or gpt-4o. For example I save all the user and assistant messages in a database and I pass them all along in new requests. I would not really want to store or pass any reasoning tokens anyway even if we had to them, but regardless they are not needed for multi-turn conversations.
