调用大模型 API
用 Python 调用 LLM API,理解请求与响应结构
- 理解大模型 API 的工作原理
- 掌握用 requests 发送聊天请求
- 理解 messages 角色体系
- 学会解析流式与非流式响应
调用大模型 API
写 AI Agent 第一步,得让 Python 程序能和大模型对话。这节课就学怎么通过 API 调用大语言模型(LLM),比如各类主流大模型服务。
API就是程序之间对话的窗口。你发一段消息给大模型服务器,它返回一段AI生成的回复。整个过程就像发微信:你发消息→对方回复。
准备工作
调用 API 需要三样东西:
# 1. 安装 requests 库(发 HTTP 请求用)
# pip install requests
# 2. API Key(密钥,证明你有权限调用)
# 在任意大模型服务平台申请
# 3. API 地址(endpoint)
# 在所选模型服务的文档中获取,多数服务都兼容 /v1/chat/completions 格式第一次调用
下面是调用大模型 API 的标准代码。在浏览器里用模拟数据演示,真实环境里替换 API Key 就能运行。
API Key 是最高级别的机密,绝对不能硬编码在代码里,更不能提交到 Git。就这么简单。别这么写。正确做法:用环境变量 os.environ.get("ARK_API_KEY") 或 .env 文件 + python-dotenv 加载。生产环境还要考虑:API 调用超时设置(建议 30-60 秒)、重试机制(tenacity 库指数退避)、速率限制(429 错误处理)、成本监控(token 用量统计)。这些是工业级 AI 应用的标配。
messages 角色体系
大模型 API 的核心是 messages 列表,每条消息有一个 role(角色):
大模型本身是无状态的——它不记得之前说过什么。多轮对话的秘密是:每次请求都把完整的历史消息传回去。对话越长,发送的数据越多,费用也越高。生产环境通常会对历史消息做截断或摘要。
核心参数
msgs = [
{"role": "system", "content": "你是翻译官。"},
{"role": "user", "content": "你好"}
]
print(len(msgs))
print(msgs[0]["role"])API 调用按 token 计费,输入输出都算 token,长对话可能有几千 token。开发时注意:别在循环里无节制调用 API;给 max_tokens 设上限;用便宜的模型做测试,贵的模型做生产。
封装一个 LLM 客户端
真实项目里,就把 API 调用封装成一个类,方便复用和管理。
动手练习
修改上面的 LLMClient,添加一个 set_system_prompt 方法,允许中途修改 system prompt。
AI Agent 和普通聊天机器人的核心区别是啥?
Function Calling 的作用是?
Agent 开发中,Prompt Engineering 的关键是?
Agent 调用外部工具时,从工程安全角度应当?
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
纯向量检索懂「语义相近」,却对错误码、型号、专有缩写不敏感;纯关键词(BM25)精于字面却不懂同义。生产级 RAG 用混合检索把两路结果用 RRF 融合先宽召回(如 top-50),再用更贵但更准的交叉编码器 rerank 精排取 top-5 进上下文,兼顾「不漏」与「最相关在前」。检索质量往往比换更大的模型更能决定问答好坏。
挑战任务
LLM 客户端封装
封装一个带历史记录的聊天客户端
课后作业
创建命令行聊天机器人
用 LLMClient 类写个 while 循环,不断接用户输入,调用 chat(),输 quit 就退出。