AI 系列课程第一季 ——《Easy Data x AI》完整课程内容传送门
大家好,我们今天更新了 Easy Data x AI 课程中“术篇”的第一讲 —— 大模型 API 基础。
欢迎大家点击上方链接,学习完整课程内容~
本期课程使用 LangChain(langchain-openai)作为开发框架。LangChain 是目前最流行的大模型应用开发框架之一,它在原生 OpenAI SDK 之上提供了更高层的抽象——统一的模型接口、标准化的工具调用、便捷的流式处理——让你用更少的代码做更多的事。更重要的是,当你未来需要切换模型供应商(从 OpenAI 换到 Anthropic、Google 等),LangChain 的代码几乎不用改。
本期课程涉及的代码,均在 github easy-data-x-ai 项目的 code 目录中(欢迎大家 star 和参与课程共建)。
# ============================================================
# 示例代码简介:从 d1_1 到 d1_6 的演进
#
# d1_1 基础调用 → 用代码调用大模型(一问一答)
# d1_2 多轮对话 → 手动维护消息历史
# d1_3 流式输出 → 提升用户体验
# d1_4 Tool Use Mock → 手动编排工具调用流程(假数据)
# d1_5 Tool Use Real → 手动编排 + 真实向量检索(seekdb)
# d1_6 Agent 循环 → 自动化的"推理→行动→观察"多轮循环
#
# d1_4/d1_5 中你手动写的那些 if/else 逻辑,
# 在 d1_6 中被 create_agent 一行代码替代了!
#
# create_agent 底层基于 LangGraph,自动处理了:
# 1. 把工具绑定到模型
# 2. 调用模型,检查是否有 tool_calls
# 3. 如果有,执行工具,把结果以 role:"tool" 格式传回
# 4. 循环直到模型给出最终回答
#
# 这就是 F2 中说的:
# "Agent 不是'一个更聪明的 ChatGPT',
# 而是一个具有'感知→推理→行动'循环能力的系统。"
# ============================================================
复制
.env.example为.env,并在.env文件中填写你的真实 API Key,即可直接执行对应章节的示例代码。推荐大家可以通过在硅基流动上注册账号,获取 API 密钥,使用免费模型
tencent/Hunyuan-MT-7B或者deepseek-ai/DeepSeek-OCR来亲自体验一下。
写代码控制 AI:开发者必学的两个基础能力
上节课我们搞清楚了 Agent 的架构:
LLM 是大脑,外挂 RAG + Memory + Skill + MCP
这节课换成开发者视角——
怎么用代码真正控制大模型?
往下看 ![]()
对话的本质:一个消息列表
模型没有记忆,你发给它的永远是完整历史:
· system → 人设说明,控制 Agent 行为的核心杠杆
· user → 用户的话
· assistant → 模型的回复
多轮对话 = 每次把历史消息重新发一遍
能发多少,取决于上下文窗口能装多少 Token
Streaming:生产环境的标配
首 Token 延迟(TTFT)比总生成时间更重要
非流式:等 10 秒全部出现 → 用户:系统卡死了?
Streaming:0.3 秒首字出现 → 用户:AI 在思考
代码只差一个词:invoke → stream
凡是面向用户的 AI 回答,都应该用 Streaming
Tool Use:从「只能说」到「能做事」
大模型只有一个能力:根据文字,生成文字
它不能上网、不能查数据库、不能调 API
那 ChatGPT 怎么「上网搜索」?答案就是 Tool Use
五步机制:
① 你定义工具(函数名 + 描述 + 参数类型)
② 模型判断需要工具 → 返回 tool_calls,不是文字
③ 你的代码去执行工具(真正干活的是你)
④ 结果以 ToolMessage 传回模型
⑤ 模型基于真实数据生成最终回答
模型是「指挥」,你的代码是「执行者」
create_agent:一行启动推理循环
手动编排 = 自己写循环 + 处理边界 + 单轮调用
create_agent 帮你封装了这一切:
· 自动 ReAct 循环(推理-行动-观察)
· 自主决定调用工具几次,查完不够可以再查
· 支持记忆持久化
pip install langchain 或 uv add langchain
RAG · Memory · Skill · MCP 的工程实现
全部依赖 Tool Use
搞懂它,后续所有模块你都能看懂
