LangChain入门:从零搭建DeepSeek开发环境
前言网上LangChain的教程不少但要么是官方文档的翻译要么上来就扔一堆概念。我看了不少真正能让我从头跑到尾的没几个。这篇文章记录了我自己从零开始搭建LangChain开发环境的过程用的是DeepSeek的API。全程可复现代码也都在。读完你能得到什么搞清楚LangChain到底是什么不是什么本地Python环境搭好能跑起来用原生SDK和LangChain两种方式调通DeepSeek跑通一个能用的课程答疑小助手不废话直接开始。一、LangChain到底是什么官方定义说LangChain是一个构建大模型应用的开源框架。说人话就是它帮你把大模型、提示词、外部工具、记忆能力这些东西组装到一起不用你自己从头造轮子。2022年底LangChain刚出来的时候基本就是提示词模板加模型调用的组合。后来大模型火起来它也跟着快速迭代陆续加入了工具调用、智能体、记忆管理等能力。到2025年LangChain已经形成了一个生态核心是三层结构第一层是基础的LangChain框架负责模型调用和基础组件。第二层是LangGraph用图结构来编排复杂的工作流。第三层是Deep Agent提供现成的智能体模板开箱即用。不过对初学者来说先从第一层入手就够了。等跑通了基础调用再往深了学不迟。需要注意的一个变化是LangChain在2025年发布了1.0正式版。在这之前版本号一直是0.xAPI变动很频繁很多老教程的写法在1.0里已经过时了。你现在开始学刚好避开了那段混乱期。二、为什么用DeepSeek选DeepSeek就一个原因它的API完全兼容OpenAI的接口格式。这意味着你只要改三个配置——API Key、base URL、模型名称——就能用所有支持OpenAI接口的SDK和框架。LangChain也支持。以后如果想换别的模型只要也是OpenAI兼容格式改几行配置就行代码主体不用动。DeepSeek的官方API地址是 api.deepseek.com模型名称目前常用的是 deepseek-v4-flash。三、搭建开发环境Python版本建议3.10或3.11。3.12也能用3.13目前部分包可能还不兼容。我自己用的是3.14目前没遇到问题但不推荐新手用太新的版本。在项目目录下创建虚拟环境python -m venv .venvWindows激活.venv\Scripts\activateMac或Linuxsource .venv/bin/activate然后安装依赖pip install langchain langchain-openai openai python-dotenv如果下载速度慢换国内镜像源pip install langchain langchain-openai openai python-dotenv -i https://pypi.tuna.tsinghua.edu.cn/simple四、配置API Key在项目根目录创建.env文件DEEPSEEK_API_KEY你的DeepSeek API KeyDEEPSEEK_BASE_URLhttps://api.deepseek.comAPI Key要去DeepSeek官网的个人中心生成。同时创建.gitignore文件把.env加进去防止不小心把Key提交到Git仓库。五、第一次调用不用LangChain先别急着上LangChain。直接用OpenAI SDK调一次DeepSeek确认API Key和网络都没问题。创建文件 01_test_api.pyimport osfrom openai import OpenAIfrom dotenv import load_dotenvload_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: 用一句话介绍你自己}])print(response.choices[0].message.content)跑通了再往下。如果报错按顺序检查API Key有没有复制完整有没有多余空格。账户余额够不够。网络能不能访问 api.deepseek.com。base_url是不是写对了。这一步卡住的人不少问题基本出在这四个地方之一。六、用LangChain调用确认API没问题之后用LangChain的方式重写一遍。LangChain早期版本的写法是from langchain_openai import ChatOpenAImodel ChatOpenAI(modeldeepseek-v4-flash,api_keyos.getenv(DEEPSEEK_API_KEY),base_urlos.getenv(DEEPSEEK_BASE_URL))这个写法在1.0里还能用但官方已经不推荐了。新项目建议用init_chat_model这个统一入口。创建文件 02_langchain_call.pyfrom dotenv import load_dotenvfrom langchain.chat_models import init_chat_modelimport osload_dotenv()model init_chat_model(modeldeepseek-v4-flash,model_provideropenai,api_keyos.getenv(DEEPSEEK_API_KEY),base_urlos.getenv(DEEPSEEK_BASE_URL))response model.invoke(用一句话介绍什么是大模型)print(response.content)这里有个容易混淆的点model_provideropenai 不是说你在用OpenAI的模型而是说接口格式兼容OpenAI。DeepSeek用的是这个格式所以填openai。invoke是LangChain里执行模型调用的核心方法记住它就行。七、写一个课程答疑助手光调模型没意思我们做个稍微有点用的东西——一个课程答疑助手的雏形。创建文件 03_course_assistant.pyfrom dotenv import load_dotenvfrom langchain.chat_models import init_chat_modelimport osload_dotenv()model init_chat_model(modeldeepseek-v4-flash,model_provideropenai,api_keyos.getenv(DEEPSEEK_API_KEY),base_urlos.getenv(DEEPSEEK_BASE_URL))def ask_assistant(question):prompt f你是课程答疑助手请用简洁清晰的方式回答学员的问题。如果问题与课程内容无关请礼貌地说明你只回答课程相关问题。学员问题{question}response model.invoke(prompt)return response.contentif __name__ __main__:while True:q input(\n请输入你的问题输入q退出)if q.lower() q:breakprint(\n ask_assistant(q))运行之后输入问题比如LangChain和LangGraph有什么区别模型会基于你设定的提示词来回答。这个示例虽然简单但已经具备了智能体的基本形态接收输入、调用模型、返回结果。后面如果要扩展可以加记忆功能、加外部工具、加提示词模板这个结构都能支撑。八、关于temperature参数调用模型时经常看到temperature这个参数简单说一下怎么用。temperature控制输出结果的随机性取值范围一般是0到2。设为0时每次问同样的问题模型给同样的回答。适合代码生成、数学计算、翻译这类需要确定性的场景。设在0.3到0.7之间输出会有轻微变化但逻辑稳定日常聊天、文案写作、内容总结都在这个区间。设在0.7到1.0之间模型的创造力会明显增强措辞更多变适合故事写作和头脑风暴。超过1.0之后随机性太强容易逻辑混乱基本不用。日常用的话0.5到0.7是个比较稳妥的区间。九、其他模型怎么接如果以后想换成Qwen或者Claude怎么办理论上init_chat_model支持切换model_provider但实际操作中有些模型平台还没被LangChain官方纳入注册表。比如阿里云百炼的Qwen直接写model_providerdashscope会报错因为LangChain不认识这个提供者。这时候需要借助社区扩展包 langchain-communitypip install langchain-community然后用专门的适配器from langchain_community.chat_models import ChatDashScopemodel ChatDashScope(modelqwen-max,dashscope_api_keyos.getenv(DASHSCOPE_API_KEY))所以接入策略可以这样先用init_chat_model能通就通代码最干净。不通就去langchain-community里找对应的适配器。注意版本匹配不然解析响应的时候可能出错。十、常见问题API Key没生效检查.env文件是不是在项目根目录变量名是不是拼写正确代码里有没有调用load_dotenv()。下载依赖慢用清华镜像源或者配置全局pip源。调用失败先跑第五节的原生SDK脚本排除LangChain层面的问题。如果原生SDK能调通LangChain那边大概率是配置问题。如果原生SDK也报错回到API Key、余额、网络这三个方向排查。结语到这里你已经完成了LangChain开发的第一个闭环。虽然还没涉及到Agent、Tool、Memory这些高级话题但基础已经打好了。接下来可以顺着这个方向继续引入Prompt模板让回答更可控。加入对话记忆让助手能记住上下文。用LangGraph把多个步骤串成工作流。不过那是后面的事。先把这篇的代码跑通你已经比很多看了教程没动手的人强了。

相关新闻

CTF逆向工程自动化:Python实现常见加密算法识别与解密工具

CTF逆向工程自动化:Python实现常见加密算法识别与解密工具

1. 项目概述:为什么我们要自动化处理“烂大街”加密?在CTF逆向赛题里摸爬滚打几年,你会发现一个有趣的现象:很多题目看似复杂,外壳层层加壳,逻辑弯弯绕绕,但核心的加密算法,往往就那…

2026/7/23 9:58:29 阅读更多 →
YOLOv5在数据挖掘中的精度优化与工业实践

YOLOv5在数据挖掘中的精度优化与工业实践

1. YOLOv5在数据挖掘中的精度突破实践在计算机视觉与数据挖掘的交叉领域,目标检测技术正经历着从单纯识别到智能分析的范式转变。YOLOv5作为当前工业界最受欢迎的实时目标检测框架,其v6.1版本在COCO数据集上达到56.8% AP精度,同时保持140FPS的…

2026/7/22 4:38:33 阅读更多 →
AIGC检测技术在教育中的应用与挑战

AIGC检测技术在教育中的应用与挑战

1. 项目背景与核心挑战去年某高校首次引入AIGC检测机制时,发生了戏剧性一幕:一位学生提交的原创论文被系统判定为"AI生成概率72%",而实际调查发现,这篇关于方言保护的论文确实存在大量重复短语——这正是方言研究的典型…

2026/7/22 4:38:33 阅读更多 →

最新新闻

计算机毕业设计之语言上级考试题库智能化管理系统

计算机毕业设计之语言上级考试题库智能化管理系统

网络的广泛应用给生活带来了十分的便利。所以把语言上级考试题库智能化管理与现在网络相结合,利用net语言建设语言上级考试题库智能化管理系统,实现语言上级考试题库智能化管理的信息化。则对于进一步提高语言上级考试题库智能化管理发展,丰富…

2026/7/23 18:43:38 阅读更多 →
Kimi K3 vs GPT-4o:国产模型追平了吗?

Kimi K3 vs GPT-4o:国产模型追平了吗?

OpenAI 总裁评价 Kimi K3 “相当不错”,是客套还是真认可?国产模型和 GPT-4 的差距到底还有多大?1. 一个被忽视的信号 7 月 22 日,OpenAI 总裁 Greg Brockman 说了句话:“Kimi K3 无疑相当不错,但我们仍有巨…

2026/7/23 18:43:38 阅读更多 →
从审计约谈到账实相符:一个资产管理员的RFID实战手记

从审计约谈到账实相符:一个资产管理员的RFID实战手记

去年年底审计季,我经历了一场噩梦。我是公司行政部负责固定资产管理的小张。那天财务总监把我叫进办公室,桌上摊着三张固定资产明细表,脸色不太好看。“台账上写着B栋三楼有12台打印机,我刚让人去看,只找到7台。剩下的…

2026/7/23 18:43:38 阅读更多 →
智浦芯联 CL4056H 4.2V/800mA 宽压线性锂离子电池充电器 ESOP-8L/DFN3x3-8L 技术解析

智浦芯联 CL4056H 4.2V/800mA 宽压线性锂离子电池充电器 ESOP-8L/DFN3x3-8L 技术解析

在移动电话、MP3/MP4播放器、数码相机、蓝牙耳机、GPS导航仪等便携式电子设备中,单节锂离子/锂聚合物电池的充电管理需要兼顾充电电流、输入电压范围、封装尺寸以及完善的保护功能。CL4056H是一款性能优异的单节锂离子电池恒流/恒压线性充电芯片,采用ESO…

2026/7/23 18:43:38 阅读更多 →
LeetCode 179:最大数(贪心算法)—— 题解

LeetCode 179:最大数(贪心算法)—— 题解

👋 欢迎阅读🎯 欢迎来到「最大数」题解之旅! 本文将带你从“拼出最大的数字串”这一排序问题出发,深入理解贪心 自定义排序的经典应用,并掌握如何通过比较拼接结果来确定元素的排列顺序。在开始之前,建议你…

2026/7/23 18:43:38 阅读更多 →
工业5G专网切片架构与末端节点高EMC抗干扰设计实战指南

工业5G专网切片架构与末端节点高EMC抗干扰设计实战指南

摘要:随着工信部等八部门联合印发《关于推动工业互联网高质量发展的实施意见》,建设5万张工业5G专网与培育5G分级工厂成为全行业最核心的技术演进议题。在极其复杂的强电磁、高反射、NLOS(非视距)工业现场,传统的无线数…

2026/7/23 18:42:38 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/7/23 17:49:47 阅读更多 →

月新闻