在使用Chat Completions API时,我了解到如果想要Chat Completions API能够包含聊天历史记录,在提问新问题时,需要包含用户的问题和OpenAI API的回答(包括系统消息)。
使用Assistants API时,您不需要这样做,它会记住聊天历史记录。
我的问题是,在使用Assistants API的情况下,代币消耗情况如何?过去的所有消息都会计入代币消耗吗?
回答:
如果您长时间使用同一个线程,Assistants API的代币消耗可能会非常高,因为线程会存储消息历史记录,并且每次您使用现有线程提问新问题时,都会将整个线程发送到API。
一段时间后,即使您提问的消息很短,向Assistants API提问的单条消息的成本也可能很高。请查看过去的讨论:
/ … /
消息包含大约1000个代币,通过https://platform.openai.com/tokenizer检查
/ … /
这段代码完成大约需要250,000个代币。图片显示了今天三个请求的代币使用情况。
开发者没有理解的是,您最近的消息可能包含1,000个代币,但您还需要记住,过去由您提问或助手回答的数百条消息也被发送到了Assistants API。
然而,每个线程有100,000条消息的限制。正如官方OpenAI文档中所述:
您的用户或应用程序创建的消息内容会作为消息对象添加到线程中。消息可以包含文本和文件。每个线程的限制为100,000条消息,我们会智能地截断任何不适合模型上下文窗口的内容。