万丈高楼也是一块块砖累积而成的先不卷复杂的概念先把langchain的基础调用学明白基础认知理清楚后面逐步把 Prompt、Chain、Tool、Agent加进来。这篇文章主要做5件事看完这篇文章就能学会用 uv 搭建 Python 项目环境初始化聊天模型并理解跨厂商统一接口看懂初始化参数学会同步调用模型搞清楚输入格式和输出格式LangChain 官方文档里也把 chat model 作为核心入口来讲init_chat_model的输入是 messages输出也是 messages。这个认知很重要后面很多能力都建立在这里。01先用 uv 把 Python 项目环境搭起来如果没学过python先用两三个小时把基础概念理一下有个大概的印象就好后面学langchain的过程中就顺便把python学会了。如果会python但用的是venv pip requirements.txt, 在目前的学习中更推荐uv来搭建python环境uv的体验更像现代化工具链创建项目、管理依赖、运行脚本、锁版本用起来更舒服。安装uv很简单文档上有很清晰的说明https://pypi.org/project/uv/0.2.32/如果你用Homebrew那就更简单了使用brew install uv, Homebrew 会自动下载、安装uv并处理好所有路径问题安装完成后就可以直接使用。验证uv是否安装成功uv --version如果看到版本号输出那么就代表安装成功了。我们用uv初始化环境# 1) 创建项目uv init langchain-getting-startedcd langchain-getting-started# 2) 添加依赖先用 OpenAI/deepseek 生态举例uv add langchain langchain-openai langchain-deepseek load-dotenv# 3) 运行脚本uv 会帮你处理环境uv run main.pyuv init会生成pyproject.toml、main.py、.python-version等基础文件。第一次执行uv run这类项目命令时uv还会在项目根目录创建.venv和uv.lock方便后续环境一致性管理。先用uv run 运行脚本uv会自动帮你处理环境问题不用手动激活虚拟环境了。02初始化聊天模型理解“跨模型厂商统一接口”LangChain 的 chat model 层做了一层统一抽象很多厂商的模型都能用相同的调用方式接入。入门最简单的方式就是用init_chat_model()初始化模型。先看一个例子(使用deepseek)注deepseek的api key在这里可以申请https://platform.deepseek.com/api_keys# main.pyimport osfrom dotenv import load_dotenvfrom langchain.chat_models import init_chat_modelload_dotenv()model init_chat_model( gpt-5-nano, # 也可以换成其他支持的模型名 temperature0)resp model.invoke(用一句话解释 LangChain 是什么)print(resp.content).env里放密钥DEEPSEEK_API_KEY你的密钥init_chat_model()可以让在后面换模型时业务代码改动会小很多。调用的仍然是model.invoke(...)返回的仍然是AIMessage这一类对象LangChain 的官方集成页也列了很多聊天模型集成包括 OpenAI、Anthropic、Google、Ollama、DeepSeek 等等。还有一种可以进行统一接入那就是用 OpenAI 兼容接口进行接入。很多国内外平台提供 OpenAI Chat Completions 兼容接口对于提供与OpenAI Chat Completions接口完全兼容API的模型服务商(如deepseek、Groq、xAI)可以直接使用langchain-openai包中的ChatOpenAI类并通过设置base_url和api_key来连接但是一些非标准字段可能不会被 LangChain 的ChatOpenAI提取保留 如reasoning_content、reasoning、reasoning_details。from langchain_openai import ChatOpenAIllm ChatOpenAI( model你的模型名, api_key你的key, base_url你的兼容接口地址)resp llm.invoke(你好做个自我介绍)print(resp.content)03初始化模型时的参数配置模型的配置参数很多但不是都有必要的先理解几个最常用参数。常用参数有包括model、api_key、temperature、max_tokens、timeout、max_retries不同厂商也还会有额外参数。如下面这个例子from langchain.chat_models import init_chat_modelmodel init_chat_model( gpt-5-nano, temperature0.2, # 输出更稳定 max_tokens500, # 控制输出长度 timeout20, # 超时上限 max_retries2 # 临时失败自动重试)temperature: 控制随机性。越高越发散越低越稳定场景温度代码生成/数学解题0.0数据抽取/分析1.0通用对话1.3翻译1.3创意类写作/诗歌创作1.5max_tokens: 控制输出长度上限timeout: 防止请求一直挂起也就是等待模型响应的最长时间单位是秒max_retries如果由于网络超时或速率限制等问题导致请求失败系统将尝试重新发送请求的最大次数04如何同步调用模型目前我们一般学习的时候先了解同步调用的方式后面再学习流式输出、异步调用。LangChain 在 chat model 上最直接的调用方式就是invoke()。invoke()可以接收单条消息也可以接收消息列表。invoke方法的作用是接收输入如问题、指令、对话列表发给 LLM 模型如 deepseek, GPT, Claude 等返回模型响应模型回复 元数据信息invoke的参数可以是字符串输入resp model.invoke(帮我写一句适合技术公众号开头的话)print(resp.content)这就是“单条文本输入”的方式。适合只是做一次生成不需要上下文历史的场景。字符串输入只适合单轮、简单请求。但是如果想要保留上下文就得传消息列表。比如需要让模型记住前一轮对话那就这样invoke的参数也可以是列表conversation [ {role: system, content: 你是一个表达清晰、口语化的技术写作助手}, {role: user, content: 帮我解释 LangChain 是什么}, {role: assistant, content: LangChain 可以理解为一套把大模型能力组织起来的开发工具}, {role: user, content: 再用更接地气的方式说一遍}]resp model.invoke(conversation)print(resp.content)上面的代码复制到python文件中然后运行就行先大概了解一下。05搞懂输入格式和分析输出格式输入格式常用的输入方式主要有三种第一种字符串resp model.invoke(写一个关于春天的诗句)第二种字典列表工程里常见JSON格式更容易存储和序列化messages [ {role: system, content: 你是一个诗歌助手}, {role: user, content: 写一个关于春天的诗句}]resp model.invoke(messages)role的值human/user 代表用户消息ai/assistant 代表ai回复的消息system/developer 代表系统消息tool代表工具消息第三种消息对象 (标准但是不推荐格式不友好)from langchain.messages import SystemMessage, HumanMessage, AIMessagemessages [ SystemMessage(你是一个诗歌助手), HumanMessage(写一个关于春天的俳句), AIMessage(樱花落小径风轻过旧窗台春意入茶杯), HumanMessage(再来一个更有画面感)]resp model.invoke(messages)print(resp.content)SystemMessage表示使用系统消息定义模型的角色或者行为规则。HumanMessage表示用户消息AIMessage表示AI的回复消息在输入格式中消息类型和字典格式类型的对应关系如下所示消息类对应字典格式作用SystemMessage{role: system, ...}系统提示HumanMessage{role: user, ...}用户输入AIMessage{role: assistant, ...}AI 回复输出分析LangChain chat model 返回的是AIMessage。AIMessage表示模型调用后的输出里面除了文本内容还包含工具调用信息和各种元数据。resp model.invoke(用三句话介绍一下 LangChain)print(type(resp)) # AIMessageprint(resp.id) # 消息 ID, 可以使用ID来追踪对话消息print(resp.content) # 文本内容print(resp.usage_metadata) # token 使用情况统计print(resp.response_metadata) # 厂商响应元数据包含模型名称模型提供商结束原因等信息输出print(type(resp)): class langchain_core.messages.ai.AIMessageprint(resp.id): lc_run--019c92eb-ec32-7763-86a2-db51d9efd3b2-0print(resp.content): LangChain 是一个用于开发大语言模型应用的框架它通过模块化设计简化了复杂应用的构建流程。其核心思想是将语言模型与外部数据源、工具和记忆系统等组件链式连接实现更强大的交互与推理能力。借助 LangChain开发者可以快速构建智能代理、问答系统和定制化生成式 AI 应用。print(resp.usage_metadata): {input_tokens: 10, output_tokens: 74, total_tokens: 84, input_token_details: {cache_read: 0}, output_token_details: {}}print(resp.response_metadata): {token_usage: {completion_tokens: 74, prompt_tokens: 10, total_tokens: 84, completion_tokens_details: None, prompt_tokens_details: {audio_tokens: None, cached_tokens: 0}, prompt_cache_hit_tokens: 0, prompt_cache_miss_tokens: 10}, model_provider: deepseek, model_name: deepseek-chat, system_fingerprint: fp_eaab8d114b_prod0820_fp8_kvcache, id: c9daffd0-01ea-413a-a7d8-c96262e40a33, finish_reason: stop, logprobs: None}06完整示例把前面几个点串起来写一个完整示例import osfrom dotenv import load_dotenvfrom langchain.chat_models import init_chat_modelfrom langchain.messages import SystemMessage, HumanMessageload_dotenv()def main(): model init_chat_model( deepseek-chat, # 也可以换成其他支持的模型名 api_keyos.environ.get(DEEPSEEK_API_KEY), temperature0.3, max_tokens300, timeout20, max_retries2 ) messages [ SystemMessage(你是一个技术公众号写作助手表达自然、清晰、少术语堆砌。), HumanMessage(请用通俗语言解释 LangChain 在 AI 应用开发中的作用150字左右。) ] resp model.invoke(messages) print( 模型输出 ) print(resp.content) print(\n 调试信息 ) print(usage_metadata:, getattr(resp, usage_metadata, None)) print(response_metadata:, getattr(resp, response_metadata, None))if __name__ __main__: main()运行python脚本uv run main.py结果07总结这一篇主要把 LangChain 入门最基础的一步走通先把环境搭好先把模型调用跑起来再把输入输出格式看明白就够了。我们下一篇见。这里给大家精心整理了一份全面的AI大模型学习资源包括AI大模型全套学习路线图从入门到实战、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等资料免费分享扫码免费领取全部内容1. 成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。2. 大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。4. 2026行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5. 大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。6. 大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。7. 资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容
LangChain入门教程01: 从稳定的模型调用开始
发布时间:2026/5/25 23:49:41
万丈高楼也是一块块砖累积而成的先不卷复杂的概念先把langchain的基础调用学明白基础认知理清楚后面逐步把 Prompt、Chain、Tool、Agent加进来。这篇文章主要做5件事看完这篇文章就能学会用 uv 搭建 Python 项目环境初始化聊天模型并理解跨厂商统一接口看懂初始化参数学会同步调用模型搞清楚输入格式和输出格式LangChain 官方文档里也把 chat model 作为核心入口来讲init_chat_model的输入是 messages输出也是 messages。这个认知很重要后面很多能力都建立在这里。01先用 uv 把 Python 项目环境搭起来如果没学过python先用两三个小时把基础概念理一下有个大概的印象就好后面学langchain的过程中就顺便把python学会了。如果会python但用的是venv pip requirements.txt, 在目前的学习中更推荐uv来搭建python环境uv的体验更像现代化工具链创建项目、管理依赖、运行脚本、锁版本用起来更舒服。安装uv很简单文档上有很清晰的说明https://pypi.org/project/uv/0.2.32/如果你用Homebrew那就更简单了使用brew install uv, Homebrew 会自动下载、安装uv并处理好所有路径问题安装完成后就可以直接使用。验证uv是否安装成功uv --version如果看到版本号输出那么就代表安装成功了。我们用uv初始化环境# 1) 创建项目uv init langchain-getting-startedcd langchain-getting-started# 2) 添加依赖先用 OpenAI/deepseek 生态举例uv add langchain langchain-openai langchain-deepseek load-dotenv# 3) 运行脚本uv 会帮你处理环境uv run main.pyuv init会生成pyproject.toml、main.py、.python-version等基础文件。第一次执行uv run这类项目命令时uv还会在项目根目录创建.venv和uv.lock方便后续环境一致性管理。先用uv run 运行脚本uv会自动帮你处理环境问题不用手动激活虚拟环境了。02初始化聊天模型理解“跨模型厂商统一接口”LangChain 的 chat model 层做了一层统一抽象很多厂商的模型都能用相同的调用方式接入。入门最简单的方式就是用init_chat_model()初始化模型。先看一个例子(使用deepseek)注deepseek的api key在这里可以申请https://platform.deepseek.com/api_keys# main.pyimport osfrom dotenv import load_dotenvfrom langchain.chat_models import init_chat_modelload_dotenv()model init_chat_model( gpt-5-nano, # 也可以换成其他支持的模型名 temperature0)resp model.invoke(用一句话解释 LangChain 是什么)print(resp.content).env里放密钥DEEPSEEK_API_KEY你的密钥init_chat_model()可以让在后面换模型时业务代码改动会小很多。调用的仍然是model.invoke(...)返回的仍然是AIMessage这一类对象LangChain 的官方集成页也列了很多聊天模型集成包括 OpenAI、Anthropic、Google、Ollama、DeepSeek 等等。还有一种可以进行统一接入那就是用 OpenAI 兼容接口进行接入。很多国内外平台提供 OpenAI Chat Completions 兼容接口对于提供与OpenAI Chat Completions接口完全兼容API的模型服务商(如deepseek、Groq、xAI)可以直接使用langchain-openai包中的ChatOpenAI类并通过设置base_url和api_key来连接但是一些非标准字段可能不会被 LangChain 的ChatOpenAI提取保留 如reasoning_content、reasoning、reasoning_details。from langchain_openai import ChatOpenAIllm ChatOpenAI( model你的模型名, api_key你的key, base_url你的兼容接口地址)resp llm.invoke(你好做个自我介绍)print(resp.content)03初始化模型时的参数配置模型的配置参数很多但不是都有必要的先理解几个最常用参数。常用参数有包括model、api_key、temperature、max_tokens、timeout、max_retries不同厂商也还会有额外参数。如下面这个例子from langchain.chat_models import init_chat_modelmodel init_chat_model( gpt-5-nano, temperature0.2, # 输出更稳定 max_tokens500, # 控制输出长度 timeout20, # 超时上限 max_retries2 # 临时失败自动重试)temperature: 控制随机性。越高越发散越低越稳定场景温度代码生成/数学解题0.0数据抽取/分析1.0通用对话1.3翻译1.3创意类写作/诗歌创作1.5max_tokens: 控制输出长度上限timeout: 防止请求一直挂起也就是等待模型响应的最长时间单位是秒max_retries如果由于网络超时或速率限制等问题导致请求失败系统将尝试重新发送请求的最大次数04如何同步调用模型目前我们一般学习的时候先了解同步调用的方式后面再学习流式输出、异步调用。LangChain 在 chat model 上最直接的调用方式就是invoke()。invoke()可以接收单条消息也可以接收消息列表。invoke方法的作用是接收输入如问题、指令、对话列表发给 LLM 模型如 deepseek, GPT, Claude 等返回模型响应模型回复 元数据信息invoke的参数可以是字符串输入resp model.invoke(帮我写一句适合技术公众号开头的话)print(resp.content)这就是“单条文本输入”的方式。适合只是做一次生成不需要上下文历史的场景。字符串输入只适合单轮、简单请求。但是如果想要保留上下文就得传消息列表。比如需要让模型记住前一轮对话那就这样invoke的参数也可以是列表conversation [ {role: system, content: 你是一个表达清晰、口语化的技术写作助手}, {role: user, content: 帮我解释 LangChain 是什么}, {role: assistant, content: LangChain 可以理解为一套把大模型能力组织起来的开发工具}, {role: user, content: 再用更接地气的方式说一遍}]resp model.invoke(conversation)print(resp.content)上面的代码复制到python文件中然后运行就行先大概了解一下。05搞懂输入格式和分析输出格式输入格式常用的输入方式主要有三种第一种字符串resp model.invoke(写一个关于春天的诗句)第二种字典列表工程里常见JSON格式更容易存储和序列化messages [ {role: system, content: 你是一个诗歌助手}, {role: user, content: 写一个关于春天的诗句}]resp model.invoke(messages)role的值human/user 代表用户消息ai/assistant 代表ai回复的消息system/developer 代表系统消息tool代表工具消息第三种消息对象 (标准但是不推荐格式不友好)from langchain.messages import SystemMessage, HumanMessage, AIMessagemessages [ SystemMessage(你是一个诗歌助手), HumanMessage(写一个关于春天的俳句), AIMessage(樱花落小径风轻过旧窗台春意入茶杯), HumanMessage(再来一个更有画面感)]resp model.invoke(messages)print(resp.content)SystemMessage表示使用系统消息定义模型的角色或者行为规则。HumanMessage表示用户消息AIMessage表示AI的回复消息在输入格式中消息类型和字典格式类型的对应关系如下所示消息类对应字典格式作用SystemMessage{role: system, ...}系统提示HumanMessage{role: user, ...}用户输入AIMessage{role: assistant, ...}AI 回复输出分析LangChain chat model 返回的是AIMessage。AIMessage表示模型调用后的输出里面除了文本内容还包含工具调用信息和各种元数据。resp model.invoke(用三句话介绍一下 LangChain)print(type(resp)) # AIMessageprint(resp.id) # 消息 ID, 可以使用ID来追踪对话消息print(resp.content) # 文本内容print(resp.usage_metadata) # token 使用情况统计print(resp.response_metadata) # 厂商响应元数据包含模型名称模型提供商结束原因等信息输出print(type(resp)): class langchain_core.messages.ai.AIMessageprint(resp.id): lc_run--019c92eb-ec32-7763-86a2-db51d9efd3b2-0print(resp.content): LangChain 是一个用于开发大语言模型应用的框架它通过模块化设计简化了复杂应用的构建流程。其核心思想是将语言模型与外部数据源、工具和记忆系统等组件链式连接实现更强大的交互与推理能力。借助 LangChain开发者可以快速构建智能代理、问答系统和定制化生成式 AI 应用。print(resp.usage_metadata): {input_tokens: 10, output_tokens: 74, total_tokens: 84, input_token_details: {cache_read: 0}, output_token_details: {}}print(resp.response_metadata): {token_usage: {completion_tokens: 74, prompt_tokens: 10, total_tokens: 84, completion_tokens_details: None, prompt_tokens_details: {audio_tokens: None, cached_tokens: 0}, prompt_cache_hit_tokens: 0, prompt_cache_miss_tokens: 10}, model_provider: deepseek, model_name: deepseek-chat, system_fingerprint: fp_eaab8d114b_prod0820_fp8_kvcache, id: c9daffd0-01ea-413a-a7d8-c96262e40a33, finish_reason: stop, logprobs: None}06完整示例把前面几个点串起来写一个完整示例import osfrom dotenv import load_dotenvfrom langchain.chat_models import init_chat_modelfrom langchain.messages import SystemMessage, HumanMessageload_dotenv()def main(): model init_chat_model( deepseek-chat, # 也可以换成其他支持的模型名 api_keyos.environ.get(DEEPSEEK_API_KEY), temperature0.3, max_tokens300, timeout20, max_retries2 ) messages [ SystemMessage(你是一个技术公众号写作助手表达自然、清晰、少术语堆砌。), HumanMessage(请用通俗语言解释 LangChain 在 AI 应用开发中的作用150字左右。) ] resp model.invoke(messages) print( 模型输出 ) print(resp.content) print(\n 调试信息 ) print(usage_metadata:, getattr(resp, usage_metadata, None)) print(response_metadata:, getattr(resp, response_metadata, None))if __name__ __main__: main()运行python脚本uv run main.py结果07总结这一篇主要把 LangChain 入门最基础的一步走通先把环境搭好先把模型调用跑起来再把输入输出格式看明白就够了。我们下一篇见。这里给大家精心整理了一份全面的AI大模型学习资源包括AI大模型全套学习路线图从入门到实战、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等资料免费分享扫码免费领取全部内容1. 成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。2. 大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。4. 2026行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5. 大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。6. 大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。7. 资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容