LangChain 概述与环境搭建
本章目标本章是 LangChain 课程的第一章重点不是讲很多高级能力而是先完成一个最基础的开发闭环知道 LangChain 是什么理解 LangChain、模型 API、DeepSeek 之间的关系搭建本地 Python 环境使用 DeepSeek 的 OpenAI 兼容 API 完成一次普通调用使用 LangChain 的init_chat_model初始化 DeepSeek 模型写出第一个可运行的 LangChain 小案例1. 智能体1.1 智能体的崛起与应用趋势2022 年年底大模型 ChatGPT 3.5 横空出世将人工智能时代清晰地划分为前后两个时期。大模型的出现展现出一种前所未有的通用智能它不仅能解析人类语言的复杂意图还能进行跨领域的知识融合与推理生成连贯且富有洞见的解决方案。这标志着我们终于拥有了一个可被广泛调用的数字大脑。当大模型被赋予感知环境、制订计划并执行任务的能力时一种全新的软件范式便应运而生 —— 这就是智能体。它不再是遵循预设流程的被动工具而是能够主动理解目标、规划路径并采取行动的数字化行动者。智能体正以其高度的自主性和适应性重塑软件的定义并开始在一些领域替代传统的应用模式与 SaaS 服务。1.1.1 从传统应用到智能体时代技术演进的轨迹清晰地勾勒出从 PC 互联网时代、移动互联网时代到 AI 智能化时代的技术演进浪潮。期间虽不乏区块链、元宇宙等热点技术但真正引发范式革命的始终是核心交互模式的根本性重塑。如图 1-1 所示我们正处在这样一个历史性的转折点上。图 1-1 从传统应用到智能体的演进其本质是一场从命令执行到目标协作的深刻变革。对比维度传统应用智能体驱动模式命令驱动目标驱动交互方式固定界面、参数输入自然语言、语义理解执行逻辑流程化、预定义自主规划、多步推理学习机制静态算法动态学习与记忆系统角色工具合作伙伴传统应用遵循 “输入 — 处理 — 输出” 的线性逻辑而智能体则运行在 “感知 — 决策 — 行动 — 记忆” 的持续循环中。智能体不仅能行动还能从结果中学习并动态优化后续策略。从传统应用到智能体的演进不仅是技术的升级而且是一次人机关系的重新定义。过去我们是命令者传统应用是服从者未来我们是目标的提出者智能体是实现目标的合作伙伴。 随着相关技术不断成熟它们将主动承担起规划、协调与执行的重任成为人类认知与行动能力的延伸。1.1.2 智能体的核心概念在 1.1.1 节中我们了解了智能体与传统应用的根本区别智能体能够理解目标、规划路径并自主行动。如果说传统应用是服从命令的士兵那么智能体则更接近于一位能够独立思考、判断并持续学习的专业助手。要深入理解智能体的本质我们就需要系统拆解其四大核心能力模块感知Perception、决策Reasoning、行动Action、记忆Memory。 这四大模块共同构成了智能体赖以运作的认知闭环其基本构成可参考图 1-2 所示。我们可以这样比喻 感知是眼睛决策是大脑行动是双手记忆是灵魂。 正是这四者精密协同使得智能体超越了传统工具范畴进化为一个具备环境适应性、目标驱动性与持续进化能力的数字生命体。智能体是一个虚拟的概念可以是自己开发的也可以是使用别人的。2. LangChain 是什么2.1 框架定位与发展历程开发智能体的框架 LangChain langchain4J(4fourfor) SpringAI1. LangChain 的框架定位设计 LangChain 的初衷是为大模型开发提供一个模块化、可组合化的开发框架。LangChain 是介于大模型与应用之间的中间层让开发者能够以一致的方式调用多种大模型、组织提示词、管理上下文状态并集成外部工具与数据源从而高效构建出具备推理与行动能力的智能体。其核心定位可概括为以下三个方面。1连接大模型与应用通过统一接口将大模型与数据库、检索引擎、API、文件系统等外部资源连接。2封装复杂逻辑封装智能体所需的复杂模式如工具调用、记忆等抽象层降低开发复杂度。3支持多智能体协作与状态管理随着 LangGraph 与 Deep Agent 的加入LangChain 生态已从单智能体向多智能体协作扩展甚至可以打造对标 Manus 的工业级智能体。2. LangChain 的发展历程LangChain 最早由机器学习项目工程师哈里森・蔡斯Harrison Chase于2022 年年底发布最初旨在更好地组织和管理提示词。随着大模型技术爆发式发展LangChain 迅速演进为构建智能体的重要框架。其发展大致经历了以下四个阶段。1探索期2022 年 Q4—2023 年 Q1LangChain初版发布主要聚焦于 PromptTemplate、LLMChain 等基础模块。其凭借前瞻性设计在开源社区迅速走红GitHub Star 数快速破万成为早期最受关注的大模型应用框架。2体系化阶段2023 年 Q2—2023 年 Q4引入Tool、Agent、Retrieval 等概念形成大模型 工具调用 记忆的核心架构支持构建完成复杂任务的自动化智能体。同期推出 LangChain Hub 与LangSmith初步构建了从开发、调试到部署的生态闭环。3平台化阶段2024 年 —2025 年上半年LangGraph 与 LangServe 的发布是这一阶段的标志。LangGraph为工作流管理提供了有向图基础而 LangServe 则解决了服务部署的难题。至此LangChain 生态完成了从开发框架到智能体平台的跃升。4深层智能体阶段2025 年下半年至今正式推出Deep Agent官方定位为 Agent Harness智能体执行框架在 LangGraph 和 LangChain 之上运行标志着 LangChain 生态进入新阶段让开发者可构建基于多智能体的复杂化智能体系。截至 2025 年 11 月LangChain 生态形成了三层技术栈LangChain→LangGraph→Deep Agent分别对应基础能力层、运行时编排与智能体抽象层。 这三层共同构成了一个从底层组件到高层自治行为的技术闭环。当下提及的 LangChain往往指的是这个不断进化的生态体系而不仅仅是其最初的 LangChain 基础框架部分。3. 多语言支持与 Python 的核心地位LangChain 生态支持包括Python和JavaScript语言实现。其中Python 版本仍是功能最完整、更新最及时、社区最活跃的核心实现。因此对于旨在构建可持续演进、深度定制且满足企业级要求的智能体系统的开发者而言LangChain 的 Python 版无疑是首选。它既能支持快速验证原型又能支撑企业级生产部署本书后续的实践部分也将基于 Python 展开。python 人工智能第一语言2.2 生态体系介绍经过持续迭代与演进LangChain 已从一个独立的开发框架成长为一个覆盖智能体系统全生命周期的技术生态。该生态由四大核心支柱构成LangChain、LangGraph、Deep Agent 与 LangSmith它们分别面向开发、编排、自治、监控与评估共同构建了一个从技术验证到生产部署、从单体智能到复杂协作的项目闭环。langchain 全家桶都有什么langchain 生态 Langchain(core) LangGraphDeep Agent LangSmith1. LangChain智能体开发的基石使用 langchain 可以开发一个简单的智能体LangChain 是整个生态的核心与起点扮演着语言模型项目化框架的角色。它将大模型从封闭的文本生成器拓展为能与外部环境交互的可编程智能单元为开发者提供了模型调用、工具与中间件集成、智能体构建等一整套基础能力。在整体架构中LangChain 如同智能体的操作系统内核是所有上层能力构建的基础。2. LangGraph图复杂工作流的编排引擎可以将多个智能体编排起来形成一个复杂的智能体当智能体的任务从单一指令执行扩展为多步骤、有状态的复杂工作流时LangGraph 应运而生。它作为生态中的运行时编排层采用有向图结构来显式地定义和管理智能体的执行逻辑与状态流转。其核心思想是将智能体内部抽象为一张有向图。通过这种图式结构LangGraph 让智能体的工作流节点交互变得显式、可控、可观测。3. Deep Agent智能体的执行框架Deep Agent 是新推出的全新组件被定位为 Agent Harness马鞍智能体执行框架。它构建于 LangChain 与 LangGraph 之上旨在让开发者无须从零构建复杂的控制逻辑即可创建具备深度规划、长期记忆与多专家协作能力的智能体。LangChain 是基础框架LangGraph 是在 LangChain 基础上的高级编排工具Deep Agent 是在 LangChain 与 LangGraph 上实现可以处理复杂任务的智能体模板。1做重型全自动复杂任务优先 DeepAgent底层自动调用 LangChainLangGraph不用你手动写底层2 做简单线性 AI 功能直接 LangChain没必要上 DeepAgent3 要完全掌控流程、自定义复杂流转规则手写 LangGraphLangChain 做工具 / 模型支撑放弃 DeepAgent 封装4. LangSmith可观测性与质量管理平台当智能体系统逐渐复杂时单靠日志与打印输出print调试已无法满足调试与质量管理的需求。LangSmith 是 LangChain 官方推出的可观测性与质量管理平台用于跟踪、记录和分析智能体在运行过程中的完整调用链路让智能体的内部运行过程变得透明和可评估。打破了智能体运行是黑盒的局面让开发人员可以追踪整个智能体的运行流程。是一个网站。LangSmith 的引入使得智能体的开发、调试与运维形成了完整的质量闭环。总体而言LangChain 生态体系的成熟标志着智能体开发从工具链组合正式迈入平台化项目的新阶段。它不再仅仅关心如何构建功能更系统地解决了如何编排、治理、部署、观测和评估一个复杂的智能体为企业级智能体的落地提供了坚实、可靠的完整路径。2.3 LangChain 1.0 说明记住一句话学习只学 1.0 以后的之前的了解一下。LangChain 1.0 的发布是其发展历程中的一个重要里程碑。自 2022 年年底问世后的将近三年时间里LangChain 的版本号长期停留在 0.x这反映了其在快速发展的 AI 生态中持续探索与迭代是相对谨慎的。此次其版本号直接跃迁至 1.0。这是真正意义上的第一个正式大版本不仅代表了其 API 与架构的稳定会长期支持一段时间还象征着整个生态在思想上的统一与成熟。1. 核心变革从功能堆砌到体验统一对于 LangChain 0.x 的老用户而言普遍的体会是框架的臃肿与复杂。其模块众多、概念繁杂虽然功能强大但学习曲线杂乱且在不同场景下的 API 设计存在不一致性。LangChain 1.0 的核心目标之一正是解决这一问题。它进行了一次彻底的架构重构与瘦身其重点不在于增加新功能而在于重塑开发者体验。通过废弃冗余 API、统一接口、明确最佳实践新版本使得框架变得更为轻量、直观且易于维护。2. 思想跃迁从链式思维到智能体优先回顾 LangChain 的演进其命名源于最初的核心抽象 —— 链Chain旨在将多个模型调用按顺序组合。随后为了应对更复杂的控制流LangGraph 引入了基于状态图的编排能力成为构建复杂智能体的强大底层引擎。LangChain 1.0 的另一个深远变革是实现了从链式思维到智能体优先的设计哲学跃迁它在 LangGraph 提供的强大编排能力之上封装了一套更高级、更易用的智能体编程接口create_agent 和 create_deep_agent但是它的命名并没有延续用 LangGraph最终还是选择叫 LangChain 1.0因为 LangChain 的知名度更高一些。所以有人戏称LangChain 1.0 应该叫 LangGraph 2.0。LangChain 1.0 正式推出之后LangGraph 下沉为底层框架而又得益于 LangChain 1.0 中推出的另一项中间件特性对于大多数开发场景我们将不会再直接用到底层的 LangGraph API。从开发者的角度来看我们也不必纠结于 LangChain 和 LangGraph 这两者的关系学习 LangChain 1.0 即可。3. 技术基石中间件与 Deep Agent为了实现上述智能体优先范式LangChain 1.0 引入了两项关键技术。1中间件机制这为智能体的执行流程提供了强大的可观测性与可控性。开发者可以方便地注入日志记录、组件监控等通用逻辑而不必污染核心业务代码这是构建企业级应用的基础。 就是 Spring 的 AOP2Deep Agent作为生态的前沿探索性质项目它提供了一套更高阶的 Agent Harness。开发者可以在完全不知道 LangChain 与 LangGraph 底层规则情况下Deep Agent 在上层做了封装通过配置子智能体、文件系统路径、系统提示词和工具集等即可快速组装出具备深度规划与协作能力的复杂智能体而无须深入理解其底层的状态图实现细节这降低了构建工业级智能体应用的门槛。总体而言LangChain 1.0 的发布是一次以开发者体验和智能体范式为中心的战略升级。LangChain 1.0 利用架构重构统一了开发规范利用高层 API 屏蔽了底层复杂性并利用中间件等机制奠定了企业级应用的基石。对于开发者来说这意味着可以更专注于智能体本身的行为逻辑与业务价值而非框架的实现细节从而可以更高效地构建面向未来的 AI 应用。3. 为什么使用 DeepSeek本课程使用 DeepSeek 模型作为主要演示模型。DeepSeek API 的一个重要特点是兼容 OpenAI API 格式。官网https://www.deepseek.com/也就是说很多支持 OpenAI 接口格式的 SDK 或框架只要替换API Keybase URLmodel 名称就可以调用 DeepSeek。DeepSeek 官方 OpenAI 兼容 base URLhttps://api.deepseek.com本课程主要使用deepseek-v4-flash4. OpenAI 兼容 API 是什么很多大模型服务会提供类似 OpenAI 的接口格式。这类接口通常包含api_keybase_urlmodelmessages示例结构client.chat.completions.create( modeldeepseek-v4-flash, messages[ {role: user, content: 你好} ], )这就是常见的 Chat Completions 调用方式。LangChain 底层也可以对接这类模型服务但它会把模型调用封装成更统一的组件方便后续和 Prompt、Parser、Retriever、Tool 等组件组合。5. 开发环境准备建议使用 Python 3.10 或更高版本。生产环境优先推荐Python 3.10 / 3.11是 LangChain 1.x 生态兼容性最好、第三方包适配最完整的版本踩坑最少。Python 3.12 可正常使用3.13 版本较新部分小众集成包可能存在适配延迟安装依赖pip install langchain langchain-openai openai python-dotenv如果下载速度较慢可以使用国内镜像pip install langchain langchain-openai openai python-dotenv -i https://pypi.tuna.tsinghua.edu.cn/simple说明langchainLangChain 核心框架langchain-openaiLangChain 的 OpenAI 兼容模型集成openaiOpenAI 兼容 API SDKpython-dotenv读取.env配置文件建议配置全局的镜像源Windows 在用户目录 C:\Users\你的用户名 新建 pip 文件夹创建 pip.ini[global] index-url https://mirrors.aliyun.com/pypi/simple/ trusted-host mirrors.aliyun.com6. 配置 DeepSeek API Key在项目根目录创建.envDEEPSEEK_API_KEY你的 DeepSeek API Key DEEPSEEK_BASE_URLhttps://api.deepseek.com注意不要把真实 API Key 写进代码不要把.env提交到 Git 仓库可以创建.gitignore.env .venv/ __pycache__/import os from dotenv import load_dotenv load_dotenv() print(os.getenv(DEEPSEEK_API_KEY))7. 案例一直接使用 OpenAI 兼容 API 调用 DeepSeek在正式使用 LangChain 前先用 OpenAI 兼容 API 直接调用一次 DeepSeek。LangChain 不是凭空调用模型它底层仍然需要模型服务。创建01_openai_compatible.pyimport os from dotenv import load_dotenv from openai import OpenAI load_dotenv() client OpenAI( api_keyos.getenv(DEEPSEEK_API_KEY), base_urlos.getenv(DEEPSEEK_BASE_URL), ) response client.chat.completions.create( modeldeepseek-v4-flash, messages[ {role: user, content: 请用一句话介绍 LangChain 是什么} ], ) print(response.choices[0].message.content)原生 openai Python SDK非 LangChain原生包只有一个 OpenAI 客户端 这里的client.chat.completions只是客户端下的子模块不是叫 ChatOpenAI 的类不要和 LangChain 混淆如果能看到模型回答说明API Key 正确网络可以访问 DeepSeekDeepSeek 模型调用成功8.案例二 ChatOpenAI 写法import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI load_dotenv() # 创建 ChatGPT 模型实例 model ChatOpenAI( modeldeepseek-v4-flash, temperature0.7, # 控制输出的随机性0-1之间值越大越随机 api_keyos.getenv(DEEPSEEK_API_KEY), base_urlos.getenv(DEEPSEEK_BASE_URL), ) # 调用模型 response model.invoke(请解释LangChain模型接口的统一性。) print(response.content) for chunk in model.stream(请用一句话总结人工智能的意义): print(chunk.content, end)temperature是大模型生成文本核心超参数控制输出随机性、创造力取值范围一般0 ~ 2temperature 0 完全确定性每次提问输出一模一样适合代码、数学计算、事实问答、翻译。0 temp 0.7 轻微随机逻辑稳定日常聊天、文案、总结首选区间。0.7 ~ 1.0 创造力强措辞更多变适合故事、创意写作、头脑风暴。 1.0 随机性极高容易逻辑混乱、胡编内容极少使用。新项目一律只用 ChatOpenAI老式 OpenAI 类逐步废弃8. 案例三使用 LangChain 初始化 DeepSeek 模型LangChain 提供了统一的模型初始化方式。需要指出的是以上是 LangChain 早期版本中的常见写法也是目前许多教程仍在使用的写法。虽然该方法在功能上仍然有效但已不再是官方推荐的最佳实践。自 LangChain 0.2 起官方推荐使用统一的工厂方法init_chat_model来创建模型实例这一方法在最新的 LangChain 1.0 中继续得到支持和强化。本课程使用init_chat_model创建02_langchain_first_call.pyimport os from dotenv import load_dotenv from langchain.chat_models import init_chat_model load_dotenv() modelinit_chat_model( base_urlos.getenv(DEEPSEEK_BASE_URL), api_keyos.getenv(DEEPSEEK_API_KEY), modeldeepseek-v4-flash, temperature0.7, model_provideropenai ) #response model.invoke(什么是Deep Agent?) #print(response.content) for chunk in model.stream(什么是Deep Agent?): print(chunk.content, end)运行python 02_langchain_first_call.py这段代码和上一个案例的区别是上一个案例直接使用 OpenAI 兼容 SDK这个案例使用 LangChain 的模型组件后续课程中我们会继续把这个模型组件和 Prompt、Parser、Retriever 等组件组合起来。9. 代码说明9.1 load_dotenvload_dotenv()作用是读取.env文件中的配置。本章主要读取DEEPSEEK_API_KEY DEEPSEEK_BASE_URL9.2 init_chat_modelmodel init_chat_model( modeldeepseek-v4-flash, model_provideropenai, api_keyos.getenv(DEEPSEEK_API_KEY), base_urlos.getenv(DEEPSEEK_BASE_URL), )这段代码表示使用 LangChain 初始化一个聊天模型模型名称是deepseek-v4-flash模型接口按 OpenAI 兼容格式调用API 地址使用 DeepSeek 的 base URL这里的model_provideropenai不是说使用 OpenAI 模型而是表示使用 OpenAI 兼容接口格式。9.3 invokeresponse model.invoke(请用一句话介绍 LangChain 的作用)invoke表示执行一次模型调用。返回结果中模型回答内容通常在response.content10. 案例三第一个课程答疑助手本案例实现一个简单的课程答疑助手。暂时不使用 Prompt 模板只使用普通字符串。创建03_course_assistant.pyimport os from dotenv import load_dotenv from langchain.chat_models import init_chat_model load_dotenv() modelinit_chat_model( base_urlos.getenv(DEEPSEEK_BASE_URL), api_keyos.getenv(DEEPSEEK_API_KEY), modeldeepseek-v4-flash, temperature0.7, model_provideropenai ) def getPrompt(question): promptf 你是一名langchain助教 请使用最简洁的语言回答问题要适合初学者 回答问题的格式如下 1、先说结果 2、举例子 3、不要超过200字 学生的问题是{question} return prompt if __name__ __main__: questioninput(请输入您的问题) for word in model.stream(getPrompt(question)): print(word.content,end)运行python 03_course_assistant.py示例输入LangChain 和直接调用 DeepSeek API 有什么区别这个案例的重点是模型初始化只写一次业务代码通过函数调用模型Prompt 可以控制回答风格和输出要求后面章节会专门讲 Prompt 模板这里先不展开。11、其他大模型的支持1、openAI此处用的是国内的 openai 代理服务器 CloseAIAPI密钥获取地址https://www.closeai-asia.com/登录后在“秘钥管理”中创建个人密钥可创建多个密钥用于不同项目如langchain_test、test等确保密钥处于“启用中”状态。CloseAI: 商用级 OpenAI 专属代理平台补充说明国内访问海外服务可能存在不稳定情况可尝试更换备用接口地址在CloseAI官网查看。这个平台需要提前充点钱否则调用失败显示如下错误Error code: 403 - {error: {message: 主账户可用余额不足本次请求需要可用余额大于 0.01 元才能完成您的可用余额为 -0.00840525 元(请求预冻结 0.00840525 元)请充值后再使用, type: error}}CloseAI 是国内 OpenAI 的代理在编写代码时你也可以将其换为其他的模型但是一定要注意这个平台中必须含有你调用的大模型否则报错from langchain_openai import ChatOpenAI # 创建 ChatGPT 模型实例 model ChatOpenAI( modelgpt-4o-mini, temperature0.7, # 控制输出的随机性0-1之间值越大越随机 api_key你的api, base_urlhttps://api.openai-proxy.org/v1 ) # 调用模型 #response model.invoke(请解释LangChain模型接口的统一性。) #print(response.content) for chunk in model.stream(请用一句话总结人工智能的意义): print(chunk.content, end)2、Qwen大模型阿里巴巴推出的 Qwen 系列模型是近年来国内在多模态与通用领域最具代表性的成果之一。依托于 DashScope 平台提供的 API 服务无论是文本生成、图像创作还是代码补全与视频理解Qwen 系列模型都能与国际顶尖模型相媲美。在开源生态中Qwen 系列模型在 HuggingFace 上的活跃度很高是全球开源社区中一股不容忽视的力量。开通链接大模型服务平台百炼控制台前面已经讲了 DeepSeek使用 init_chat_model 调用模型的方式也一样那为什么还要单独讲 Qwen 系列模型从表面上来看确实相似。我们依旧希望通过 LangChain 的统一入口函数 init_chat_model 来加载模型只需更换 model_provider 参数即可比如千问 Qwen是大模型的名字百炼阿里云旗下的模型广场里面有很多别人家的大模型# × 不支持 from langchain.chat_models import init_chat_model model init_chat_model( modelqwen-plus, model_providerdashscope, # 暂不支持 )事情并没有这么简单当真正运行这段代码时LangChain 会提示错误ValueError: Unsupported model_providerdashscope. Supported model providers are: groq, fireworks, bedrock_converse, ollama, azure_ai, ibm, mistralai, openai, deepseek, together, xai, huggingface, azure_openai, anthropic, cohere, google_genai, google_vertexai, google_anthropic_vertex, perplexity, bedrock原因并不是配置错了而是目前 Qwen 系列模型的底层平台 DashScope 尚未被 LangChain 官方纳入模型的统一注册体系换句话说LangChain 还不知道 “dashscope” 这个提供者是谁。那该怎么处理这一情况呢在这种情况下可以借助 LangChain 的扩展生态使用 LangChain 社区扩展包 langchain-community 去实现。这个扩展包中已经封装好了 Qwen 系列模型的原生适配器只要安装好依赖就能像使用官方模型一样调用。安装命令非常简单pip install -U dashscope pip install langchain_community然后在代码中这样写即可from langchain.chat_models import init_chat_model from langchain_community.llms.tongyi import Tongyi # init_chat_model 是新的创建model方法 model Tongyi( modelqwen-plus, temperature0.3, # 控制输出的随机性0-1之间值越大越随机 api_key你的api ) for chunk in model.stream(langchain有哪几部分组成): print(chunk, end)3、硅基流动官网地址https://www.siliconflow.cn/需先申请API Key支持DeepSeek、Qwen等模型以下为两种调用方式env中添加内容 GUIJI_BASE_URLhttps://api.siliconflow.cn/v1 GUIJI_API_KEY你的硅基流动的key值import os from dotenv import load_dotenv from langchain.chat_models import init_chat_model load_dotenv() modelinit_chat_model( base_urlos.getenv(GUIJI_BASE_URL), api_keyos.getenv(GUIJI_API_KEY), modeldeepseek-ai/DeepSeek-V4-Flash, temperature0.7, model_provideropenai ) #response model.invoke(什么是Deep Agent?) #print(response.content) for chunk in model.stream(什么是Deep Agent?): print(chunk.content, end)在实际项目中建议遵循以下接入顺序。1首选 init_chat_model因为它统一了多家模型的加载接口能让代码更具可移植性。2若报“不支持”错误则去社区找扩展包实现。3务必注意版本匹配LangChain 扩展包与模型 SDK如 DashScope的版本需保持兼容否则可能出现接口不一致或响应解析错误。 对其他模型不再逐一展开介绍它们都是用上面这种思路进行接入。12. 本章常见问题11.1 API Key 没有生效检查.env是否在项目根目录。检查变量名是否正确DEEPSEEK_API_KEY你的 DeepSeek API Key DEEPSEEK_BASE_URLhttps://api.deepseek.com检查代码中是否调用load_dotenv()11.2 下载依赖慢可以使用国内镜像pip install langchain langchain-openai openai python-dotenv -i https://pypi.tuna.tsinghua.edu.cn/simple11.3 访问模型失败可能原因API Key 错误账户余额不足当前网络无法访问 DeepSeek API公司网络代理限制base URL 写错本章使用的 base URL 是https://api.deepseek.com13. 本章重点本章最重要的是掌握LangChain 是用来组织大模型应用开发的框架DeepSeek API 兼容 OpenAI API 格式可以先用 OpenAI SDK 验证 DeepSeek 是否能正常调用LangChain 中可以使用init_chat_model初始化模型invoke用于执行一次模型调用API Key 应该放在.env中到这里我们已经完成了 LangChain 的第一个可运行案例。

相关新闻

C++高性能编程:AI量化交易中低延迟与高吞吐的平衡之道

C++高性能编程:AI量化交易中低延迟与高吞吐的平衡之道

1. 项目概述:当AI量化交易遇上C的终极挑战“低延迟”和“高吞吐”,这两个词在AI量化交易领域,就像是天平的两端,常常让人陷入两难。追求极致的速度,往往意味着要牺牲并行处理能力,导致单位时间内能处理的数…

2026/7/22 4:33:31 阅读更多 →
AI Agent失控事件:生产环境安全与权限管理深度解析

AI Agent失控事件:生产环境安全与权限管理深度解析

1. 事件概述:AI Agent失控引发的生产环境灾难2026年4月26日,PocketOS创始人Jer Crane在社交媒体披露了一起由AI编程助手引发的重大事故。运行在Cursor开发环境中的Claude Opus 4.6 AI Agent在处理常规任务时,仅用9秒就通过Railway的GraphQL A…

2026/7/22 4:32:31 阅读更多 →
《冰雪传奇点卡版》转生系统深度解析与高效攻略

《冰雪传奇点卡版》转生系统深度解析与高效攻略

1. 转生系统基础认知:从零开始的冰雪法则在《冰雪传奇点卡版》这个经典复刻的MMORPG中,转生系统是角色成长的核心分水岭。与传统版本相比,点卡版对转生机制做了三个关键调整:首先,转生所需的等级门槛从80级降低到60级&…

2026/7/22 4:32:31 阅读更多 →

最新新闻

C++数据类型全解析:从底层原理到实战避坑指南

C++数据类型全解析:从底层原理到实战避坑指南

1. 项目概述:为什么数据类型是C的基石?刚接触C的朋友,可能觉得数据类型是个枯燥的语法点,不就是int、float、char这些吗?我当年也是这么想的,直到在项目里踩了几个大坑。有一次,我用int去存一个…

2026/7/22 5:33:51 阅读更多 →
C#+WPF+Opencv模块化开发视觉对位运动控制系统-51cto

C#+WPF+Opencv模块化开发视觉对位运动控制系统-51cto

下载课:weiranit.fun/16667/ 模块化视觉运动控制实战:C#WPFOpenCV 完整系统课(完结) 在工业自动化迈向智能化、精密化的进程中,视觉与运动的深度融合已成为衡量系统性能的关键标尺。然而,传统的开发模式往往…

2026/7/22 5:33:51 阅读更多 →
C++表达式求值系统:从双栈算法到AST构建的工程实践

C++表达式求值系统:从双栈算法到AST构建的工程实践

1. 项目概述:从计算器到编译器,表达式求值的核心价值刚入行那会儿,总觉得表达式求值是个“玩具”问题,不就是做个计算器嘛。直到后来参与一个工业控制系统的脚本引擎开发,看着一行简单的“A (Pressure * 0.1 Offset)…

2026/7/22 5:33:50 阅读更多 →
C++输入输出流与string类实战:从C语言到现代C++的平滑过渡

C++输入输出流与string类实战:从C语言到现代C++的平滑过渡

1. 项目概述:从C到C的思维跃迁 很多从C语言转向C的开发者,初期最容易陷入的误区就是“新瓶装旧酒”——虽然用了C的编译器,但写的依然是C风格的那一套代码。我自己带过不少新人,也看过很多项目代码,发现这个过渡期如果…

2026/7/22 5:33:50 阅读更多 →
AI通用能力(二)

AI通用能力(二)

All-Reduce、All-Gather 和 Reduce-Scatter 都是分布式训练中的集合通信操作(collective communication)。它们不是两个 GPU 之间的点对点通信,而是由一个通信组中的所有 GPU 共同参与。假设每张 GPU 上都有一个形状相同的张量: G…

2026/7/22 5:33:50 阅读更多 →
Video2x视频增强工具:基于GAN的超分辨率与补帧技术详解

Video2x视频增强工具:基于GAN的超分辨率与补帧技术详解

1. 项目概述:Video2x视频增强工具解析这个在GitHub上狂揽1.7万星标的开源项目,本质上是一个基于深度学习的视频处理工具链。它最核心的能力是通过神经网络算法,将低分辨率、模糊的老旧视频素材,智能提升至高清甚至4K画质&#xff…

2026/7/22 5:32:50 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

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

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

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

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

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

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

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

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

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

2026/7/21 8:25:39 阅读更多 →

月新闻