在 OpenAI api 中,如果我在线程中发送消息,ChatGPT 是否会使用线程中所有先前的消息来计算令牌

问题描述 投票:0回答:1

在使用消息补全API时,我了解到在发送需要包含历史记录的新消息时,需要包含来自用户和助手的消息轨迹(包括系统消息)。

使用线程,您不需要这样做,它会记住您发送的消息。我的问题是,在这种情况下代币消费会怎样?之前的所有消息都会包含在输入令牌的计算中吗?

multithreading openai-api assistant
1个回答
0
投票

如果您长时间使用同一个线程,助手 API 中的令牌消耗可能会非常非常高,因为该线程正在存储消息历史记录,并且每次您使用现有线程提出新问题时都会将整个线程传递给 API .

一段时间后,即使消息很短,您向 Assistants API 询问的一条消息也可能会花费大量成本。查看过去的讨论

/.../

该消息包含大约 1000 个令牌,通过检查 https://platform.openai.com/tokenizer

/.../

此代码大约需要 250,000 个代币才能完成。图片显示 今天三个请求的令牌使用情况。

Screenshot

开发人员不明白的是,您最近的消息可能包含 1,000 个令牌,但您还需要记住,您过去询问或助手回复的数百条消息也被发送到助手API。

但是,每个线程的消息数限制为 100,000 条。正如官方OpenAI文档中所述:

您的用户或应用程序创建的消息的内容是 作为消息对象添加到线程中。消息可以包含两种文本 和文件。每个线程的消息数限制为 100,000 条,我们 巧妙地截断任何不适合模型的上下文 上下文窗口。

© www.soinside.com 2019 - 2024. All rights reserved.