OpenAI Assistants API: 每次我在线程中添加新消息时,是否会将整个线程和所有过去的消息发送到API?

在使用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个代币。图片显示了今天三个请求的代币使用情况。

Screenshot

开发者没有理解的是,您最近的消息可能包含1,000个代币,但您还需要记住,过去由您提问或助手回答的数百条消息也被发送到了Assistants API。

然而,每个线程有100,000条消息的限制。正如官方OpenAI文档中所述:

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注