OpenAI Assistants API完整教程2026:构建持久化AI助手
线程管理、代码解释器、文件搜索——Assistants API全功能实战
返回教程列表功能 Chat API Assistants API 对话记忆 需自己管理 自动(Threads)
代码执行 不支持 Code Interpreter
文件搜索 不支持 File Search(RAG)
异步处理 不支持 Runs状态机 Assistant:定义AI角色,一次创建多次复用
Thread:一次对话,保存所有消息历史
Run:执行一次Assistant调用(queued → in_progress → completed) 设置 max_completion_tokens 控制费用
Run执行需要几十秒,需要polling或webhook
定期清理长期不活跃的Thread
进阶约 10 分钟
OpenAI Assistants API完整教程2026:构建持久化AI助手
线程管理、代码解释器、文件搜索——Assistants API全功能实战
OpenAI Assistants API提供了构建对话式AI应用的完整基础设施,包括持久化线程、代码解释器、文件搜索等功能。本文通过完整Python示例讲解所有核心功能。
OpenAIAssistants APIGPT-4Python
OpenAI Assistants API完整教程2026
为什么选择Assistants API?
核心概念
完整示例
python
from openai import OpenAI
client = OpenAI()创建助手
assistant = client.beta.assistants.create(
name="数据分析助手",
instructions="你是专业的数据分析师。",
model="gpt-4o",
tools=[{"type": "code_interpreter"}, {"type": "file_search"}]
)创建线程和发送消息
thread = client.beta.threads.create()
client.beta.threads.messages.create(
thread_id=thread.id, role="user",
content="分析销售数据,找出增长最快的类别"
)运行并获取结果
run = client.beta.threads.runs.create_and_poll(
thread_id=thread.id, assistant_id=assistant.id
)
if run.status == 'completed':
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(messages.data[0].content[0].text.value)
文件搜索(内置RAG)
python
file = client.files.create(file=open("docs.pdf", "rb"), purpose="assistants")
vs = client.beta.vector_stores.create(name="知识库")
client.beta.vector_stores.files.create(vector_store_id=vs.id, file_id=file.id)
client.beta.assistants.update(
assistant_id=assistant.id,
tool_resources={"file_search": {"vector_store_ids": [vs.id]}}
)
流式输出
python
with client.beta.threads.runs.stream(thread_id=thread.id, assistant_id=assistant.id) as stream:
for text in stream.text_deltas:
print(text, end="", flush=True)
生产环境注意事项
相关工具
OpenAIGPT-4LangChain