langchain1.X学习笔记-3-模型的初始化创建
文章目录1 模型调用的准备工作1.1 大模型的调用1.2 模型初始化方式1.3 线上大模型服务平台1.4 提前安装所有依赖2 模型初始化2.1 方式一使用模型提供商库2.1.1 通过专用API调用(麻烦)2.1.2 兼容用法ChatOpenAI(推荐)2.1.3 中转平台(付费)2.1.4 init_chat_model()(不直观)2.2 方式二本地模型的部署与调用2.3 模型初始化参数2.3.1 temperature2.3.2 Token2.4 配置.env文件大多数API平台都支持OpenAI API接口规范所以基本都可以通过ChatOpenAI集成。提供三个参数api_key、 base_url、model。放到配置文件中基于python-dotenv读取。1 模型调用的准备工作1.1 大模型的调用在LangChain v0.3版本中提到了Model I/O包括输入提示(Format)、调用模型(Predict)、输出解析(Parse)。分别对应着Prompt Template Model和Output Parser。但是LangChain v1.2版本已经去掉了这张图。首先我们要创建这个模型。然后这个模型在创建以后咱们就可以通过提示词的方式给到这个大模型进行交互了那么关于提示词的这个填充涉及到了提示词模板。然后这个模型产生的这个内容咱们还可以进一步的做这个解析然后得到你想要的这种格式比如你想要字符串还是想要这个JSON格式还是其他的一些指定格式我们对应的叫做parse。然后关于这个模型初始化的时候是不是有个分支一个叫LLM一个叫Chat model下边这个如果翻译成叫对话模型的话上边这个就叫做非对话模型当然了也可以称为补全模型。新的这个V1.12版本当中就不再去用这个非对话模型了。关于模型调用模块如今对话模型已经是主要形式。在GPT-3时代大模型以补全模型为主只能以类似“成语接龙”的方式对文本进行补全并且实际运行效果也 非常不稳定 。此时LangChain借助一些高层封装的API能够让模型完成对话、调用外部工具、甚至是结构化输出等功能为开发者提供了极大的便利。伴随着GPT-3.5模型的发布 对话模型正式登上历史的舞台并逐渐成为主流 。而得益于对话模型更强的指令跟随能力很多GPT-3需要借助LangChain才能完成的工作已经成为GPT-3.5原生自带的一些功能。现在已经是对话模型为主所以在以后的开发当中主要就用这个对话模型就行即使这块你给的是一个字符串那我们也把它封装成是一个message的方式以对话模型的方式来进行一个调用。1.2 模型初始化方式简单来说就是用谁家的API以什么方式创建存放在哪个位置的大模型。角度1调用谁家的API使用模型提供商的库。使用LangChain统一方式(推荐)。角度2模型初始化时几个重要参数(如BASE_URL、API-KEY)的书写位置的不同使用配置文件.env(推荐 )。硬编码写在代码文件中。角度3调用的模型所在位置在线部署的大模型。本地部署的大模型。LangChain作为一个“工具”不提供任何LLMs而是依赖于第三方集成各种大模型。这里就看大模型到底部署在哪里。1.3 线上大模型服务平台有许多提供大模型API服务的平台使用时只需要注册、充值并创建API-Key之后即可使用API-Key与URL来调用平台提供的相应的模型的服务。说明每个平台配置时都需要几个要素 模型名 、 api-key 、 base-url。如果大家想使用国外的大模型就选择前两个如果只使用国内的大模型可以选择后四个。(1)阿里云百炼所有新用户可获得超过5000万Tokens的免费额度及4500张图片生成额度。适合toB企业用户(2)硅基流动号称9B以下模型永久免费开源模型价格低适合个人学习。此外还有各个模型自己的厂商平台。比如deepseek、智谱等。(3)OpenRouter是一个第三方镜像站专门转发大模型厂商的API服务。通过它我们可以间接调用几乎所有大模型厂商的API服务。支持国内直连。OpenRouter支持支付宝或微信充值最低限额$5税费$0.8此外如果调用的模型禁止在国内使用如ChatGPT则无法通过OpenRouter直接调用(需要Magic)会提示This model is not available in your region根据个人情况决定是否充值并调用OpenRouter API。1.4 提前安装所有依赖LangChain的版本变化较快不同版本之间可能存在兼容问题为了避免因版本不一致导致的问题会通过requirements.txt固定主要依赖版本 。pipinstall-r.\requirements.txtrequirements.txt# # LangChain 核心框架# 作用LangChain 1.x 主体、核心抽象、社区组件、实验性组件、文本切分器# langchain1.2.12 langchain-core1.2.18 langchain-community0.4.1 langchain-classic1.0.2 langchain-text-splitters1.1.1 langchain-experimental0.4.1# # jupyter# 作用交互式编程记事本默认安装最新版即可# jupyter# # ollama# 作用调用本地大模型# langchain-ollama1.0.1ollama0.6.2# # LangGraph / Agent 编排# 作用构建 Agent、状态图、多步骤工作流、检查点、PostgreSQL 持久化# langgraph1.1.2 langgraph-prebuilt1.0.8 langgraph-checkpoint4.0.1 langgraph-checkpoint-postgres3.0.5 langgraph-sdk0.3.9# # MCP / FastMCP 集成# 作用构建 MCP Server、连接 MCP 工具、资源、Prompt# mcp1.27.0fastmcp3.2.4 langchain-mcp-adapters0.2.1# # 大模型供应商与 LangChain 适配器# 作用接入 OpenAI 协议、DeepSeek、Anthropic、OpenRouter、通义千问、腾讯等模型# openai2.26.0anthropic0.84.0 langchain-openai1.1.11 langchain-deepseek1.0.1 langchain-anthropic1.3.4 langchain-openrouter0.1.0openrouter0.7.11dashscope1.25.6 tencentcloud-sdk-python3.1.86PyJWT2.10.1# # 搜索工具 / 外部工具集成# 作用接入 Tavily 等联网搜索工具# langchain-tavily0.2.17# # Web 服务 / API / SSE# 作用MCP HTTP 服务、FastAPI 服务、SSE 流式通信、本地 API 服务# fastapi0.135.1uvicorn0.46.0 sse-starlette3.3.4httpx0.28.1 httpx-sse0.4.3aiohttp3.12.14requests2.32.5 requests-toolbelt1.0.0websockets16.0watchfiles1.1.1# # 配置管理 / 数据校验 / 序列化# 作用读取 .env、Pydantic 配置、JSON/YAML、结构化输出# python-dotenv1.2.1pydantic2.12.5 pydantic-settings2.12.0PyYAML6.0.3orjson3.11.7jsonschema4.26.0jsonref1.1.0 dataclasses-json0.6.7# # 日志 / 命令行 / 调试辅助# 作用日志输出、CLI、富文本终端输出、重试机制# loguru0.7.3rich14.3.3typer0.24.1click8.3.1tenacity9.1.4tqdm4.67.3 python-dateutil2.9.0.post0pytz2026.2# # 测试工具# 作用单元测试、教程代码验证# pytest9.0.3# # 记忆相关# 作用PostgreSQL 检查点、SQL 数据源# psycopg[binary]3.3.3 psycopg-pool3.3.02 模型初始化在LangChain中初始化模型主要可以通过直接使用特定的Model Class和使用统一的init_chat_model函数这两种方式来实现。2.1 方式一使用模型提供商库这种方式最直接。LangChain为一些大模型供应商提供了专门的Model类导入对应的具体类(如ChatOpenAI、ChatAnthropic、ChatDeepSeek、ChatOllama、ChatHunyuan、ChatTongyi、ChatZhipuAI)并进行实例化。2.1.1 通过专用API调用(麻烦)注意使用不同的模型可能传入的参数名称不同。1、DeepSeek大模型官网https://www.deepseek.com/。pip install langchain-deepseek2、智谱大模型官网https://www.bigmodel.cn/。安装Langchain社区依赖包包含ChatHunyuan、ChatTongyi、ChatZhipuAIpip install langchain-community3、千问大模型通过阿里云百炼平台调用官网https://bailian.console.aliyun.com/。2.1.2 兼容用法ChatOpenAI(推荐)一方面LangChain没有为所有大模型厂商提供专用接口。如果选用的平台没有专用接口可以通过兼容接口调用。另一方面专用接口的对接方式五花八门如腾讯混元的ChatHunyuan需要单独的APP_ID SecretId SecretKey 配置繁琐用户不友好。大多数API平台都支持OpenAI API接口规范所以基本都可以通过ChatOpenAI集成。from langchain_openaiimportChatOpenAI from dotenvimportload_dotenvimportos load_dotenv(overrideTrue)#通过ChatOpenAI 连接智谱AI模型ZHIPUAI_API_KEYos.getenv(API_KEY)ZHIPUAI_BASE_URLos.getenv(BASE_URL)zhipu_llm2ChatOpenAI(api_keyZHIPUAI_API_KEY,base_urlZHIPUAI_BASE_URL,modelglm-4-flash,)responsezhipu_llm2.invoke(1 1 )print(response)2.1.3 中转平台(付费)受政策影响国内无法直接调用国外顶尖的闭源模型某些复杂任务需要用这些模型实现此时可以通过中转平台曲线救国。1、OpenRouter官网https://openrouter.ai/OpenRouter是一个多模型API聚合平台提供统一的OpenAI兼容接口可以通过一个API Key调用OpenAI、Claude、Gemini、DeepSeek、Qwen等不同厂商的大模型。它适合用于模型对比、模型路由、Agent应用开发和课程实验。是目前知名度最高的中转平台。但是使用的话需要魔法。2、CloseAI官网https://www.closeai-asia.com/CloseAI是一个面向国内用户的AI API中转平台提供OpenAI、Claude、Gemini等模型接口的代理访问能力。它适合用于解决国内网络访问、支付和接口统一管理等问题常用于大模型应用开发、教学演示和测试环境。LangChain没有为CloseAI提供专用集成可以通过ChatOpenAI兼容接口调用。2.1.4 init_chat_model()(不直观)init_chat_model是LangChain 1.x中推出的用于初始化聊天模型的统一接口。只要是LangChain支持的模型都可以处理它会根据模型名称自动选择对应的模型类初始化实例。问题 init_chat_model和直接使用ChatTongyi、ChatOpenAI、ChatDeepSeek有什么区别(1)统一接口无需记住每个提供商的不同初始化方式(以一致的方式初始化)。(2)易于切换简化了智能体系统中模型切换策略(只需修改模型字符串)。(3)简洁明了更简洁的语法减少样板代码。(4)自动适配内部根据模型标识自动选择对应的驱动类(ChatOpenAI、ChatDeepSeek)。importos from langchain.chat_modelsimportinit_chat_model from dotenvimportload_dotenv# 从.env文件中加载环境变量load_dotenv(overrideTrue)# 从环境变量读取配置ZHIPUAI_API_KEYos.getenv(API_KEY)ZHIPUAI_BASE_URLos.getenv(BASE_URL)modelinit_chat_model(modelglm-4-flash,model_provideropenai,api_keyZHIPUAI_API_KEY,base_urlZHIPUAI_BASE_URL)# 向模型发送单条数据responsemodel.invoke(1 1 )# 打印响应print(response)像智谱的zhipu尚未被LangChain官方纳入模型的统一注册体系暂时不知道zhipu的提供者是谁。此时可以将model_provider设置为openai底层将会用openai的规范处理请求这就要求我们调用的模型服务是OpenAI Compatible的。2.2 方式二本地模型的部署与调用LangChain也支持使用Ollama 、 vLLM 等框架启动的本地大模型。Ollama是在Github上的一个开源项目其项目定位是一个本地运行大模型的集成框架可以实现如Qwen、Deepseek 等主流大模型的下载、启动和本地运行的自动化部署及推理流程。两种调用方式1、ChatOllamafrom langchain_ollamaimportChatOllama ollama_llmChatOllama(modeldeepseek-r1:1.5b,base_urlhttp://192.168.1.106:11434#如果Ollama在本地默认端口运行则可省略或使用http://localhost:11434)question你好请你介绍一下你自己。resultollama_llm.invoke(question)print(result)2、init_chat_modelfrom langchain.chat_modelsimportinit_chat_model ollama_llminit_chat_model(modeldeepseek-r1:1.5b,model_providerollama,# base_urlhttp://192.168.1.106:11434,)question你好请你介绍一下你自己。resultollama_llm.invoke(question)print(result)2.3 模型初始化参数在LangChain中Model Class和init_chat_model初始化模型共同的参数及解释。2.3.1 temperature根据使用场景选择0.0-0.3需要一致性、准确性的任务数学计算、数据提取、分类、代码生成。0.5-0.7平衡创造性和一致性聊天、问答。0.8-1.5创造性任务写作、头脑风暴。1.5-2.0高度创造性诗歌、故事创作。例如严格的结构化数据提取temperature0from langchain_openaiimportChatOpenAI from dotenvimportload_dotenvimportos load_dotenv(overrideTrue)#通过ChatOpenAI 连接智谱AI模型ZHIPUAI_API_KEYos.getenv(API_KEY)ZHIPUAI_BASE_URLos.getenv(BASE_URL)zhipu_llm2ChatOpenAI(api_keyZHIPUAI_API_KEY,base_urlZHIPUAI_BASE_URL,modelglm-4-flash, temperature0)responsezhipu_llm2.invoke(张三男30岁拥有8年编程开发经验目前在某互联网大厂担任技术专家。 帮我从上文中提取数据返回JSON格式)print(response.content)2.3.2 Token基本单位 : 大模型通过分词器(Tokenizer)将文本拆分后的最小语义单元是token(相当于自然语言中的词或字)。不同的模型采用不同的分词算法 (如BPE、WordPiece)因此同一段文本在不同模型中的Token数量可能不同。收费依据 大语言模型通常也是以token的数量作为其计量或收费的依据。1个中文Token≈1-1.8个汉字1个英文Token≈3-4个字符Token与字符转化的可视化工具OpenAI提供https://platform.openai.com/tokenizer。百度智能云提供https://console.bce.baidu.com/support/#/tokenizer。2.4 配置.env文件(1).env文件API_KEYBASE_URL(2)pip install python-dotenvfrom dotenvimportload_dotenv# 通过load_dotenv()将.env中的变量加载为环境变量# overrideTrue表示无论你当前的操作系统、终端或者虚拟环境中是否已经存在同名的环境变量都会强行用 .env 文件里写的值去覆盖它 load_dotenv(overrideTrue)# 从环境变量读取配置API_KEYos.getenv(API_KEY)BASE_URLos.getenv(BASE_URL)

相关新闻

WaveTools终极指南:如何解锁《鸣潮》120FPS并优化游戏性能

WaveTools终极指南:如何解锁《鸣潮》120FPS并优化游戏性能

WaveTools终极指南:如何解锁《鸣潮》120FPS并优化游戏性能 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 还在为《鸣潮》游戏卡顿、帧率限制而烦恼吗?想要充分发挥你的硬件性能&am…

2026/10/16 22:45:58 阅读更多 →
从失业电工到维修老板,他用 4 个月完成翻身

从失业电工到维修老板,他用 4 个月完成翻身

老陈今年41岁,干工厂设备电工整整16年。去年夏天厂子搬迁裁员,他拿着三万多的补偿金走出厂门的时候,腿都是软的。上有老下有小的年纪,房贷还剩八年,孩子刚上高中,本来以为攥着电工证、有手艺傍身&#xff0…

2026/10/17 10:16:53 阅读更多 →
50条Linux命令!

50条Linux命令!

50条Linux命令!

2026/10/17 14:07:01 阅读更多 →

最新新闻

SSM框架广告管理系统:架构解析、部署运行与答辩改造

SSM框架广告管理系统:架构解析、部署运行与答辩改造

简介:面向Java毕业设计或课程设计场景,这是一套基于SSM框架与Vue前后端分离的广告管理系统项目。系统按业务角色划分为管理员、广告客户、广告商、广告制作商四大端,覆盖广告投放渠道管理、广告需求与提案流转、设计预览与调整、签署管理及结…

2026/10/18 21:39:07 阅读更多 →
Java学生火车票系统:Spring Boot分层架构与并发控制实战

Java学生火车票系统:Spring Boot分层架构与并发控制实战

简介:本资源是一套完整的基于Java开发的学生火车票订票系统毕业设计项目,面向计算机专业本科生及Java初学者,聚焦课程设计、毕业设计与小型桌面应用开发实践。系统采用JavaFX构建图形界面,后端集成Hibernate框架与SQL Server 2014…

2026/10/18 21:39:07 阅读更多 →
Presenton 开源:Apache 2.0 的 AI PPT 生成器 + API,16+ LLM 提供商,ChatGPT 登录即用,MCP Server 内置,三端部署!

Presenton 开源:Apache 2.0 的 AI PPT 生成器 + API,16+ LLM 提供商,ChatGPT 登录即用,MCP Server 内置,三端部署!

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 21:39:07 阅读更多 →
Python实现车道线检测与偏离提示:从透视变换到转弯意图的完整链路

Python实现车道线检测与偏离提示:从透视变换到转弯意图的完整链路

简介:这份资源面向Python计算机视觉初学者与辅助驾驶入门开发者,围绕车道线检测与道路偏离提示展开,帮助读者理解如何用OpenCV完成从视频帧读取、图像预处理到车道线识别与转弯判断的完整流程。包内共8个文件,以4张jpg过程图、2段…

2026/10/18 21:39:07 阅读更多 →
大文件分发架构设计:P2P加速与混合分发实战解析

大文件分发架构设计:P2P加速与混合分发实战解析

接到 HagiCode Desktop 这个项目需求时,我第一反应是:这不就是一个带界面的下载器吗?后来把架构图铺开才发现,真正麻烦的从来不是界面,而是大文件怎么又快又省地发到成百上千台机器上。HagiCode Desktop 的混合分发架构…

2026/10/18 21:39:07 阅读更多 →
Windows批处理脚本从入门到实战:用bat脚本轻松搞定日常自动化

Windows批处理脚本从入门到实战:用bat脚本轻松搞定日常自动化

忘记那些图形界面里一个个点击的日子吧。我每天开机后第一件事就是手动打开几个工作软件,再整理桌面散落的文件,这套流程重复了快两年。直到某天下午,我盯着屏幕发呆,心想这种毫无技术含量的重复劳动,凭什么占据我每天…

2026/10/18 21:38:07 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →