当前位置: 首页 > news >正文

DeepSeek模型接入LangChain流程(详细教程)

1. LangChain安装流程

如果使用LangChain进行大模型应用开发,需要安装LangChain的依赖包,安装命令如下:

pip install langchain

不同的依赖包版本在使用方式上可能存在一些差异,这里我们采用的是目前最新的LangChain 0.3版本,可以通过如下命令进行查看: 

pip show langchain

2. 创建DeepSeek的API_KEY

在进行LangChain开发之前,首先需要准备一个可以进行调用的大模型,这里我们选择使用DeepSeek的大模型,并使用DeepSeek官方的API_KEK进行调用。如果初次使用,需要现在DeepSeek官网上进行注册并创建一个新的API_Key,其官方地址为:DeepSeek 

 注册好DeepSeekAPI_KEY后,首先在项目同级目录下创建一个.env文件,用于存储DeepSeekAPI_KEY。

接下来通过python-dotenv库读取.env文件中的API_KEY,使其加载到当前的运行环境中,代码如下:

pip install python-dotenv

import os
from dotenv import load_dotenv 
load_dotenv(override=True)DeepSeek_API_KEY = os.getenv("DEEPSEEK_API_KEY")
print(DeepSeek_API_KEY)  # 可以通过打印查看

我们在当前的运行环境下不使用LangChain,直接使用DeepSeekAPI进行网络连通性测试,测试代码如下:

pip install openai

from openai import OpenAI# 初始化DeepSeek的API客户端
client = OpenAI(api_key=DeepSeek_API_KEY, base_url="https://api.deepseek.com")# 调用DeepSeek的API,生成回答
response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "system", "content": "你是乐于助人的助手,请根据用户的问题给出回答"},{"role": "user", "content": "你好,请你介绍一下你自己。"},],
)# 打印模型最终的响应结果
print(response.choices[0].message.content)
你好!我是一个乐于助人的AI助手,随时准备为你提供帮助。我可以回答各种问题、提供建议、协助解决问题,或者陪你聊天。无论是学习、工作还是日常生活,我都会尽力为你提供有用的信息和支持。 我的知识涵盖了多个领域,包括但不限于科技、历史、文化、健康、编程等。如果你有任何疑问或需要帮助,随时告诉我! 😊 你想了解关于我的具体方面,还是需要其他帮助呢?

如果可以正常收到DeepSeek模型的响应,则说明DeepSeekAPI已经可以正常使用且网络连通性正常。 

3. DeepSeek接入LangChain流程

接下来我们要考虑的是,对于这样一个DeepSeek官方的API,如何接入到LangChain中呢?其实非常简单,我们只需要使用LangChain中的一个DeepSeek组件即可向像述代码一样,直接使用相同的DeepSeek_API_KEY与大模型进行交互。因此,我们首先需要安装LangChainDeepSeek组件,安装命令如下:

pip install langchain-deepseek

安装好LangChain集成DeepSeek模型的依赖包后,需要通过一个init_chat_model函数来初始化大模型,代码如下:

from langchain.chat_models import init_chat_modelmodel = init_chat_model(model="deepseek-chat", model_provider="deepseek")  question = "你好,请你介绍一下你自己。"result = model.invoke(question)
print(result.content)
你好!我是 **DeepSeek Chat**,由深度求索公司(DeepSeek)研发的一款智能AI助手。我可以帮助你解答各种问题,包括学习、工作、编程、写作、生活百科等多个领域。  ### **我的特点:**  
✅ **免费使用**:目前无需付费,你可以随时向我提问!  
✅ **知识丰富**:我的知识截止到 **2024年7月**,可以为你提供较新的信息。  
✅ **超长上下文支持**:可以处理 **128K** 长度的文本,适合分析长文档或复杂问题。  
✅ **文件阅读**:支持上传 **PDF、Word、Excel、PPT、TXT** 等文件,并从中提取信息进行分析。  
✅ **多语言能力**:可以用中文、英文等多种语言交流,帮助你翻译或学习外语。  
✅ **编程助手**:能写代码、调试、优化算法,支持Python、C++、Java等多种编程语言。  ### **我能帮你做什么?**  
📖 **学习辅导**:解题思路、论文写作、知识点讲解  
💼 **工作效率**:写邮件、做PPT、总结报告  
💡 **创意灵感**:写故事、起名字、头脑风暴  
📊 **数据分析**:处理表格、绘制图表、解读数据  
🔧 **技术支持**:代码调试、算法优化、技术咨询  你可以随时向我提问,我会尽力提供最准确、有用的回答!😊 有什么我可以帮你的吗?

其中model用来指定要使用的模型名称,而model_provider用来指定模型提供者,当写入deepseek时,会自动加载langchain-deepseek的依赖包,并使用在model中指定的模型名称用来进行交互。

这里可以看到,仅仅通过两行代码,我们便可以在LangChain中顺利调用DeepSeek模型,并得到模型的响应结果。相较于使用DeepSeekAPI,使用LangChain调用模型无疑是更加简单的。同时,不仅仅是DeepSeek模型,LangChain还支持其他很多大模型,如OpenAIQwenGemini等,我们只需要在init_chat_model函数中指定不同的模型名称,就可以调用不同的模型。其工作的原理是这样的:

理解了这个基本原理,如果大家想在用LangChain进行开发时使用其他大模型如Qwen3系列,则只需要先获取到Qwen3模型的API_KEY,然后安装Tongyi Qwen的第三方依赖包,即可同样通过init_chat_model函数来初始化模型,并调用invoke方法来得到模型的响应结果。关于LangChain都支持哪些大模型以及每个模型对应的是哪个第三方依赖包,大家可以在LangChain的官方文档中找到,访问链接为:Chat models | 🦜️🔗 LangChain 

4. LangChain接入OpenAI模型

pip install langchain-openai 

from langchain.chat_models import init_chat_modelmodel = init_chat_model("gpt-4o-mini", model_provider="openai")question = "你好,请你介绍一下你自己。"result = model.invoke(question)
print(result.content)

 

你好!我是一个人工智能助手,旨在帮助用户解答问题、提供信息和支持。我可以处理各种主题的询问,比如科技、历史、文化、语言学习等。如果你有任何问题或需要帮助的地方,请随时问我! 
http://www.lryc.cn/news/575238.html

相关文章:

  • 永磁同步电机无速度算法--基于同步旋转坐标系锁相环的滑模观测器
  • PYTHON从入门到实践6-字典
  • MCP2518FD发送时有时候多发数据包问题
  • 【预告 大模型应用开发实战专栏 升级】将增加《大模型 Agent 应用实战指南》专题赋能 Agent 开发者
  • OpenGL模板缓冲:实现亮显外轮廓效果
  • C# LINQ语法
  • Python 爬虫入门:从数据爬取到转存 MySQL 数据库
  • Cookie 在 HTTP 中的作用HTTP 中的状态码
  • 北斗导航 | 基于改进奇偶矢量法的CAT I精密进近RAIM算法
  • 半导体芯闻--20250625
  • Linux离线安装jdk-11
  • AudioTrack使用
  • Kylin Linux Advanced Server V10 离线安装 Prometheus + Grafana + node_exporter指南
  • 【网站内容安全检测】之1:获取网站所有链接sitemap数据
  • Sortablejs动态同类型穿插
  • MySQL之视图深度解析
  • 灰度发布怎么保证数据库一致的
  • Windows10中设置多个虚拟IP方法
  • Swagger 在 Spring Boot 中的详细使用指南
  • PDF处理控件Spire.PDF系列教程:Python中快速提取PDF文本、表格、图像及文档信息
  • Python 数据分析与可视化 Day 7 - 可视化整合报告实战
  • 视频中的开放世界目标计数
  • gitbash中执行命令巨慢
  • 淘宝API安全合规指南:避免数据泄露与封禁
  • AI助教来袭:用n8n和Gemini搭建英语作文自动批阅与学情分析系统
  • 【网站内容安全检测】之2:从网站所有URL页面中提取所有外部及内部域名信息
  • request这个包中,get 这个方法里传入的是params ,post这个方法里传入的是data 和 json。这个区别是什么?
  • 每日AI资讯速递 | 2025-06-25
  • 深入理解 Spring 框架的 Bean 管理与 IOC​
  • 车牌识别与标注:基于百度OCR与OpenCV的实现(一)