OpenAI GPT3 Search API 在本地无法工作

我在自己的Jsonlines文件上使用GPT 3搜索模型的Python客户端。当我在Google Colab Notebook上运行代码进行测试时,它运行良好并返回搜索结果。但是,当我在本地机器(Mac M1)上作为一个运行在localhost上的Web应用程序使用Flask进行Web服务功能时,它会出现以下错误:

openai.error.InvalidRequestError: File is still processing.  Check back later.

即使我按照OpenAI文档中给出的完全相同的示例来实现,也会出现这个错误。搜索示例的链接在这里提供:搜索示例链接

如果我使用GPT3 playground使用的完成API,它在本地机器和colab notebook上运行得非常好。(代码链接

我的代码如下所示:

import openaiopenai.api_key = API_KEYfile = openai.File.create(file=open(jsonFileName), purpose="search")response = openai.Engine("davinci").search(          search_model = "davinci",           query = query,           max_rerank = 5,          file = file.id        )for res in response.data:    print(res.text)

有什么想法能解释这种奇怪的行为是如何发生的,以及我该如何解决吗?谢谢。


回答:

问题出在这行代码上:

file = openai.File.create(file=open(jsonFileName), purpose="search")

它返回带有文件ID和上传状态的调用,这使得看起来上传和文件处理已经完成。然后我将该文件ID传递给搜索API,但实际上它尚未完成处理,因此搜索API抛出了错误openai.error.InvalidRequestError: File is still processing. Check back later.

返回的文件对象看起来像这样(误导性):

enter image description here

它在Google Colab中工作是因为openai.File.create调用和搜索调用在两个不同的单元格中,这给了它时间在逐个执行单元格时完成处理。如果我在一个单元格中编写所有相同的代码,它也会在那里出现相同的错误。

因此,我不得不根据数据大小引入4-7秒的等待时间,在openai.File.create调用后使用time.sleep(5),然后再调用openai.Engine(“davinci”).search,这解决了问题。:)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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