Assistants API
Pathors 提供 OpenAI 兼容的 Assistants API 端点,用于构建助手体验。此接口遵循 OpenAI Assistants API 规范的子集。
支持的功能
目前,Assistants API 支持以下操作:
- 获取助手信息(您的项目作为助手)
- 创建对话线程
- 向线程添加消息
- 在线程上运行助手
- 一次性创建线程并运行助手
注意:部分 OpenAI Assistants API 功能尚未支持,包括流式响应和结构化工具输出。
基础 URL
/api/project/{projectId}/integration/api
所有 Assistants API 请求都需要使用 API 密钥进行认证。
Authorization: Bearer {your-api-key}
可用端点
方法 | 端点 | 描述 |
---|
GET | /v1/assistants/{assistant_id} | 获取助手 |
GET | /v1/assistants | 列出助手 |
对话线程
方法 | 端点 | 描述 |
---|
POST | /v1/threads | 创建对话线程 |
GET | /v1/threads/{thread_id} | 获取对话线程 |
方法 | 端点 | 描述 |
---|
POST | /v1/threads/{thread_id}/messages | 创建消息 |
GET | /v1/threads/{thread_id}/messages | 列出消息 |
GET | /v1/threads/{thread_id}/messages/{message_id} | 获取特定消息 |
方法 | 端点 | 描述 |
---|
POST | /v1/threads/{thread_id}/runs | 创建运行 |
GET | /v1/threads/{thread_id}/runs/{run_id} | 获取运行状态 |
POST | /v1/threads/runs | 一次性创建线程并运行 |
使用示例
基本对话流程
from openai import OpenAI
import time
# 使用 Pathors API URL 初始化客户端
client = OpenAI(
api_key="your-api-key",
base_url="https://app.pathors.com/api/project/your-project-id/integration/api"
)
# 获取助手(使用项目 ID 作为助手 ID)
assistant = client.beta.assistants.retrieve(assistant_id="your-project-id")
# 一步创建线程并开始运行(推荐方式)
run = client.beta.threads.create_and_run(
assistant_id="your-project-id",
thread={
"messages": [
{
"role": "user",
"content": "你好,能帮我解答一个问题吗?"
}
]
}
)
# 轮询直到完成
while run.status in ["queued", "in_progress"]:
time.sleep(1)
run = client.beta.threads.runs.retrieve(
thread_id=run.thread_id,
run_id=run.id
)
print(f"运行状态: {run.status}")
# 完成后列出所有消息
messages = client.beta.threads.messages.list(thread_id=run.thread_id)
for msg in messages.data:
print(f"[{msg.role}]: {msg.content[0].text.value}")
# 继续对话
client.beta.threads.messages.create(
thread_id=run.thread_id,
role="user",
content="我想了解更多关于这个主题的信息。"
)
# 在同一线程上再次运行助手
new_run = client.beta.threads.runs.create(
thread_id=run.thread_id,
assistant_id="your-project-id"
)
# 轮询直到完成
while new_run.status in ["queued", "in_progress"]:
time.sleep(1)
new_run = client.beta.threads.runs.retrieve(
thread_id=run.thread_id,
run_id=new_run.id
)
# 获取最新消息
updated_messages = client.beta.threads.messages.list(
thread_id=run.thread_id,
order="desc",
limit=1
)
print(f"[{updated_messages.data[0].role}]: {updated_messages.data[0].content[0].text.value}")
错误响应
状态码 | 描述 |
---|
400 | 无效的请求体 |
401 | 无效的认证 |
500 | 内部服务器错误 |
设置指南
- 在您的 Pathors 项目设置中启用 API 集成
- 在您项目的集成设置中生成 API 密钥
- 在您的请求中使用 API 密钥作为 Authorization 头部