如何在OpenAI API中同时运行多个Prompt并汇总结果?
批量运行OpenAI API多个Prompt的解决方案
当然可以批量运行多个Prompt,你可以通过Promise.all并行发起多个API请求,避免逐个等待的耗时,同时获取所有结果并合并到指定变量中。以下是修改后的示例代码:
import { Configuration, OpenAIApi } from "openai"; const configuration = new Configuration({ apiKey: process.env.OPENAI_API_KEY, }); const openai = new OpenAIApi(configuration); export default async function (req, res) { // 定义三个独立的Prompt const prompts = [ "介绍一下One", "介绍一下Two", "介绍一下Three" ]; // 并行发起所有API请求 const completions = await Promise.all( prompts.map(prompt => openai.createCompletion({ model: "text-davinci-002", temperature: 1, max_tokens: 1000, // 单个Prompt的token上限,可按需调整 top_p: 1, frequency_penalty: 2, presence_penalty: 2, prompt: prompt }) ) ); // 提取所有结果并合并到text变量 const text = completions.map(completion => completion.data.choices[0].text).join("\n\n"); res.status(200).json({ result: text }); }
关键说明:
- 将多个Prompt存入数组,通过
map方法为每个Prompt生成独立的API请求Promise Promise.all会等待所有并行请求完成,相比逐个串行请求能大幅提升效率- 最后将每个请求返回的结果文本拼接合并,存入
text变量后一次性返回
内容的提问来源于stack exchange,提问作者frosty
相关产品推荐
相关产品推荐

