技术导读:大语言模型是人工智能的核心引擎,OpenAI Agents SDK模型层正是AI智能体的大脑!本文将为你深度剖析大语言模型如何工作、API怎么使用、模型怎么切换,保证通俗易懂,让你零基础也能玩转大模型。话不多说,开整!
一、什么是大语言模型(Model)?
模型可以理解为一个经过海量数据训练的人工智能系统,它拥有理解人类语言和生成自然文本回复的能力。说白了,它就是你熟悉的 GPT-4、DeepSeek(深度求索)、Qwen(通义千问)这些大模型。
简单类比一下:模型就像一个阅读了全世界大部分书籍、论文、代码的学者——博闻强识、逻辑缜密。你问它任何问题,它都会根据自己的“知识储备”给出一个合理的回答。
为什么模型能回答这么多不同领域的问题呢?因为它在训练过程中,学习了互联网上海量的文本(包括网页、书籍、论文、代码、新闻等),通过深度神经网络在海量数据中“悟”出了语言规律和世界知识。
这就好比你去一所全球最好的大学读了几十年书,不仅能背出高数的所有公式,还精通多国语言、深度学习、算法设计甚至法律条文。模型就是这样的一批“超级大学霸”。
二、为什么要使用大语言模型?
3个核心价值——理解、推理、生成,一个都不能少!
- 理解能力:可以把你说的日常语言,转化为可以被程序理解和执行的结构化信息。比如你说“帮我订明天中午12点半的闹钟”,模型能提取出“时间=明天12:30”“动作=设置闹钟”。
- 推理能力:可以进行逻辑思考和问题拆解。比如“张三比李四大,李四比王五大,谁最大?”模型能一步步推导出张三最大。
- 生成能力:可以根据你的需求,生成通顺、有逻辑、符合语境的文字回复,无论是写文案、写代码还是写故事,都不在话下。
三、如何使用大模型?两种API模式全面解析
国内很多开发者对大模型的接入方式感到云里雾里,到底是传统 Chat Completions API 好用,还是新型 Responses API 更强?我们分别来看,我尽可能详细地为大家拆解。
3.1 传统模式:Chat Completions API(对话补全接口)
先说说传统模式——Chat Completions API(对话补全接口)。它的设计初衷是把大模型当做一个“对话聊天角色”来调用,你需要手动传给模型的每句话和每一个历史消息。
Chat Completions API 的核心理念就是模拟多轮对话。每次调用时,你得精心构造messages列表,把 user(用户)、assistant(助手)、system(系统)等角色的历史对话全部塞在一起发给模型。
举个例子,你和AI聊了三轮,每次对话中,你都要把前三轮的聊天记录全部放在messages数组里,重新发给大模型。如果你不保存历史,它立马就忘了刚才说过什么。每次都得自己组装messages列表,压力大、成本高,还会超过模型的最大Token限制。
话不多说,直接上代码:
from openai import OpenAI
from dotenv import load_dotenv
import os
# 加载环境变量(强烈建议这么做,不要把API Key写在代码里)
load_dotenv()
# 键步:创建客户端,传入api_key和base_url
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
base_url=os.getenv("OPENAI_BASE_URL"),
)
# 核心调用:使用client.chat.completions.create方法
# 你需要手动构造一个完整的对话历史messages列表
response = client.chat.completions.create(
model=os.getenv("OPENAI_MODEL_NAME"), # 指定要使用的模型名称
messages=[ # 手动构造对话上下文,核心在这里
{"role": "system", "content": "你是一个专业的Python开发人员,精通Python编程。"},
{"role": "user", "content": "如何检查Python对象是否是类的实例?"}
],
temperature=0.7, # 控制回答的随机性,0~2之间值越高回答越有创意
)
# 打印模型返回的内容
print(response.choices[0].message.content)
代码关键步骤解释:
- 创建客户端:使用你从OpenAI官网获取的API Key,来创建一个OpenAI的客户端。注意务必使用环境变量管理Key,别直接写在代码里。
- messages列表:这里由多个字典组成,每个字典包含两个字段——role(角色)和content(内容)。role有3种:system(系统,设定AI的“人设”)、assistant(助理,记录AI的回答历史)、user(用户,记录你的当前问题)。
- response变量:通过client.chat.completions.create调用模型接口,返回的结果储存在response中。response.choices[0].message.content就是模型输出的最终文本。
Chat Completions API总结:你能用,但它存在两大问题:
- 手动管理聊天历史超级繁琐,而且每次请求都带上完整历史,造成大量重复Token浪费,成本高➊。
- 模型本身只是一个“无状态”聊天引擎,没有记忆,每次API请求都会把过去对话忘得一干二净。像金鱼一样,说完就忘。
3.2 新范式:Responses API(智能体响应接口,官方推荐)
接下来我们看看Responses API,这才是OpenAI为智能体(Agent)场景量身打造的新接口!
Responses API 是取代Chat Completions API的新一代接口,也是OpenAI Agents SDK默认推荐使用的模型接口。如果说Chat Completions是个“无状态的聊天机器人接口”,那么Responses API就是一个自带大脑、手脚和记忆的超级智能体(Agent)。
核心变革就一句话:从“无状态聊天”变成了“有状态智能体”。
举个例子,你用Chat Completions的时候,模型就是个金鱼,转个头就忘了我们刚才聊了什么,你得手动把整本“故事书”(完整的聊天历史)递给模型,让它接着写。但Responses API只需要你告诉模型:“接着上一个响应的ID继续聊”,模型自动在服务器端恢复完整的对话上下文和工具状态。
优势太明显了:
- 降本增效:不用重复发送每一轮对话历史,每次请求只发当前的input,大大节省Token➊。
- 记忆继承:模型能连续进行复杂的多步推理,不会中途“失忆”,任务完成率大幅提升。
- 原生工具调用:文件搜索、网络搜索、代码解释器通通支持,模型判断何时调用什么工具。
Responses API到底怎么用呢?直接上代码:
from openai import OpenAI
from dotenv import load_dotenv
import os
# 加载环境变量(安全的做法)
load_dotenv()
# 创建客户端
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
base_url=os.getenv("OPENAI_BASE_URL"),
)
# 这才是Responses API的核心调用方式
# 注意方法和参数都和Chat Completions API不同!
response = client.responses.create(
model=os.getenv("OPENAI_MODEL_NAME"), # 指定模型
input="写一个关于独角兽的睡前小故事", # 只需输入当前问题
# 可选:通过instructions传入系统级提示
# instructions="用温暖的语气写一个睡前故事"
)
# 注意!Responses API的输出结构更扁平,直接通过.output_text获取回复
print(response.output_text)
是不是简洁了很多?不需要手动构造messages数组,大大减少了代码量。
Responses API支持多轮对话的两种方式:
第一种是使用previous_response_id参数链式追溯:
# 第一轮
response1 = client.responses.create(
model="gpt-4o",
input="我叫张三"
)
print(response1.output_text)
# 第二轮 —— 通过previous_response_id继承上下文
# 模型会自动从第一轮中知道用户名叫张三,无需你手动传历史!
response2 = client.responses.create(
model="gpt-4o",
previous_response_id=response1.id, # 关键就在这里!
input="我叫什么名字?"
)
print(response2.output_text) # 输出应该是“你叫张三”
第二种是使用conversation_id让服务端自动管理会话历史。你只需传入id,API会自动维护对话上下文,多次请求之间无缝衔接,效率极高。
# 使用conversation_id开启一个自动管理的会话
conversation_id = "my_chat_session_001"
response1 = client.responses.create(
model="gpt-4o",
conversation=conversation_id, # 会话ID,后续持续同一个ID即可
input="我喜欢吃寿司和拉面"
)
response2 = client.responses.create(
model="gpt-4o",
conversation=conversation_id, # 同一会话ID,自动继承上文
input="那我能推荐我一家日料店吗?"
)
3.3 两种API模式全方位对比
为了让你看得更明白,我直接用表格对比Chat Completions API和Responses API的核心差异:
对比维度 | Chat Completions API(传统) | Responses API(全新智能体) |
设计理念 | 模拟多轮对话,维护messages列表 | 面向复杂智能体,自带记忆,简化上下文 |
上下文管理 | 手动维护整个messages数组 | 只需传本次input或previous_response_id |
输出结构 | 响应里包含choices等复杂对象 | 更扁平化的输出,直接output_text |
文件支持 | 手动将文件编码为文本 | 原生支持直接上传图片、PDF等文件 |
对话记忆 | 完全没有记忆,API调用完就忘 | 通过会话ID自动保持记忆,可维护长期对话 |
工具调用 | 需手动定义tools并处理tool_calls | 原生支持文件搜索、网络搜索等多种工具调用 |
智能体适配 | 传统聊天,不适合Agent开发 | 专为Agent构建而设计的统一控制平面 |
一句话总结:Chat Completions API 是“对话补全”,而Responses API 是“任务驱动的智能体” 。后者正是OpenAI Agents SDK的底层驱动引擎。
四、免费接入国产大模型,一步到位!阿里云百炼+DeepSeek实战
OpenAI官方API在国内访问不便,且成本不菲。好消息是:国产大模型几乎全面兼容OpenAI的API格式!阿里云百炼、DeepSeek、通义千问、智谱GLM等均支持这种接入方式,开发者几乎不需要改代码,只要调整api_key、base_url和model这3个地方即可。
4.1 实战一:阿里云百炼 + Qwen3-Max(通义千问)接入
我们先看阿里云百炼平台的Qwen3-Max接入方式。你需要做的事只有三步:
- 注册阿里云账号,在百炼控制台创建API Key
- 配置base_url为阿里云百炼的服务端点
- 调用OpenAI SDK发送请求,模型参数换为阿里支持的型号
from openai import OpenAI
from dotenv import load_dotenv
import os
load_dotenv()
# 注意:只需替换api_key和base_url,其余代码基本不用改!
client = OpenAI(
api_key=os.getenv("AL_BAILIAN_API_KEY"), # 请换成阿里云百炼生成的实际API Key
base_url=os.getenv("AL_BAILIAN_BASE_URL"), # 阿里云百炼通用的OpenAI兼容接口地址
)
# 使用阿里云百炼上的通义千问模型
response = client.chat.completions.create(
model=os.getenv("AL_BAILIAN_MODEL_NAME"), # 指定模型,如qwen3-max或qwen3.6-plus
messages=[
{"role": "system", "content": "你是一个乐于助人的AI助手,擅长Python开发。"},
{"role": "user", "content": "你是谁?"}
],
temperature=0.5, # 控制输出随机性,数值越低越准
)
print(response.choices[0].message.content)
重要注意点: 截至目前,阿里云百炼仅支持client.chat.completions.create方式,暂时还不完全支持Responses API模式调用。但阿里官方表示正在逐步适配。
4.2 实战二:DeepSeek V4 极速接入(成本极低、推理能力超强)
DeepSeek近年来火爆全球,核心优势有三:成本极低(百万Token低至几毛钱)、推理能力超强、完全兼容OpenAI接口格式。
接入DeepSeek API和接入OpenAI API近乎完全一样,只需修改base_url和api_key!下面是完整代码示例:
from openai import OpenAI
import os
# 你可能需要直接从环境变量读取DeepSeek的API Key和接口地址
client = OpenAI(
api_key=os.getenv("DEEPSEEK_API_KEY"), # deepseek的API Key
base_url="https://api.deepseek.com/v1", # deepseek官方OpenAI兼容端点[reference:9]
)
response = client.chat.completions.create(
model="deepseek-v4-pro", # 模型ID选择deepseek-v4-pro或deepseek-v4-flash[reference:10]
messages=[
{"role": "system", "content": "你是一个高效的代码助手。"},
{"role": "user", "content": "用Python写一个快排算法"}
],
temperature=0.2, # 代码生成建议用低温度0.2保持精度
)
print(response.choices[0].message.content)
4.3 国产大模型接入建议
整体建议如下:
- 日常应用、轻量化任务:优先考虑阿里云百炼Qwen3.5-Flash模型,免费额度充足。
- 代码生成和逻辑推理场景:选择DeepSeek V4系列,低温度参数、代码准确率极高。
- 需要联网搜索等工具能力:可以尝试百炼上的带工具调用高级扩展模型。
国产大模型的接入门槛越来越低了!记住一句话:所有兼容OpenAI API格式的模型,理论上你能够在1分钟内完成切换,三个关键参数即可。
五、Responses API实战:多轮对话无痕衔接
Responses API支持两种多轮对话方式,我们直接实测第二个示例(使用conversation_id保持完整会话):
from openai import OpenAI
from dotenv import load_dotenv
import os
load_dotenv()
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
base_url=os.getenv("OPENAI_BASE_URL"),
)
# 定义统一的会话ID,这将贯穿整个聊天过程
SESSION_ID = "agent_tutorial_session_001"
# 第一轮对话:设定基本信息
response1 = client.responses.create(
model=os.getenv("OPENAI_MODEL_NAME"),
conversation=SESSION_ID, # 绑定会话ID
input="我的名字是小王"
)
print(f"[AI第一轮回复]:{response1.output_text}")
# 第二轮对话:自动知道我叫小王,不需要重发历史
response2 = client.responses.create(
model=os.getenv("OPENAI_MODEL_NAME"),
conversation=SESSION_ID, # 传入同一ID,自动加载历史记录
input="我刚才介绍过自己了,你还记得我叫什么名字吗?"
)
print(f"[AI第二轮回复]:{response2.output_text}")
# 第三轮对话:AI应该能知道用户叫“小王”
response3 = client.responses.create(
model=os.getenv("OPENAI_MODEL_NAME"),
conversation=SESSION_ID, # 完全自动继承前两轮的完整上下文
input="请根据我的名字推荐一款英文名"
)
print(f"[AI第三轮回复]:{response3.output_text}")
这段代码完美展示了Responses API的核心优势:AI在整个会话期间无需你手动传递历史,就能牢牢记住用户是谁,上下文零丢失!
六、模型层的最佳实践与技巧
基于上述内容,关于OpenAI Agents SDK模型层的最佳实践,我给你列举了如下几条核心建议:
- 优先使用Responses API:OpenAI官方明确推荐在为Agent智能体构建应用时选择Responses API,因为它支持和模型原生状态管理、多轮工具调用等高级特性。
- 配合国产大模型降低成本和延迟:部署阿里云百炼或DeepSeek系列,大幅降低API调用成本,几乎兼容所有OpenAI SDK调用代码。
- 设计智能体时尽量设置会话ID:通过conversation_id参数,完美解决智能体场景下的长期对话记忆痛点。
- 工具调用交给Responses API原生态:当需要文件搜索、联网搜索或代码解释器能力时,尽量使用Responses API内置工具,比手动配置工具宽松更稳定。
- 控制temperature训练专业智能体:针对代码生成、逻辑推理类任务temperature建议设0.2以下;创意写作类任务0.5~0.8为宜。
- 善用环境变量管理API Key:任何时候不要硬编码API密钥,实践中务必通过load_dotenv()等方案去环境变量中加载。
七、全文总结
本文以OpenAI Agents SDK中的模型层(Model Plane)为主线,从大语言模型的基本概念出发,深入对比了传统Chat Completions API和全新Responses API两种接入方式的差异和优劣势,并给出了各自的完整可运行Python代码示例。
总结如下:
- ✅ 清晰理解大语言模型的核心价值:理解、推理、生成。
- ✅ 掌握Chat Completions API手动构造messages的用法和局限性。
- ✅ 学会使用官方推荐的Responses API——支持会话管理、多步推理和工具调用。
- ✅ 快速切换国内优质大模型(阿里云百炼通义千问、DeepSeek)的方法和具体代码。
- ✅ 掌握conversation_id等多轮对话管理的最佳实践。
2026年,AI Agent的浪潮正在席卷各个领域。OpenAI Agents SDK模型层无疑是这座金字塔的基础,掌握了它,你就掌握了智能体时代的核心驱动力。建议你按照本文的示例动手实践一下,遇到问题欢迎在评论区交流讨论!