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)

相关新闻

Linux系统df查看磁盘使用率很高,但du查询占用极低完整排错方案

Linux系统df查看磁盘使用率很高,但du查询占用极低完整排错方案

Linux执行df查看磁盘使用率爆满,但du统计所有目录文件占用空间很小,核心故障根源是存在大量已rm删除、但业务进程仍持有句柄的文件;可以通过lsof | grep deleted查看占用删除文件的进程,重启对应业务进程或者截断文件释放磁盘空间…

2026/7/24 21:56:51阅读更多 →
地陪行业获客成本攀升,平台如何通过“向导经纪人”破局?

地陪行业获客成本攀升,平台如何通过“向导经纪人”破局?

近年来,地陪行业迎来了爆发式增长,越来越多的年轻人旅行时倾向于寻找本地人带玩。然而,据业内反馈,随着入局者增多,平台的获客成本正以每年15%-20%的速度攀升。 在流量红利逐渐见顶的当下,单纯依靠投放广告…

2026/7/24 21:56:51阅读更多 →
网络框架封装:基于http模块封装拦截器与统一响应类(44)

网络框架封装:基于http模块封装拦截器与统一响应类(44)

一、 定义统一的响应数据模型为了规范后端返回的数据结构&#xff0c;建议定义一个包含泛型的响应包装类&#xff0c;将 code、message 和核心 data 统一管理&#xff1a;// ResponseResult.ets export class ResponseResult<T> {code: number;msg: string;data?: T;con…

2026/7/24 21:56:51阅读更多 →
RAG系统文档分块策略与优化实践

RAG系统文档分块策略与优化实践

1. 为什么文档分块是RAG系统的命门&#xff1f;上周帮朋友排查一个RAG系统的问题&#xff0c;他们的医疗问答机器人总把"糖尿病治疗方案"回答成"妊娠期饮食建议"。当我打开原始文档才恍然大悟——300页的PDF被粗暴地按固定字符数切割&#xff0c;导致关键医…

2026/7/25 2:11:39阅读更多 →
网盘直链下载助手:一站式解锁九大网盘高速下载的智能解决方案

网盘直链下载助手:一站式解锁九大网盘高速下载的智能解决方案

网盘直链下载助手&#xff1a;一站式解锁九大网盘高速下载的智能解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘…

2026/7/25 2:11:39阅读更多 →
企业AI私有化部署的五大核心考量与实战经验

企业AI私有化部署的五大核心考量与实战经验

1. 企业AI私有化部署的核心考量去年给某制造业客户做AI质检方案时&#xff0c;他们CIO的一句话让我印象深刻&#xff1a;"上AI系统就像结婚&#xff0c;选型失误的离婚成本比谈恋爱高十倍。"这句话道破了企业AI私有化部署的关键——前期选型直接决定后期成败。作为实…

2026/7/25 2:11:35阅读更多 →
一次多模态项目从 0 到 1 的全程记录:三个月踩过的坑

一次多模态项目从 0 到 1 的全程记录:三个月踩过的坑

一次多模态项目从 0 到 1 的全程记录&#xff1a;三个月踩过的坑 一、个性化深度引言 这个项目启动于今年初&#xff0c;目标是为某客户做一个"图文商品属性自动提取"系统——上传电商商品图片&#xff0c;系统自动识别品类、品牌、规格参数&#xff0c;填入ERP系统。…

2026/7/25 2:11:34阅读更多 →
AI Agent如何实现全链路自动化营销

AI Agent如何实现全链路自动化营销

1. AI Agent如何真正成为营销领域的"超级员工"最近行业里关于"AI超级员工"的讨论越来越热&#xff0c;但真正能落地执行全流程营销任务的AI Agent并不多见。创客兔团队经过两年多的实战验证&#xff0c;确实打造出了一套能够真正"动手干活"的自动…

2026/7/25 2:11:34阅读更多 →
计算机毕业设计之基于Node.js+Vue的在线音乐播放系统的设计与实现

计算机毕业设计之基于Node.js+Vue的在线音乐播放系统的设计与实现

随着新经济的需求和新技术的发展&#xff0c;特别是网络技术的发展&#xff0c;如果可以建立起在线音乐播放系统&#xff0c;可以改变传统线下管理方式&#xff0c;在过去的时代里都使用传统的方式实行&#xff0c;既花费了时间&#xff0c;又浪费了精力。在信息如此发达的今天…

2026/7/25 2:09:34阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中&#xff0c;我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源&#xff0c;还是配置文件、证书等&#xff0c;都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下&#xff0c;但这…

2026/7/25 1:01:14阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP&#xff08;轻量级目录访问协议&#xff09;作为企业级身份认证的黄金标准&#xff0c;已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时&#xff0c;发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 1:01:14阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”&#xff0c;而是以可解释、可审计、可迭代的方式&#xff0c;赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/25 1:01:14阅读更多 →
突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制&#xff1a;kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是为了解决您的…

2026/7/25 0:01:16阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述&#xff1a;为什么我们要“手撕”string类&#xff1f;在C的学习道路上&#xff0c;尤其是从C语言过渡到C的“初阶”阶段&#xff0c;string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了&#xff0c;、find、substr&#xff0c;几个操作符和函数…

2026/7/25 0:01:16阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看&#xff0c;“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具&#xff0c;而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源&#xff0c;比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:01:16阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/24 23:01:03阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →