支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Langchain学习教程一(Hello World)

发布日期:2025-07-23 07:33:09 浏览次数: 1565
作者:AI编程随录

微信搜一搜,关注“AI编程随录”

推荐语

LangChain框架助你快速开发AI应用,告别重复造轮子,轻松实现多模型接入与复杂功能。

核心内容:
1. LangChain框架的核心优势与功能模块
2. 开发AI应用时手动实现与使用框架的对比
3. LangChain支持的常见应用场景与开发范式

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

在生成式 AI 火热的当下,如何快速开发一个基于大语言模型(LLM)的应用,成为了很多开发者的刚需。很多人都希望能搭上这一波浪潮,我自己最近也正在学习这一块的内容,同时选择了LangChain 作为学习框架。

至于为啥选择 langchain 呢?核心原因就一个:很多教程都是讲的 Langchain。

开个玩笑,我们知道目前市面上的大模型林林总总,国外的有 gemini、grok、Claude、openapi 等等,国内有 qwen、DeepSeek、glm-4 等等,那么假设你要开发一个具备以下功能的 AI 应用:

  • ✅ 多模型接入 +
  • ✅ 调用外部 API 工具 +
  • ✅ 多轮对话记忆 +
  • ✅ 多步骤推理链路

如果你不使用大语言模型开发框架,你需要

模块
你需要手动做的事
🧠 模型对接
编写不同模型 SDK 的封装(OpenAI、Anthropic、Qwen、DeepSeek...)
🔗 Prompt 模板
自己维护 Prompt 的拼接模板、变量注入、版本管理
🔄 多轮对话
自己管理对话历史、上下文拼接
🪢 Chain 流程
自己写控制逻辑,比如 Step 1 问问题 → Step 2 搜索 → Step 3 汇总
🛠️ 外部工具调用
手动构造 Function Calling 请求,封装外部 API 逻辑
🔍 日志调试
没有统一工具,调试要自己打 log、写测试脚本
🧪 流程测试
没有 LangSmith,测试非常原始
🚀 部署
自己构建流程图引擎、调度平台(比如像 LangGraph Platform)

那么如果使用大语言模型框架,就能帮我们减少很多上述重复造轮子的工作,挺香的吧~

什么是 LangChain?

ok,上面介绍了为什么我们要使用大语言模型框架,接下来我们简单介绍下 langchain。

LangChain 是一个用于构建基于大语言模型(LLM)的应用框架,目标是帮助开发者更容易地构建复杂的、可组合的 AI 应用。

具体来说,LangChain 提供了以下功能模块:

  • 对接多个 LLM 提供商(如 OpenAI、Anthropic、Google 等)
  • 支持 Prompt 模板、工具调用、记忆、上下文管理等能力
  • 内置了文档问答、聊天机器人、多步推理等常见范式
  • 良好的 OpenAPI 接口集成能力

能用 LangChain 做什么?

我们可以在它的帮助下快速开发:

  • 🧾 文档问答系统(如上传 PDF 后提问)
  • 🤖 多轮对话机器人
  • 📄 智能摘要和文本处理工具
  • 🕵️ Web 搜索增强问答
  • 🛠️ 插件调用(支持 OpenAPI 的工具集成)

langchain 官网:https://python.langchain.com

目前 Langchain 提供了 Python 和 JS 2 个官方 SDK,但是整体来说,Python 版本功能最全面、更新速度和社区支持也算最好的,所以我这里选择的是 Python 版本作为学习。

另外 Langchain 目前的大版本是 0.3.x,听说 0.1 - 0.3 之间每个大版本有比较大的差异,我这里是选择的是最新的 0.3.x。

langchain 架构图

这是来自 langchain 官方的一张架构图,我们可以将它解读为:LangChain 生态包含三层结构 + 一侧辅助平台


主结构(三层)

1. Architecture(架构层)

  • LangChain: 开源的核心框架,用于构建 LLM 应用的基础设施,包括 Prompt 构造、Chain、Memory、Tool 调用等。

  • LangGraph: 基于状态机思想的图状 chain 控制器,可以让你构建更复杂的、多分支的推理逻辑。用于管理带分支和循环的智能流程

这一层是开发者直接用来写代码的地方。


Components(组件层)

  • Integrations: 集成了大量模型、数据库、搜索引擎、工具插件等(如:OpenAI、Anthropic、Weaviate、Qdrant、Pinecone、Google Search 等等)。

简单理解就是:LangChain 帮你接好了各种 LLM 和工具插件,直接调用。


Deployment(部署层)

  • LangGraph Platform(Commercial): 官方提供的商业托管平台,可以部署你构建的 LangGraph 工作流,并提供用户界面、运行管理、API 网关等功能。

属于商业产品,适合企业级部署与托管。

辅助工具平台:LangSmith

这是一个非常重要的调试 & 管理平台,官方定位是用于:

功能
描述
Debugging
可视化查看每步 Chain 的执行情况
Playground
试验 Prompt 和模型效果
Prompt Management
Prompt 版本控制、组织与复用
Annotation
数据标注与评估
Testing
单元测试和性能评估
Monitoring
应用上线后的实时监控

🧠 LangSmith 类似是 AI 应用的“观察和分析仪表盘”,帮助你构建、优化、迭代智能 Agent。

OpenAI Compatible

该平台或模型 支持与 OpenAI 官方 API 相同的接口规范,可以直接用 OpenAI 的 SDK 调用,无需修改代码。

这里我使用的是硅基流动作为大模型提供方(主要是官方之前送的钱还没花完),如果你有 openai 官方的 api_key 或者其他平台的也是可以的,这一段内容可以跳过

  • 访问官网:https://www.siliconflow.cn/
  • 注册账户并登录
  • 点击菜单栏【API 密钥】-【新建 API 密钥】
  • 保存你的 API Key,或在本地设置环境变量:

注意:硅基流动是 OpenAI 接口兼容的,所以可以直接用于 OpenAI 模块。


Hello World

我们来写一个最简单的调用示例。(此处略过虚拟环境环境配置,请自行查找 venv 或者 uv 等使用)

# 安装langchain_openai
pip install langchain_openai

然后创建一个 demo.py 文件

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="Qwen/Qwen3-32B",
    openai_api_key="your_api_key",
    base_url="https://api.siliconflow.cn/v1",
    temperature=0
)
# 调用模型并生成回答
resp =llm.invoke("你好")
print(resp)

运行后你会看到 AI 返回的诗歌内容!

content='\n\n你好!有什么我可以帮你的吗?' additional_kwargs={'refusal': None} response_metadata={'token_usage': {'completion_tokens': 156, 'prompt_tokens': 9, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': None, 'audio_tokens': None, 'reasoning_tokens': 147, 'rejected_prediction_tokens': None}, 'prompt_tokens_details': None}, 'model_name''Qwen/Qwen3-32B''system_fingerprint''''id''0197d0d93b8f37a5bc86740c3f1474d2''service_tier': None, 'finish_reason''stop''logprobs': None} id='run--41d63779-a82a-4e2d-83a7-557a7f87169b-0' usage_metadata={'input_tokens': 9, 'output_tokens': 156, 'total_tokens': 165, 'input_token_details': {}, 'output_token_details': {'reasoning': 147}}

可以看到,response 包含了大量的信息,比如大模型生成内容、token 用量、模型标识、运行 ID、完成状态等信息。

如果只需打印大模型返回的字符串,那么可以print(resp.content)即可

流式调用(Streaming)

在上面的demo 中,我们看到大模型返回内容是一次性返回的,而非流式,其实LangChain 也支持流式输出,即一边生成、一边展示。我们只需要作如下改造

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="Qwen/Qwen3-32B",
    openai_api_key="your_api_key",
    base_url="https://api.siliconflow.cn/v1",
    temperature=0
)

# 流式调用模型并生成回答
for chunk in llm.stream("你好"):
    print(chunk.content, end="", flush=True)

此时如果你在控制台执行,就能看到内容是流式蹦哒出来的了。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询