Python-LangChain对接LLM
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-五种主要消息类型
- SystemMessage:对应系统角色->用于应传递以引导对话的内容
- HumanMessage:对应用户角色->用于用户输入中的内容
- AIMessage:对应助手角色->用于模型响应中的内容
- AIMessageChunk:对应助手角色,用于流式响应
- ToolMessage:对应工具角色
2-参考网址
- 阿里百炼平台API参考:https://bailian.console.aliyun.com/?spm=5176.29619931.J__Z58Z6CX7MY__Ll8p1ZOR.1.38fe521cU3isvj&tab=doc#/doc/?type=model&url=2841718
- Python使用openai对接仓库地址:https://gitee.com/enzoism/python_openai_chat
- LangChain中文网址:https://langchain.org.cn/
- Python-LLMChat
- Python-MCPAgent开发-DeepSeek版本
- Python-MCPAgent开发-代码解析
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-openai 和 langchain-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 依赖官方的
openaiPython SDK,并通过openai.chat.completions端点调用。 - ChatAnthropic 依赖
anthropicPython 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-五种主要消息类型
- SystemMessage:对应系统角色->用于应传递以引导对话的内容
- HumanMessage:对应用户角色->用于用户输入中的内容
- AIMessage:对应助手角色->用于模型响应中的内容
- AIMessageChunk:对应助手角色,用于流式响应
- ToolMessage:对应工具角色
其他重要消息包括
- RemoveMessage – 不对应任何角色。这是一种抽象,主要用于 LangGraph 中管理聊天历史。
- 旧版 FunctionMessage:对应 OpenAI 旧版函数调用 API 中的函数角色。
更多推荐

所有评论(0)