05-day2-理论:AI 模型 API 服务
day2-理论:AI 模型 API 服务
🧩 Agent 智能体
🔹 一、构建 AI 应用的三大核心组件
| 组件 | 中文类别 | 核心职责 | 类比 |
|---|---|---|---|
| DashScope | 大模型服务平台(AI 模型 API 服务) | 提供 Qwen 系列大模型的云端推理能力;负责认证、计费、限流与日志 | 大脑(智力)—— 负责理解与生成语言 |
| LangChain | 大模型应用开发框架(AI 应用编排框架) | 提供统一抽象(Prompt、Chain、Agent 等);编排调用逻辑、工具集成与多步推理流程 | 神经系统(指挥)—— 负责决策、调度与流程控制 |
| 存储(Memory) | 对话状态管理模块(上下文持久化组件) | 保存和管理聊天历史、用户上下文、会话状态等信息,实现有记忆的交互 | 记忆(经验)—— 负责记住过去,支撑连贯对话 |
协作关系说明
- DashScope 是“算力引擎”,只做单次输入 → 输出的推理。
- LangChain 在应用层构建智能逻辑:它从 存储(Memory) 中读取历史上下文,构造完整提示词,调用 DashScope 获取响应,并在需要时调用外部工具(Tool),形成闭环。
- 存储(Memory) 可以内存缓存(如
ConversationBufferMemory)、文件、数据库(如 Redis、PostgreSQL)等形式存在,由 LangChain 管理,不属于 DashScope 的功能范畴。
✅ 三者合力,才能构建真正可用的智能体(Agent):
有“记忆”(Memory) + 会“思考与调度”(LangChain) + 能“推理”(DashScope)。
🔹 二、各自定位与能力边界
✅ DashScope:模型层(Model Layer)
-
核心功能:
- 提供
qwen-max、qwen-turbo等模型的 RESTful API - 通过 Python SDK(
pip install dashscope)简化调用
- 提供
-
直接调用示例:
import dashscope dashscope.api_key = "sk-xxx" response = dashscope.Generation.call(model="qwen-max", prompt="你好") print(response.output.text) -
优点:轻量、官方支持、低延迟
-
局限:仅支持单次请求,无法直接构建带记忆、工具或多步推理的智能体
✅ LangChain:应用层(Application Layer)
- 官网:https://www.langchain.com/
- 核心价值:
- 抽象出
Agent、Tool、ChatModel、PromptTemplate等通用组件 - 实现“一次开发,多模型部署”(今天 Qwen,明天 GPT-4)
- 抽象出
- 在你的代码中:
from langchain_community.chat_models import ChatTongyi llm = ChatTongyi(model="qwen-max") # ← 这是 LangChain 对 DashScope 的官方适配器ChatTongyi内部自动调用dashscopeSDK- 你无需处理 HTTP、签名、重试等底层细节
🔗 三、协作流程(以 qwen_agent.py 为例)
graph LR
A[用户代码] --> B[LangChain: ChatPromptTemplate + Chain]
B --> C[ChatTongyi 适配器]
C --> D[DashScope SDK]
D --> E[阿里云 Qwen API]
E --> D --> C --> B --> A
- 你构造提示模板并调用
chain.invoke() - LangChain 格式化消息为
[{"role": "user", "content": "..."}] ChatTongyi将其转换为 DashScope 所需格式dashscopeSDK 发起 HTTPS 请求- 结果逐层返回,最终输出
response.content
✅ 四、“LangChain + DashScope” 能力互补
| 场景 | 仅用 DashScope | LangChain + DashScope |
|---|---|---|
| 单次问答 | ✅ 简单 | ✅ 同样简单 |
| 多轮对话 | ❌ 需手动维护上下文 | ✅ 内置 Memory 组件 |
| 调用外部工具(如查时间) | ❌ 需自行解析意图 | ✅ Agent + Tool 自动决策 |
| 构建 RAG 系统 | ❌ 全手写检索+生成逻辑 | ✅ 一行代码 RetrievalQA.from_chain_type() |
| 切换模型供应商 | ❌ 重写整个调用逻辑 | ✅ 仅替换 llm = ChatOpenAI(...) |
🎯 核心结论:
DashScope 解决“能不能调用 Qwen”,
LangChain 解决“怎么用 Qwen 做事”。
📦 五、依赖说明
| 包 | 作用 | 是否必需 |
|---|---|---|
dashscope |
阿里云官方 SDK,负责与 Qwen API 通信 | ✅ 必需 |
langchain-core |
LangChain 核心抽象(Message、Prompt、Chain) | ✅ 必需 |
langchain-community |
社区集成包,含 ChatTongyi 等第三方适配器 |
✅ 必需 |
🌟 总结:技术栈分层视角
| 层级 | 组件 | 职责 |
|---|---|---|
| 基础设施层 | DashScope | 提供大模型推理能力(Qwen) |
| 开发框架层 | LangChain | 提供应用构建能力(Agent、RAG、Chain) |
| 业务应用层 | 你的 qwen_agent.py |
实现具体功能(如智能问答、课程助手) |
分层架构是现代工程的特征:
✅ 安全(.env 管理密钥)
✅ 灵活(PromptTemplate 控制角色)
✅ 可扩展(加 Tool/Agent )
浙公网安备 33010602011771号