小编Shi*_*iva的帖子

OpenAI api - 异步 API 调用

我使用 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)
Run Code Online (Sandbox Code Playgroud)

这是generate_answer函数:

@staticmethod
    async def generate_answer(prompt):
        """
        Send a prompt to OpenAI API and get the answer.
        :param prompt: the prompt to send.
        :return: the answer.
        """
        completion = await openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": prompt}]

        )
        return completion.choices[0].message.content
Run Code Online (Sandbox Code Playgroud)

问题是:

对象 OpenAIOb​​ject 不能在“await”表达式中使用

我不知道如何等待generate_answer函数中的响应

将不胜感激任何帮助!

python python-asyncio openai-api

9
推荐指数
2
解决办法
2万
查看次数

防止字符串列表中字符串串联的编写风格

假设我有一个字符串列表/元组,

COLOURS = [
    "White",
    "Black",
    "Red"
    "Green",
    "Blue"
]

for c in COLOURS:
    # rest of the code
Run Code Online (Sandbox Code Playgroud)

有时我忘记在列表中的每个条目后面放置逗号("Red"在上面的代码片段中)。这会产生一个"RedGreen"而不是两个单独的"Red"列表"Green"项。

由于这是有效的 Python,因此没有 IDE/文本编辑器显示警告/错误。错误的值仅在测试过程中才会引起注意。

我应该使用什么写作风格或代码结构来防止这种情况?

python code-structure

7
推荐指数
1
解决办法
579
查看次数

在向量之间使用时如何解释大于和小于运算符(`<`、`>`)?

我尝试了以下变体:

vec![5, 5, 5] > vec![1, 1, 1]退货true
vec![5] > vec![1, 1, 1]退货true
vec![5, 0] > vec![6, 1]退货false
vec![1, 5, 2] > vec![0, 6, 1]退货true

似乎只有第一个元素用于确定输出;向量大小差异和其余元素在比较中被忽略。应该是这样吗?

数组似乎以相同的方式响应,唯一的区别是两个数组的大小应该相同。

rust

2
推荐指数
1
解决办法
74
查看次数