百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

LangGraph集成DeepSeek实现AI对话

wuantov 2025-08-06 23:31 8 浏览

本文介绍如何使用AI开源框架 LangGraph,集成调用DeepSeek大模型,实现AI对话功能,并给出Python示例代码。

一、LangGrap是什么

LangGrap:LangGrap是一个用于构建可控代理的低级编排框架。langchain 提供集成和可组合组件来简化 LLM 应用程序开发,而 LangGraph 库则支持代理编排,提供可定制的架构、长期内存和人机协同功能,以可靠地处理复杂任务。LangGraph 专为希望构建功能强大、适应性强的 AI 代理的开发人员而构建。虽然 LangGraph 可以独立使用,但它也可以与任何 LangChain 产品无缝集成,为开发人员提供一整套用于构建代理的工具。

二、前提条件

  1. Python运行环境安装。建议使用Python3.10以上版本,本示例使用了 Python 3.12.9版本。
  2. Python开发工具安装。本人是vue\Java\python多种语言开发,所以使用了 IntelliJ IDEA开发工具。读者可以根据个人习惯选择合适的Python开发工具,比如:PyCharm、VS Code。

3.注册DeepSeek,获得api_key。访问deepseek的AI开放平台完成注册:https://platform.deepseek.com。

三、代码实现

创建python工程

首先,通过开发工具创建一个python工程。这一步很简单,不再描述。

接着,激活虚拟环境。在项目根目录下,并通过以下命令创建并激活虚拟环境:

python -m venv venv #有的环境下命令是python3或者py

.\venv\Scripts\activate #windows下的激活命令

注意:如果是通过IDEA工具创建的Python工程,默认会创建并激活venv虚拟环境,就不再需要手动创建了。

pip安装依赖包

本示例使用LangGraph和DeepSeek,所以需要先安装这两个依赖包。

在虚拟环境命令窗口执行:

pip install -U langgraph

pip install -U langchain-deepseek

开发python代码

通过Python开发工具,创建一个python文件,命名为langgraph-deepseek.py。源代码如下:

from typing import Annotated
from langchain_deepseek import ChatDeepSeek
from typing_extensions import TypedDict

from langgraph.graph import StateGraph
from langgraph.graph.message import add_messages

class State(TypedDict):
messages: Annotated[list, add_messages]

# 初始化状态图
graph_builder = StateGraph(State)

# 初始化 DeepSeek 大模型客户端
llm = ChatDeepSeek(
model="deepseek-chat", # 指定 DeepSeek 的模型名称
api_key="sk-e508ba61639640848060a1a2c1ee7b17" # 替换为您自己的 DeepSeek API 密钥
)

def chatbot(state: State):
# 调用 DeepSeek 大模型生成回复
return {"messages": [llm.invoke(state["messages"])]}

# 添加节点到状态图
graph_builder.add_node("chatbot", chatbot)
graph_builder.set_entry_point("chatbot") # 设置入口点
graph_builder.set_finish_point("chatbot") # 设置结束点

# 编译状态图
graph = graph_builder.compile()

def stream_graph_updates(user_input: str):
# 构造对话历史,包含系统提示词和用户输入
messages = [
{"role": "system", "content": "你是一个有创意的助手,擅长根据用户问题提供有趣且相关的内容。输出内容长度不超过100个字。"},
{"role": "user", "content": user_input},
]

# 流式输出模型生成的回复
for event in graph.stream({"messages": messages}):
for value in event.values():
print("Assistant:", value["messages"][-1].content)

while True:
try:
# 获取用户输入
user_input = input("User: ")
if user_input.lower() in ["quit", "exit", "q"]:
print("Goodbye!")
break

# 调用流式更新函数
stream_graph_updates(user_input)
except Exception as e:
# 捕获异常并提供默认输入
print("发生错误,尝试默认问题...")
user_input = "What do you know about LangGraph?"
print("User: " + user_input)
stream_graph_updates(user_input)
break

四、测试运行

运行该python文件,进行AI对话:

相关推荐

UV 工具深度解析与实践指南

一个工具可以替代pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv等一、工具概述1.1核心定位UV是由Rust编写的新一代Python生态...

MCP 官方文档:开发你自己的MCP —— MCP 天气服务

一、MCP简介MCP是一个开放协议,它为应用程序向LLM提供上下文的方式进行了标准化。你可以将MCP想象成AI应用程序的USB-C接口。就像USB-C为设备连接各种外设和配件提...

一文使你彻底学会FastAPI

什么是API?想象一下,你在一家餐馆,你想点一些食物。为了得到你想要的食物,你和服务员交谈,告诉他们你的订单。然后,服务员将您的订单带到厨房,厨师会根据您的要求准备食物。最后,服务员把你的食物带回...

手把手教你进行Python虚拟环境配置

/1前言/咱们今天就来说一下Python的虚拟环境,可能有的小伙伴会疑惑,Python的虚拟环境有什么用呢?接下来我们一起来探讨一下。/2虚拟环境的作用/咱们今天就来说一下Python的虚拟环...

LangGraph集成DeepSeek实现AI对话

本文介绍如何使用AI开源框架LangGraph,集成调用DeepSeek大模型,实现AI对话功能,并给出Python示例代码。一、LangGrap是什么LangGrap:LangGrap是一个用于构...

一文带你掌握Python自带venv虚拟环境

前边几篇文章,我们介绍了如何使用conda来管理python的虚拟环境。这时可能有人会有疑问,既然这个功能这么有用,那有官方提供的解决方案吗?其实是有的,在python3.3版本及以后,...

Pytorch详细安装过程

1、安装anaconda官网(https://www.anaconda.com/products/distribution#Downloads)下载,使用管理员身份运行(不使用似乎也没事)这里选择Ju...

Python简介与开发环境搭建详细教程

1.1Python简介与开发环境搭建详细教程一、Python语言简介1.Python的核心特点2.Python的应用领域表1.1Python主要应用领域领域典型应用常用库Web开发网站后端D...

Python开发中的虚拟环境管理

Python开发中,虚拟环境管理帮助隔离项目依赖,避免不同项目之间的依赖冲突。虚拟环境的作用隔离依赖:不同项目可能需要不同版本的库,虚拟环境可以为每个项目创建独立的环境。避免全局污染:全局安装的库可...

Python项目创建全流程指南

以下是创建Python项目的超详细步骤指南,涵盖从环境配置到项目部署的全流程:一、环境准备安装PythonO官网下载:访问python.org下载最新稳定版O验证安装:终端输入pyth...

LangChain开发MCP Server和MCP Client

本文介绍了如何通过LangChain实现MCP调用。通过模拟一个简单的算术计算器,基于MCPServer运行,并使用MCPClient进行调用。最终,通过集成DeepSeek大...

怎么给虚拟环境安装pdfplumber

1.找到虚拟环境激活脚本位置你的虚拟环境在C:\Users\shiqi\PycharmProjects\pythonProject2\.venv路径下,激活脚本Activate.ps1(Pow...

Python调试器实现断点系统

在软件开发过程中,调试是不可或缺的重要环节。断点系统作为调试器的核心功能,允许开发者在程序执行的特定位置暂停程序运行,检查变量状态、分析程序流程,从而快速定位和解决问题。断点系统原理断点系统的实现基于...

Python从放弃到入门:公众号历史文章爬取为例谈快速学习技能

这篇文章不谈江流所专研的营销与运营,而聊一聊技能学习之路,聊一聊Python这门最简单的编程语言该如何学习,我完成的第一个Python项目,将任意公众号的所有历史文章导出成PDF电子书。或许我这个Py...

能跑源码,还提供数据集:这里有一个入门企业级验证码识别项目

机器之心专栏作者:kerlomz网上关于验证码识别的开源项目众多,但大多是学术型文章或者仅仅是一个测试demo,那么企业级的验证码识别究竟是怎样的呢?1.前言网上关于验证么识别的开源项目众多,但大...