在Postman调用OpenAI Assistants API遇404错误的排查求助
问题:调用OpenAI助手API返回404 Not Found
我通过platform.openai.com创建了一个助手,尝试在Postman中调用它:
- POST请求地址:
https://api.openai.com/v1/assistants/{assistant-id}/completions - 请求体:
{ "prompt": "Tell me a funny daddy joke about computers.", "max_tokens": 60 }
- 请求头:
- Authorization: Bearer API_KEY
- Content-Type: application/json
- OpenAI-Beta: assistans=V1
但收到404响应:
{ "error": { "message": "Invalid URL (POST /v1/assistants/asst_EKb5utNB3oVKBHsZusxKKijO/completions)", "type": "invalid_request_error", "param": null, "code": null } }
测试请求https://api.openai.com/v1/assistants/{assistant-id}(请求体为{})可正常获取助手信息,说明授权有效。请问第一种调用方式的问题出在哪里?
问题原因及解决方案
你的调用方式存在两个核心问题:
1. API端点完全错误
OpenAI Assistants API的交互逻辑不是直接通过/assistants/{id}/completions生成内容,而是需要遵循线程-消息-运行的流程:
- 先创建一个对话线程
- 向线程中添加用户消息
- 触发助手在该线程上运行
- 轮询运行状态,待完成后获取生成的回复
你使用的/assistants/{assistant-id}/completions这个端点根本不存在,因此返回404错误。
2. 请求头拼写错误
请求头中的OpenAI-Beta字段值拼写错误,应该是assistants=v1(注意是assistants而非assistans,且版本号为小写v1)。
正确的调用流程示例
步骤1:创建线程
POST https://api.openai.com/v1/threads Headers: Authorization: Bearer API_KEY Content-Type: application/json OpenAI-Beta: assistants=v1 Body: {}
步骤2:向线程添加用户消息
POST https://api.openai.com/v1/threads/{thread_id}/messages Headers: Authorization: Bearer API_KEY Content-Type: application/json OpenAI-Beta: assistants=v1 Body: { "role": "user", "content": "Tell me a funny daddy joke about computers." }
步骤3:触发助手运行
POST https://api.openai.com/v1/threads/{thread_id}/runs Headers: Authorization: Bearer API_KEY Content-Type: application/json OpenAI-Beta: assistants=v1 Body: { "assistant_id": "{your-assistant-id}", "max_tokens": 60 }
步骤4:轮询运行状态并获取结果
发送GET请求查询运行状态,直到status变为completed:
GET https://api.openai.com/v1/threads/{thread_id}/runs/{run_id} Headers: Authorization: Bearer API_KEY OpenAI-Beta: assistants=v1
状态完成后,获取线程中的所有消息(包含助手回复):
GET https://api.openai.com/v1/threads/{thread_id}/messages Headers: Authorization: Bearer API_KEY OpenAI-Beta: assistants=v1
内容的提问来源于stack exchange,提问作者Rokas Cvirka
相关产品推荐
相关产品推荐

