Python-LangChain对接LLM

虽然【阿里百炼(通义千问)】官网的示例是使用【openai】python框架,但是Langchain在行业中确实有着举足轻重的影响,在此记录使用langchain的学习过程


1-知识整理

1-langchain-openai和langchain-anthropic分别接入的是openAI和Anthropic,但是openai更通用

2-LangChain知识图谱

  • 1-LangChain -> LangChain Python 的完整 API 参考,涵盖聊天模型、工具、智能体等所有内容。

  • 2-LangGraph -> LangGraph Python 的完整 API 参考,包括图 API、状态管理、检查点等功能。

  • 3-LangChain 集成 -> 用于连接主流 LLM 提供商、向量库、工具及其他服务的 LangChain 扩展包。

  • 4-MCP 适配器 -> 在 LangChain 与 LangGraph 应用中无缝使用 Model Context Protocol(MCP)工具。

  • 5-深度智能体 -> 构建能够自主规划、调用子智能体并借助文件系统完成复杂任务的智能体。

3-LangChain的核心功能模块包括:

  • 模型(Models):提供统一接口调用各种LLM,如OpenA/的GPT系列、Anthropic的Claude系列、Google的
    Gemini系列,以及Hugging Face的开源模型。
  • 提示(Prompts):优化模型输入,提升生成结果的质量,包括PromptTemplate、 ChatPromptTemplate和
    FewShotPromptTemplate等。
  • 链(Chains):封装多个组件的调用序列,创建复杂的工作流程,如SimpleSequentialChain等。
  • 代理(Agents):允许模型自主调用外部工具和组件,实现多步骤任务处理,如AutoGPT和BabyAGl。
  • 记忆(Memory):存储和检索对话数据,支持上下文感知的应用,如多轮对话系统。
  • 索引 (Indexes):组织和检索文档数据,支持RAG(检索增强生成)等应用场景。

4-五种主要消息类型


2-参考网址


3-动手实操

1-UV环境管理

# 1-查看并指定环境
uv python list
uv python pin 3.10

# 2-进行项目创建
uv init hello-langchain && cd hello-langchain

# 3-指定本地运行环境
uv venv && source .venv/bin/activate

# 4-本地环境安装依赖
uv pip install python-dotenv pydantic langchain-openai

2-LangChain-Invoke对话

from langchain_core.messages import SystemMessage, HumanMessage
from langchain_openai import ChatOpenAI

from settings import DASHSCOPE_API_KEY

# 1-定义客户端
llm = ChatOpenAI(
    model="qwen-max",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    api_key=DASHSCOPE_API_KEY,
    streaming=True
)

# 2-定义对话上下文
messages = [
    SystemMessage(content="You are a helpful assistant! Your name is Bob."),
    HumanMessage(content="你是谁?"),
]
# 3-打印
response = llm.invoke(messages)
print("----content:", response.content)
print("----model_dump_json:", response.model_dump_json())


3-LangChain框架

LangChain 框架由多个开源库组成

  • langchain-core:聊天模型和其他组件的基础抽象。集成包(例如 langchain-openai、langchain-anthropic 等):重要的集成已被拆分为轻量级包,由LangChain 团队和集成开发者共同维护。
  • langchain:构成应用程序认知架构的链、智能体和检索策略。
  • langchain-community:由社区维护的第三方集成。
  • langgraph:用于将 LangChain 组件组合成具有持久性、流式传输和其他关键功能的生产就绪应用程序的编排框架。请参阅LangGraph 文档。

2-核心功能

LangChain的核心功能模块包括:

  • 模型(Models):提供统一接口调用各种LLM,如OpenA/的GPT系列、Anthropic的Claude系列、Google的
    Gemini系列,以及Hugging Face的开源模型。
  • 提示(Prompts):优化模型输入,提升生成结果的质量,包括PromptTemplate、 ChatPromptTemplate和
    FewShotPromptTemplate等。
  • 链(Chains):封装多个组件的调用序列,创建复杂的工作流程,如SimpleSequentialChain等。
  • 代理(Agents):允许模型自主调用外部工具和组件,实现多步骤任务处理,如AutoGPT和BabyAGl。
  • 记忆(Memory):存储和检索对话数据,支持上下文感知的应用,如多轮对话系统。
  • 索引 (Indexes):组织和检索文档数据,支持RAG(检索增强生成)等应用场景。

4-知识补充

1-langchain-openai和langchain-anthropic之间的区别

# Installing the OpenAI integration
uv add langchain-openai

# Installing the Anthropic integration
uv add langchain-anthropic

langchain-openailangchain-anthropic 都是 LangChain 生态中专为调用第三方大模型而封装的 Python 包,二者在定位、接口风格、底层模型特性以及提示最佳实践上存在明显差异,择要归纳如下:

1-所属模型家族

  • langchain-openai → 接入 OpenAI GPT 系列(gpt-3.5-turbo、gpt-4 等)。
  • langchain-anthropic → 接入 Anthropic Claude 系列(claude-3-haiku、sonnet、opus 等)。

2-安装与入口类

  • pip install langchain-openai
    主类:ChatOpenAI(推荐)或早期 OpenAI(字符串入/出)。
  • pip install langchain-anthropic
    主类:ChatAnthropic(仅聊天模式,无旧版字符串 LLM 封装)。

3-提示模板(PromptTemplate)兼容性

  • OpenAI 模型对 system / human / ai 消息顺序没有强制要求,可随意穿插。
  • Anthropic 官方要求 system 消息必须是会话列表里的第一条。LangChain 的 ChatAnthropic 在底层会帮你自动重排,但最佳实践仍建议用户自己把 system 放最前,避免意外行为。
4-参数与能力差异
  • 温度、top_p、max_tokens 等公共参数两者都支持,但默认值略有区别。
  • tool/function calling:
    – OpenAI 从 gpt-3.5-turbo-0613 起提供原生 “functions” 字段,社区示例最多。
    – Claude-3 系列也支持 tool use,但字段名、一次可绑定的 tool 数量、schema 细节与 OpenAI 不同;langchain-anthropic 内部已做转换,但跨模型迁移时需重新核对 schema。
  • 多模态:二者均支持图片输入,但图片格式、尺寸限制、token 计价方式不同。

5-上下文长度与价格

  • Claude-3 提供 200 k token 上下文,单价通常低于 GPT-4-turbo;GPT-4-turbo 128 k 版本价格更高,但函数调用生态更成熟。选型时需综合“长度-价格-速度-工具链”权衡。

6-安全与对齐风格

  • Anthropic 模型在系统提示里加入 “Constitutional AI” 原则,对敏感内容更审慎,拒绝率相对高;OpenAI 则侧重 RLHF 对齐,风格上更“顺从”。在提示里明确安全边界时,两者措辞需有差异。

7-LangChain 内部实现差异

  • ChatOpenAI 依赖官方的 openai Python SDK,并通过 openai.chat.completions 端点调用。
  • ChatAnthropic 依赖 anthropic Python SDK,调用 claude.messages 端点;LangChain 额外封装了“system 提前”校验、tool schema 转换与流式输出处理。

8-迁移/共存建议

  • 如果业务代码已用 ChatOpenAI,想评估 Claude,只需把模型实例换成 ChatAnthropic,再检查 system 消息顺序与 tool schema 即可,链式模板(LCEL)基本不用改动。
  • 生产环境常把两者都写成可配置项,通过环境变量一键切换,方便做 A/B 对比或故障兜底。

一句话总结:两个包都是 LangChain 的“模型驱动器”,核心差异源于底层模型家族的不同——接口细节、system 消息顺序、tool 调用格式、上下文长度与定价策略,是实际开发中最需要留意的区别点。


2-LangChain知识图谱

1-LangChain
LangChain Python 的完整 API 参考,涵盖聊天模型、工具、智能体等所有内容。

2-LangGraph
LangGraph Python 的完整 API 参考,包括图 API、状态管理、检查点等功能。

3-LangChain 集成
用于连接主流 LLM 提供商、向量库、工具及其他服务的 LangChain 扩展包。

4-MCP 适配器
在 LangChain 与 LangGraph 应用中无缝使用 Model Context Protocol(MCP)工具。

5-深度智能体
构建能够自主规划、调用子智能体并借助文件系统完成复杂任务的智能体。


3-五种主要消息类型

其他重要消息包括

  • RemoveMessage – 不对应任何角色。这是一种抽象,主要用于 LangGraph 中管理聊天历史。
  • 旧版 FunctionMessage:对应 OpenAI 旧版函数调用 API 中的函数角色。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐