别光会用AI,得会造AI——LangChain零基础手搓智能体实战

文章摘要:本文是 LangChain 入门第一课,面向零基础初学者。文章系统介绍了 AI 智能体的概念、LangChain 框架的定位与生态,并手把手指导读者搭建 Python 开发环境、配置 DeepSeek API Key,通过四个渐进式案例(原生 SDK 调用、ChatOpenAI 调用、init_chat_model 统一初始化、课程答疑助手)演示了如何调用大模型。最后还扩展讲解了接入 OpenAI、Qwen、硅基流动等其他模型的方法,并提供了常见问题排查指南。全文以实践为导向,帮助读者快速跑通第一个 LangChain 应用。
适合人群:零基础初学者,了解基本 Python 语法即可跟着操作。

你能学到什么:理解智能体概念 → 认识 LangChain 生态 → 搭建开发环境 → 跑通第一个 AI 应用。

阅读时间:约 20 分钟(含动手实操)。


目录


一、写在前面:为什么要学 LangChain

2022 年底,ChatGPT 横空出世,大语言模型(LLM)将人工智能时代清晰地划分为前后两个时期。大模型不仅能理解人类语言的复杂意图,还能进行跨领域的知识融合与推理——这意味着,我们终于拥有了一个可被广泛调用的"数字大脑"。

但光有大脑还不够。如果你想让 AI 帮你查资料、写代码、订机票、分析数据,就需要给它装上"眼睛"(感知环境)、“双手”(执行操作)和"记忆"(记住上下文)。LangChain 就是帮你把这些零件组装起来的开发框架。

本章的目标不是讲高级理论,而是带你完成一个最基础的开发闭环:

  • 知道 LangChain 是什么
  • 理解 LangChain、模型 API、DeepSeek 之间的关系
  • 搭建本地 Python 开发环境
  • 用三种不同方式调用 DeepSeek 大模型
  • 写出第一个可运行的 LangChain 小应用

一句话概括:学完本章,你就能在终端里跟 AI 对话了。


二、什么是智能体(AI Agent)

2.1 从传统应用到智能体时代

先来看一张技术演进图:

从传统应用到智能体的演进

图:从传统应用到智能体的演进,本质是一场从"命令执行"到"目标协作"的深刻变革。

过去我们用的软件(比如 Word、Excel、各种 App),都是命令驱动的——你点什么它做什么,严格按预设流程走。而智能体是目标驱动的——你只说"帮我做一份销售报告",它自己规划步骤、调用工具、完成任务。

对比维度 传统应用 智能体
驱动模式 命令驱动(你说一步它走一步) 目标驱动(你说目标它自己规划)
交互方式 固定界面、参数输入 自然语言、语义理解
执行逻辑 流程化、预定义 自主规划、多步推理
学习机制 静态算法 动态学习与记忆
系统角色 工具(被你使用) 合作伙伴(替你分忧)

通俗比喻:传统应用像出租车——你告诉司机走哪条路;智能体像网约车——你说目的地,它自己选路线、避拥堵、把你送到。

2.2 智能体的四大核心能力

智能体之所以"智能",靠的是四大核心模块的精密协同:

智能体四大核心模块认知闭环

图:智能体的认知闭环——感知、决策、行动、记忆四大模块协同工作。

模块 通俗比喻 作用
感知(Perception) 眼睛 接收用户输入、环境信息
决策(Reasoning) 大脑 分析问题、规划步骤、选择策略
行动(Action) 双手 调用工具、执行操作、返回结果
记忆(Memory) 灵魂 记住上下文、从经验中学习优化

传统应用遵循 “输入 → 处理 → 输出” 的线性逻辑,而智能体运行在 “感知 → 决策 → 行动 → 记忆” 的持续循环中。它不仅能行动,还能从结果中学习,动态优化后续策略。

智能体的 “感知 → 决策 → 行动 → 记忆” 循环示意:

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   用户输入/环境信息  ──▶  感知(Perception)                  │
│                          │                                  │
│                          ▼                                  │
│                  决策(Reasoning)                            │
│                          │                                  │
│                          ▼                                  │
│                  行动(Action)                               │
│                          │                                  │
│                          ▼                                  │
│                  结果反馈                                   │
│                          │                                  │
│                          ▼                                  │
│                  记忆(Memory)  ──▶  学习优化  ──▶  回到感知  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

重要提示:智能体是一个虚拟的概念,可以是自己开发的,也可以使用别人的(比如 ChatGPT 就是一个智能体产品)。我们接下来要学的 LangChain,就是用来开发你自己的智能体的框架。


三、LangChain 是什么

3.1 一句话定义

LangChain 是一个用于开发大模型应用的开源框架,它充当大模型与应用之间的"中间层",让开发者能以统一的方式调用多种大模型、组织提示词、管理上下文状态并集成外部工具。

LangChain框架作为大模型与应用中间层

3.2 框架的三大核心定位

(1)连接大模型与应用

通过统一接口,将大模型与数据库、检索引擎、API、文件系统等外部资源连接起来。你不需要为每个模型学一套不同的 API,LangChain 帮你统一了。

(2)封装复杂逻辑

智能体需要工具调用、记忆管理等复杂功能,LangChain 把这些封装成现成的抽象层,你只需调用几行代码就能实现。

(3)支持多智能体协作与状态管理

随着 LangGraph 与 Deep Agent 的加入,LangChain 生态已从单智能体向多智能体协作扩展,甚至可以打造对标 Manus 的工业级智能体。

3.3 发展历程(了解即可)

LangChain 由机器学习工程师 Harrison Chase 于 2022 年底发布,最初只是为了更好地管理提示词。随后经历了四个阶段:

阶段 时间 关键里程碑
探索期 2022 Q4 — 2023 Q1 初版发布,PromptTemplate、LLMChain 等基础模块,GitHub Star 快速破万
体系化阶段 2023 Q2 — 2023 Q4 引入 Tool、Agent、Retrieval 概念,推出 LangSmith
平台化阶段 2024 — 2025 上半年 LangGraph(工作流管理)+ LangServe(服务部署)发布
深层智能体阶段 2025 下半年至今 正式推出 Deep Agent,形成三层技术栈

截至 2025 年 11 月,LangChain 生态形成了三层技术栈:

┌─────────────────────────────────────────────┐
│          Deep Agent(智能体执行框架)           │  ← 高层:快速构建复杂智能体
├─────────────────────────────────────────────┤
│          LangGraph(运行时编排引擎)            │  ← 中层:有向图管理工作流
├─────────────────────────────────────────────┤
│          LangChain(基础能力层)               │  ← 底层:模型调用、工具集成
└─────────────────────────────────────────────┘

LangChain 生态关系示意(Deep Agent 位于 LangGraph 之上,LangSmith 同时监控三者):

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│                    Deep Agent(智能体执行框架)                 │
│                    高层:快速构建复杂智能体                    │
│                          ↓ 调用                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│                    LangGraph(运行时编排引擎)                 │
│                    中层:有向图管理工作流                     │
│                          ↓ 调用                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│                    LangChain(基础能力层)                    │
│                    底层:模型调用、工具集成                     │
└─────────────────────────────────────────────────────────────┘
     ↑                 ↑                 ↑
     └─────────────────┴─────────────────┘
              LangSmith(监控与评估平台)
              监控上述所有组件的运行状态

3.4 LangChain 全家桶都有什么

LangChain 生态 = LangChain + LangGraph + Deep Agent + LangSmith

组件 定位 通俗解释
LangChain 基础能力层 智能体的"操作系统内核",提供模型调用、工具集成等基础能力
LangGraph 运行时编排层 用有向图管理复杂工作流,把多个步骤串联起来
Deep Agent 智能体执行框架 在前两者之上封装的高级模板,不用手写底层就能构建复杂智能体
LangSmith 监控与评估平台 一个网站平台,让智能体的运行过程从"黑盒"变"透明",方便调试

怎么选? 简单总结:

  • 做简单线性 AI 功能 → 直接用 LangChain
  • 做重型全自动复杂任务 → 用 Deep Agent(底层自动调用 LangChain + LangGraph)
  • 要完全掌控流程、自定义复杂流转规则 → 手写 LangGraph

3.5 LangChain 1.0:记住一句话

学习只学 1.0 以后的版本,之前的了解一下就行。

LangChain 1.0 是真正意义上的第一个正式大版本,带来了三大变革:

(1)从功能堆砌到体验统一

0.x 版本模块众多、概念繁杂、API 不一致。1.0 进行了彻底的架构重构与瘦身,废弃冗余 API、统一接口,让框架变得更轻量、直观。

(2)从链式思维到智能体优先

LangChain 的名字来自最初的"链"(Chain)概念——把多个模型调用按顺序串联。1.0 实现了从链式思维到智能体优先的哲学跃迁,封装了更高级的智能体编程接口(create_agentcreate_deep_agent)。

有趣的是,有人戏称 LangChain 1.0 应该叫 “LangGraph 2.0”,因为它实际上是在 LangGraph 之上做的封装。但 LangChain 的知名度更高,所以最终保留了 LangChain 的名字。

(3)中间件机制 + Deep Agent

  • 中间件机制:类似 Spring 的 AOP(面向切面编程),可以在不污染核心业务代码的情况下注入日志记录、组件监控等通用逻辑。
  • Deep Agent:提供更高级的 Agent Harness,开发者不需要理解底层状态图实现,通过配置就能快速组装复杂智能体。

3.6 多语言支持

LangChain 支持 PythonJavaScript 两种语言。其中 Python 版本是功能最完整、更新最及时、社区最活跃的核心实现,也是本文后续使用的语言。

为什么选 Python? 因为 Python 是人工智能领域的第一语言,生态最丰富、第三方包适配最好、踩坑最少。


四、为什么选择 DeepSeek

本课程使用 DeepSeek 作为大模型服务,原因很简单:

DeepSeek API 兼容 OpenAI API 格式。

这意味着,很多支持 OpenAI 接口格式的 SDK 或框架(包括 LangChain),只要替换三个参数就能调用 DeepSeek:

参数 说明
api_key 你的 DeepSeek API 密钥
base_url https://api.deepseek.com
model 本课程使用 deepseek-v4-flash

DeepSeek 官网:https://www.deepseek.com/


五、理解 OpenAI 兼容 API

很多大模型服务商都提供类似 OpenAI 的接口格式,这类接口通常包含以下要素:

  • api_key:身份验证密钥
  • base_url:API 服务地址
  • model:模型名称
  • messages:对话消息列表

一个典型的调用长这样:

client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "user", "content": "你好"}
    ],
)

LangChain 和原生 SDK 的区别:LangChain 底层也可以对接这类模型服务,但它会把模型调用封装成更统一的组件,方便后续和 Prompt(提示词)、Parser(解析器)、Retriever(检索器)、Tool(工具)等组件组合使用。就像你用原生的 fetch 也能发请求,但用 axios 会更方便一样。

LangChain 与原生 SDK 的调用方式对比:

原生 SDK 调用流程(功能单一):
┌──────────────────┐
│    应用代码        │
└────────┬─────────┘
         ▼
┌──────────────────┐
│   OpenAI SDK      │
└────────┬─────────┘
         ▼
┌──────────────────┐
│    模型 API       │
└──────────────────┘

LangChain 调用流程(能力增强):
┌──────────────────┐         ┌───────────────┐
│    应用代码        │         │   外部工具      │
└────────┬─────────┘         │  数据库/API/文件│
         ▼                   └───────┬───────┘
┌──────────────────┐                │
│  LangChain 组件   │◄──────────────┘
└────────┬─────────┘
         ▼
┌──────────────────┐
│   统一接口层       │
└────────┬─────────┘
         ▼
┌──────────────────┐
│    模型 API       │
└──────────────────┘

六、开发环境搭建(手把手)

6.1 Python 版本选择

建议使用 Python 3.10 或更高版本

版本 推荐程度 说明
Python 3.10 ⭐⭐⭐⭐⭐ 生产环境首选,兼容性最好
Python 3.11 ⭐⭐⭐⭐⭐ 同样推荐,第三方包适配完整
Python 3.12 ⭐⭐⭐⭐ 可正常使用
Python 3.13 ⭐⭐⭐ 版本较新,部分小众集成包可能有适配延迟

Python版本选择建议

如果你还没安装 Python,去官网 https://www.python.org/downloads/ 下载安装即可。安装时记得勾选 “Add Python to PATH”。

6.2 安装依赖包

打开终端(Windows 用 PowerShell 或 CMD),执行以下命令:

pip install langchain langchain-openai openai python-dotenv

如果下载速度较慢,使用国内清华镜像源:

pip install langchain langchain-openai openai python-dotenv -i https://pypi.tuna.tsinghua.edu.cn/simple

各包的作用说明:

包名 作用
langchain LangChain 核心框架
langchain-openai LangChain 的 OpenAI 兼容模型集成
openai OpenAI 兼容 API 的 Python SDK
python-dotenv 读取 .env 配置文件

6.3 配置全局镜像源(可选但推荐)

如果你不想每次安装包都加 -i 参数,可以配置全局镜像。

Windows 操作方法:在用户目录 C:\Users\你的用户名 下新建 pip 文件夹,创建 pip.ini 文件,内容如下:

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com

配置后,以后直接 pip install xxx 就会自动走阿里云镜像,速度快很多。

pip配置全局镜像源


开发环境搭建步骤:

步骤 操作 说明
1 选择 Python 版本 Python 3.10+ 均可
2 安装依赖包 pip install langchain langchain-openai openai python-dotenv
3 配置镜像源(可选但推荐) 国内网络推荐使用清华/阿里云镜像
4 验证安装 运行测试脚本确认安装成功

依赖包说明:langchain(核心框架)、langchain-openai(OpenAI 兼容接口)、openai(SDK)、python-dotenv(环境变量读取)

七、配置 DeepSeek API Key

7.1 获取 API Key

  1. 访问 DeepSeek 官网:https://www.deepseek.com/
  2. 注册账号并登录
  3. 在 API Keys 页面创建新的密钥
  4. 复制保存你的 API Key

7.2 创建 .env 文件

在你的项目根目录下创建 .env 文件,内容如下:

DEEPSEEK_API_KEY=你从DeepSeek官网获取的API Key
DEEPSEEK_BASE_URL=https://api.deepseek.com

安全提醒(重要!):

  • 不要把真实 API Key 写进代码里
  • 不要把 .env 文件提交到 Git 仓库
  • 创建 .gitignore 文件,排除敏感文件:
.env
.venv/
__pycache__/

7.3 验证配置是否生效

创建一个测试文件 test_env.py

import os
from dotenv import load_dotenv

load_dotenv()

api_key = os.getenv("DEEPSEEK_API_KEY")
base_url = os.getenv("DEEPSEEK_BASE_URL")

print(f"API Key: {api_key[:8]}..." if api_key else "API Key 未找到!")
print(f"Base URL: {base_url}" if base_url else "Base URL 未找到!")

运行后如果看到 API Key 的前几位和 Base URL,说明配置成功。


八、案例一:用原生 SDK 调用 DeepSeek

在正式使用 LangChain 之前,我们先用 OpenAI 兼容 SDK 直接调用一次 DeepSeek。这一步的目的是验证:API Key 对不对、网络通不通、模型能不能调通。

为什么要先做这一步? 因为 LangChain 不是凭空调用模型的,它底层仍然需要模型服务。先用最简单的方式验证基础链路,出了问题更容易定位。

创建文件 01_openai_compatible.py

import os
from dotenv import load_dotenv
from openai import OpenAI

# 1. 加载 .env 环境变量
load_dotenv()

# 2. 创建 OpenAI 客户端(指向 DeepSeek 的 API 地址)
client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url=os.getenv("DEEPSEEK_BASE_URL"),
)

# 3. 调用模型
response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "user", "content": "请用一句话介绍 LangChain 是什么"}
    ],
)

# 4. 打印模型的回答
print(response.choices[0].message.content)

运行:

python 01_openai_compatible.py

如果看到模型返回了一段关于 LangChain 的介绍,恭喜你!说明:

  • API Key 正确
  • 网络可以访问 DeepSeek
  • 模型调用成功

注意区分:这里用的是原生 openai Python SDK(不是 LangChain)。代码中的 client.chat.completions 只是客户端下的子模块,不要和 LangChain 的 ChatOpenAI 类混淆。


九、案例二:用 LangChain ChatOpenAI 调用

验证完基础链路后,我们换用 LangChain 的方式来调用模型。

创建文件 02_chatopenai.py

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI

# 1. 加载环境变量
load_dotenv()

# 2. 创建模型实例(使用 LangChain 的 ChatOpenAI 类)
model = ChatOpenAI(
    model="deepseek-v4-flash",
    temperature=0.7,  # 控制输出随机性,0-1之间,值越大越随机
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url=os.getenv("DEEPSEEK_BASE_URL"),
)

# 3. 调用模型(invoke = 执行一次完整调用)
response = model.invoke("请解释LangChain模型接口的统一性。")
print(response.content)

# 4. 流式输出(stream = 一个字一个字地输出,体验更好)
print("\n--- 流式输出 ---")
for chunk in model.stream("请用一句话总结人工智能的意义:"):
    print(chunk.content, end="")

运行:

python 02_chatopenai.py

关于 temperature 参数

temperature 是大模型生成文本的核心超参数,控制输出的随机性和创造力,取值范围一般是 0 ~ 2:

temperature 值 效果 适用场景
0 完全确定性,每次提问输出一模一样 代码、数学计算、事实问答、翻译
0 ~ 0.7 轻微随机,逻辑稳定 日常聊天、文案、总结(首选区间)
0.7 ~ 1.0 创造力强,措辞更多变 故事、创意写作、头脑风暴
> 1.0 随机性极高,容易逻辑混乱 极少使用

最佳实践:新项目一律只用 ChatOpenAI,老式 OpenAI 类已逐步废弃。


十、案例三:用 init_chat_model 统一初始化(推荐)

上面用 ChatOpenAI 的写法是 LangChain 早期版本的常见方式。虽然功能有效,但已不是官方推荐的最佳实践。

自 LangChain 0.2 起,官方推荐使用统一的工厂方法 init_chat_model 来创建模型实例。这种方法在 LangChain 1.0 中继续得到支持和强化。

为什么推荐 init_chat_model? 因为它统一了多家模型的加载接口——以后想换模型,只需改个参数,不用重写代码。

创建文件 03_langchain_init_chat_model.py

import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model

# 1. 加载环境变量
load_dotenv()

# 2. 使用 init_chat_model 统一初始化模型
model = init_chat_model(
    base_url=os.getenv("DEEPSEEK_BASE_URL"),
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    model="deepseek-v4-flash",
    temperature=0.7,
    model_provider="openai"  # 表示使用 OpenAI 兼容接口格式,不是用 OpenAI 的模型
)

# 3. 流式输出
for chunk in model.stream("什么是Deep Agent?"):
    print(chunk.content, end="")

运行:

python 03_langchain_init_chat_model.py

关键参数说明

参数 说明
model 模型名称,这里是 deepseek-v4-flash
model_provider 接口提供者,"openai" 表示按 OpenAI 兼容格式调用,不是说使用 OpenAI 模型
api_key API 密钥,从 .env 读取
base_url API 地址,DeepSeek 的地址是 https://api.deepseek.com
temperature 输出随机性,0~1 之间

invoke vs stream

方法 效果 适用场景
model.invoke("问题") 执行一次完整调用,等全部生成完再返回 需要完整结果的场景
model.stream("问题") 流式输出,一个字一个字地返回 聊天界面、提升用户体验

返回结果中,模型的回答内容在 response.content 属性里。


十一、案例四:打造你的第一个课程答疑助手

现在把前面学的组合起来,做一个实用的课程答疑助手。这个案例会用到 自定义 Prompt 来控制 AI 的回答风格。

创建文件 04_course_assistant.py

import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model

# 1. 加载环境变量
load_dotenv()

# 2. 初始化模型(只写一次,后续复用)
model = init_chat_model(
    base_url=os.getenv("DEEPSEEK_BASE_URL"),
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    model="deepseek-v4-flash",
    temperature=0.7,
    model_provider="openai"
)

# 3. 定义 Prompt 生成函数(控制 AI 的回答风格和格式)
def get_prompt(question):
    prompt = f"""
你是一名 LangChain 助教,
请使用最简洁的语言回答问题,要适合初学者。
回答问题的格式如下:
    1、先说结果
    2、举例子
    3、不要超过200字
学生的问题是:{question}
    """
    return prompt

# 4. 主循环:持续接收用户输入
if __name__ == '__main__':
    question = input("请输入您的问题:")
    # 流式输出,一个字一个字地打印
    for word in model.stream(get_prompt(question)):
        print(word.content, end="")

运行:

python 04_course_assistant.py

示例输入:

请输入您的问题:LangChain 和直接调用 DeepSeek API 有什么区别?

课程答疑助手运行效果

图:业务代码通过函数调用模型,Prompt 控制回答风格和输出要求。

这个案例的重点

  1. 模型初始化只写一次:在程序开头初始化好模型,后续所有调用复用同一个实例。
  2. Prompt 可以控制回答风格和输出要求:通过精心设计的提示词,让 AI 按你想要的格式和风格回答。后续章节会专门讲 Prompt 模板,这里先不展开。

十二、接入其他大模型(OpenAI / Qwen / 硅基流动)

掌握了 DeepSeek 的接入方式后,接入其他模型也是类似的思路。核心原则:先用 init_chat_model,报错就去社区找扩展包。

12.1 接入 OpenAI(通过 CloseAI 代理)

由于国内直接访问 OpenAI 服务可能不稳定,可以使用国内的 OpenAI 代理平台,例如 CloseAI。

CloseAI 官网:https://www.closeai-asia.com/

登录后在"秘钥管理"中创建个人密钥,确保密钥处于"启用中"状态。

CloseAI代理平台API密钥管理

注意事项

  • 这个平台需要提前充值,否则调用会失败(报 403 余额不足错误)
  • 必须确保平台中有你调用的模型,否则会报错
  • 国内访问海外服务可能不稳定,可尝试更换备用接口地址

代码示例:

from langchain_openai import ChatOpenAI

# 创建模型实例(通过 CloseAI 代理调用 OpenAI 模型)
model = ChatOpenAI(
    model="gpt-4o-mini",
    temperature=0.7,
    api_key="你的CloseAI API Key",       # 替换为你的密钥
    base_url="https://api.openai-proxy.org/v1"
)

# 调用模型
response = model.invoke("请解释LangChain模型接口的统一性。")
print(response.content)

安全提醒:实际项目中请将 API Key 放在 .env 文件中,不要硬编码在代码里!

12.2 接入通义千问 Qwen

阿里巴巴的 Qwen 系列模型是国内的优秀大模型,通过 DashScope 平台提供 API 服务。

开通链接:https://bailian.console.aliyun.com/

  • 千问 Qwen:是大模型的名字
  • 百炼:阿里云旗下的模型广场,里面有很多别家的模型

通义千问Qwen模型接入百炼平台

踩坑提示:如果你直接用 init_chat_model 并设置 model_provider="dashscope",会报错:

ValueError: Unsupported model_provider='dashscope'.

原因:DashScope 平台尚未被 LangChain 官方纳入统一的模型注册体系。解决方案是使用社区扩展包。

安装依赖

pip install -U dashscope
pip install langchain_community

代码示例

from langchain_community.llms.tongyi import Tongyi

# 使用通义千问的社区适配器
model = Tongyi(
    model="qwen-plus",
    temperature=0.3,
    api_key="你的百炼API Key"  # 替换为你的密钥
)

# 流式输出
for chunk in model.stream("langchain有哪几部分组成"):
    print(chunk, end="")

Qwen接入报错与社区扩展包安装

12.3 接入硅基流动 SiliconFlow

硅基流动是一个聚合平台,支持 DeepSeek、Qwen 等多种模型。

官网:https://www.siliconflow.cn/

硅基流动SiliconFlow平台模型广场

.env 中添加:

SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1
SILICONFLOW_API_KEY=你的硅基流动API Key

代码示例:

import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model

load_dotenv()

model = init_chat_model(
    base_url=os.getenv("SILICONFLOW_BASE_URL"),
    api_key=os.getenv("SILICONFLOW_API_KEY"),
    model="deepseek-ai/DeepSeek-V4-Flash",
    temperature=0.7,
    model_provider="openai"
)

for chunk in model.stream("什么是Deep Agent?"):
    print(chunk.content, end="")

12.4 模型接入的通用思路

不管接入什么模型,都可以按以下顺序处理:

第一步:首选 init_chat_model(统一接口,代码可移植性强)
    ↓ 如果报 "Unsupported model_provider" 错误
第二步:去社区找扩展包(如 langchain_community)
    ↓ 如果还有问题
第三步:检查版本兼容性(LangChain 扩展包与模型 SDK 版本需匹配)

其他模型不再逐一展开,都是用上面这种思路进行接入。


模型接入通用思路:

步骤 操作 结果
第一步 尝试 init_chat_model ✅ 成功接入 / ❌ 不支持则继续
第二步 安装社区扩展包(如 langchain_community ✅ 解决 / ❌ 还有问题则继续
第三步 检查版本兼容性(LangChain 扩展包与模型 SDK 版本) ✅ 调整版本后最终接入成功

十三、常见问题排查

Q1:API Key 没有生效

排查步骤

  1. 检查 .env 文件是否在项目根目录(不是子目录里)
  2. 检查变量名是否拼写正确:
DEEPSEEK_API_KEY=你的DeepSeek API Key
DEEPSEEK_BASE_URL=https://api.deepseek.com
  1. 检查代码中是否调用了 load_dotenv()
from dotenv import load_dotenv
load_dotenv()  # 这行必须有!

Q2:下载依赖太慢

使用国内镜像源:

pip install langchain langchain-openai openai python-dotenv -i https://pypi.tuna.tsinghua.edu.cn/simple

或配置全局镜像源(见第六章 6.3 节)。

Q3:访问模型失败

常见原因及排查:

可能原因 排查方法
API Key 错误 去 DeepSeek 官网重新确认密钥
账户余额不足 登录官网查看余额,及时充值
网络无法访问 DeepSeek 检查网络连接,尝试切换网络
公司网络代理限制 换用手机热点测试,或配置代理
base URL 写错 确认使用的是 https://api.deepseek.com

Q4:报错 “Unsupported model_provider”

说明 LangChain 还不认识这个模型提供者。解决方案:

  1. 安装对应的社区扩展包(如 pip install langchain_community
  2. 使用该模型的专用适配器类(如 Qwen 用 Tongyi 类)

十四、本章总结

恭喜你读到这里!回顾一下本章掌握的核心知识点:

知识点 一句话回顾
LangChain 是什么 用来组织大模型应用开发的框架,是大模型与应用之间的"中间层"
LangChain 生态 LangChain(基础层)+ LangGraph(编排层)+ Deep Agent(执行框架)+ LangSmith(监控平台)
DeepSeek API 兼容 OpenAI API 格式,替换三个参数即可调用
环境搭建 Python 3.10+,安装 4 个核心包
API Key 管理 放在 .env 文件中,不硬编码,不提交 Git
模型初始化 推荐用 init_chat_model,统一接口
调用方式 invoke() 一次性返回,stream() 流式输出
temperature 控制输出随机性,0 最确定,越大越随机

到这里,我们已经完成了 LangChain 的第一个可运行案例。后续章节会在此基础上,逐步加入 Prompt 模板、输出解析器、检索器、工具调用等组件,让你的智能体越来越强大。


本文基于 LangChain 1.0 版本,使用 DeepSeek 作为模型服务。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐