背景

Chat Completions API 和 Assistants API 都是 OpenAI 提供的大语言模型交互 API。

  • Chat Completions API 是 无状态对话接口
  • Assistants API 是 有状态智能体接口

核心定位对比

API 核心用途 特点
Chat Completions API 直接调用语言模型进行单轮或多轮对话生成 轻量、灵活、无状态(默认不保存上下文)
Assistants API 构建持久化、有工具能力的“智能助手” 有状态(自动保存上下文)、支持工具和文件管理

功能对比

对比维度 Chat Completions API Assistants API
会话管理 默认无状态,需要客户端手动管理 messages 内置 threadsmessages,自动保存会话历史
工具调用 通过 function_call 手动声明和解析 内置工具(code interpreter、file search 等)+ 自定义工具
文件处理 不直接支持,需要外部逻辑 内置文件上传、搜索、引用
任务执行模式 同步返回结果 runs 概念,可异步执行长任务
多助手 需要在客户端管理不同模型/角色 支持创建多个 assistants,每个有独立配置(模型、工具等)
状态存储 需要你自己存储上下文 OpenAI 云端帮你存储(有历史消息上限)
调用复杂度 简单直接,几行代码就能跑 概念多(assistant → thread → run → message),学习成本高

使用场景

  • Chat Completions API 适合

    • 临时性、无状态对话
    • 简单任务(问答、生成文本)
    • 你自己管理上下文和工具逻辑的场景
  • Assistants API 适合

    • 需要长期对话的智能体(记住上下文)
    • 集成多个工具(搜索、代码运行、文件分析)
    • 多用户、多助手配置的 SaaS 类产品

调用示例

Chat Completions API

1
2
3
4
5
6
7
8
9
10
11
from openai import OpenAI
client = OpenAI()

resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "写一个Python冒泡排序"}
]
)
print(resp.choices[0].message.content)
  • 对应的API路径:POST /v1/chat/completions

Assistants API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from openai import OpenAI
client = OpenAI()

assistant = client.beta.assistants.create(
name="代码助手",
instructions="你是一个专业的Python开发助手",
model="gpt-4o-mini",
tools=[{"type": "code_interpreter"}]
)

thread = client.beta.threads.create()
client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="写一个Python冒泡排序"
)

run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id
)

# 等待 run 完成再获取输出
  • 对应的API路径
    1
    2
    3
    POST /v1/assistants       # 创建智能助手
    POST /v1/threads # 创建会话线程
    POST /v1/runs # 运行助手执行任务

5. 总结一句话

Chat Completions API 就像一支“即开即用的笔”——轻便、灵活,但不会帮你保存笔记;
Assistants API 更像一个“有笔记本、工具箱的专属助理”——功能多,但上手复杂。

推荐阅读