Assistant API如何调用?Openai API调用手册

Assistant工作流程 1.创建助手 由于助手和线程是可重复使用的,你应该在创建它们之后保存它们的 ID。这样,你可以避免每次都重新创建它们,从而提高效率。 可以将它们保存在数据库、环境

先上代码

js
复制代码
import OpenAI from "openai"; const openai = new OpenAI({ baseURL: '你的代理地址', apiKey: '你的apikey' }); //创建助手 async function Assistant() { const response = await openai.beta.assistants.create({ instructions: "这是一个测试程序", name: "测试", model: "gpt-4", }); return response.id; // 返回助手的 ID } //创建线程 async function Thread() { const response = await openai.beta.threads.create(); return response.id; // 返回线程的 ID } //添加聊天消息的函数 async function messages(threadId) { const response = await openai.beta.threads.messages.create( threadId, { role: "user", content: "How does AI work? Explain it in simple terms." } ); console.log(response.content); } //启动运行 async function run(threadId, assistantId) { const response = await openai.beta.threads.runs.create( threadId, { assistant_id: assistantId } ); return response.id } //查询线程运行状态,非completed则等待后查询 async function runstatus(threadId, runId) { let run; do { run = await openai.beta.threads.runs.retrieve( threadId, runId ); if (run.status !== "completed") { console.log("Run is not completed, waiting..."); await new Promise(resolve => setTimeout(resolve, 5000)); // 等待5秒 } } while (run.status !== "completed"); console.log("Run completed:", run); } //获取全部聊天消息 async function messageslist(threadId) { const messages = await openai.beta.threads.messages.list(threadId); console.log(messages); } async function main() { try { const assistantId = await Assistant(); const threadId = await Thread(); await messages(threadId); const runId = await run(threadId, assistantId); await runstatus(threadId, runId); await messageslist(threadId); } catch (error) { console.error("An error occurred:", error); } } main();

Assistant工作流程

1.创建助手

  • 由于助手和线程是可重复使用的,你应该在创建它们之后保存它们的 ID。这样,你可以避免每次都重新创建它们,从而提高效率。
  • 可以将它们保存在数据库、环境变量或配置文件中,以便在未来的运行中重用。

2.创建线程

  • 通过线程与助手进行对话,不同线程互不相干,且单个线程中聊天记录始终保存,直到上限被刷新。

3.加入消息

  • 相较于chat类型api,Assistant api无需每次都传入全部聊天记录,只需要向线程中添加消息,则可实现山修改文关联

4.run起来,获得runid

  • 启动线程运行,获取运行id,然后监测运行状态。

5.获取run状态,检测run是否结束

  • 监测运行状态,如果Assistant线程处理结束,则可以提取消息

6.拿到助手回复,及获取messagelist

  • 获取到消息列表,Assistant最新回答都在里面。

Assistant继续使用

  1. 向线程中添加消息
  2. run
  3. run结束后获取消息列表
  4. 示例代码
js
复制代码
//添加消息 async function messagesinput(threadId, input) { const response = await openai.beta.threads.messages.create( threadId, { role: "user", content: input } ); console.log(response.content); } async function chat() { await messagesinput('thread_0WtWyk8pKhPm2fSdH5HSX53l', "你好啊"); const runId = await run('thread_0WtWyk8pKhPm2fSdH5HSX53l', 'asst_7MFbYPHSWhHHEQkXlukIFr0F'); await runstatus('thread_0WtWyk8pKhPm2fSdH5HSX53l', runId); await messageslist('thread_0WtWyk8pKhPm2fSdH5HSX53l'); } chat()

Assistant的优势与不足

不足

  • 不支持流式
  • 暂不支持传入图片
  • 需要自行检测run状态,无法主动告知

优势

  • 无需传入大量聊天记录,可以进行文献检索

  • 支持自定义结束等多种功能

  • 不足将在未来几个月得到解决(此文章发布于2023/11/26)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
人工智能

程序员使用openai处理办公问题

2024-5-14 21:33:34

人工智能

如何在langchain中对大模型的输出进行格式化

2024-5-15 1:33:02

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索