我使用OpenAI API。我已经从PowerPoint演示文稿中提取了幻灯片文本,并为每张幻灯片编写了提示。现在,我想进行异步API调用,以便所有幻灯片能够同时处理。
这是异步主函数的代码:
for prompt in prompted_slides_text: task = asyncio.create_task(api_manager.generate_answer(prompt)) tasks.append(task)results = await asyncio.gather(*tasks)
这是generate_answer函数:
@staticmethod async def generate_answer(prompt): """ 向OpenAI API发送提示并获取答案。 :param prompt: 要发送的提示。 :return: 答案。 """ completion = await openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": prompt}] ) return completion.choices[0].message.content
问题是:
对象OpenAIObject不能在’await’表达式中使用
我不知道如何在generate_answer函数中等待响应
非常感谢任何帮助!
回答:
对于来到这里的人来说,错误可能在于对象的实例化。它应该是:
client = AsyncOpenAI(api_key=api_key)
然后你可以使用:
response = await client.chat.completions.create( model="gpt-4", messages=custom_prompt, temperature=0.9 )