每个人都见过聊天机器人,有些令人印象深刻,有些则令人烦恼。然而,如果你能创建一个真正智能、组织良好且易于与你自己的应用程序集成的聊天机器人呢?

本文将使用两个强大的工具从零开始构建一个聊天机器人:

  • LangGraph 除了大型语言模型(LLMs)之外,还能促进结构化、多步骤工作流的管理。
  • Django,一个可扩展且简洁的 Web 平台,可以用来将聊天机器人暴露为 API。

我们将从一个简单的设置开始,包括使用 Pipenv 安装依赖项和克隆 GitHub 仓库。然后,我们将使用 LangGraph 定义聊天机器人的逻辑,围绕它构建一个由 Django 提供支持的 API,并连接一个基本的前端与其通信。

无论你是想了解 LangGraph 如何与真实后端配合使用,还是想搭建一个简单的聊天机器人,你都来对地方了。

克隆并设置项目

让我们首先克隆项目并设置环境。请确保您的系统上已安装 Python 3.12pipenv。如果未安装,可以使用以下命令安装 pipenv:

pip install pipenv

现在,克隆仓库并进入项目文件夹:

git clone https://github.com/Badribn0612/chatbot_django_langgraph.gitcd chatbot_django_langgraph

现在让我们使用 pipenv 安装所有依赖项。

pipenv install

注意:如果您收到错误提示系统中没有 Python 3.12,请使用以下命令:

pipenv --python path/to/pythonpipenv install

要了解您的 Python 路径,可以使用以下命令:

which python (Linux 和 Windows)which python3 (Mac)

要激活此环境,请使用以下命令:

pipenv shell

现在,我们的要求已设置完毕,让我们设置环境变量。使用以下命令创建 .env 文件。

touch .env

将您的 API 密钥添加到 .env 文件中:

  • GEMINI API KEY:Google Gemini AI API 密钥用于身份验证和连接到 Google Gemini AI 服务,从而访问用于自然语言处理、图像创建和其他 AI 驱动功能的复杂 AI 模型。

    # Google Gemini AIGOOGLE_API_KEY=your_google_api_key_here
    
  • GROQ API KEY:此密钥授予对 Groq 高性能 AI 硬件和软件的访问权限,便于使用 Llama 等开源 LLM。

    # GroqGROQ_API_KEY=your_groq_api_key_here
    
  • TAVILY API KEY:通过连接到 Tavily 的搜索平台,此密钥可以集成搜索功能,检索搜索结果,并通过其 API 访问来自多个数据源的见解。

    # Tavily SearchTAVILY_API_KEY=your_tavily_api_key_here
    

从 Google AI Studio 生成 Google API 密钥,从 Groq Console 生成 Groq API 密钥,并从 Tavily Home 获取您的 Tavily 密钥。

现在设置已完成,让我们运行以下命令(请确保您已激活环境):

python manage.py migratepython manage.py runserver

这应该会启动服务器。

点击应用程序运行的链接:http://127.0.0.1:8000/

设计聊天机器人逻辑

现在,让我们深入探讨聊天机器人逻辑的设计。您可能会问,为什么选择 LangGraph?我选择 LangGraph 是因为它为您提供了构建针对您用例量身定制的复杂工作流的灵活性。把它想象成将多个函数组合成一个真正适合您应用程序的流程。下面,让我们讨论核心逻辑。完整的代码可在 https://github.com/Badribn0612/chatbot_django_langgraph 上找到。

1. 状态定义

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

这个状态 Schema 负责聊天机器人。它将主要跟踪消息历史记录,如果您的图在循环中;否则,它将输入消息历史记录,并将 LLM 的响应附加到以前的历史记录中。

2. 初始化 LangGraph

graph_builder = StateGraph(State)

上述代码行将初始化图。此 stategraph 实例负责维护聊天机器人的流程(对话流程)。

3. 带回退功能的聊天模型

llm_with_fallbacks = init_chat_model("google_genai:gemini-2.0-flash").with_fallbacks(    [init_chat_model("groq:llama-3.3-70b-versatile")])

这基本上会将 Gemini 2.0 Flash 作为主要 LLM,将 Llama 3.3 70B 作为回退。如果 Google 的服务器过载或 API 达到速率限制,它将开始使用 Llama 3.3 70B。

4. 工具集成

tool = TavilySearch(max_results=2)llm_with_tools = llm_with_fallbacks.bind_tools([tool])

我们还在 LLM 中添加了搜索工具。当 LLM 感觉它缺乏查询知识时,将使用此工具。它将基本上使用该工具搜索信息,检索相关信息,并根据相同的信息响应查询。

5. 聊天机器人节点逻辑

def chatbot(state: State):    return {"messages": [llm_with_tools.invoke(state["messages"])]}

这是负责调用 LLM 并获取响应的函数。这正是我所说的。使用 LangGraph,您可以构建一个由多个此类函数组成的图。您可以分支、合并,甚至并行运行函数(在 LangGraph 中称为节点)。是的,我差点忘了,您甚至可以在图中创建循环。这就是 LangGraph 带来的灵活性。

6. ToolNode 和条件流

tool_node = ToolNode(tools=[tool])graph_builder.add_conditional_edges("chatbot", tools_condition)graph_builder.add_edge("tools", "chatbot")

我们将为该工具创建一个节点,这样每当聊天机器人发现需要使用它时,它就可以简单地调用该工具节点并获取相关信息。

7. 图的入口和出口

graph_builder.add_edge(START, "chatbot")graph = graph_builder.compile()from IPython.display import Image, displaydisplay(Image(graph.get_graph().draw_mermaid_png()))

上述代码给出了期望的可视化图。

此 LangGraph 设置允许您构建一个结构化的聊天机器人,该机器人可以处理对话,在需要时调用网络搜索等工具,并在一个模型失败时回退到替代模型。它模块化,易于扩展。现在 LangGraph 部分已完成,让我们跳到如何使用 Django 为我们的聊天机器人创建 API。

使用 Django 构建 API

如果您是 Django 新手,可以使用 https://docs.djangoproject.com/en/5.0/intro/tutorial01/ 学习如何制作应用程序。对于本次任务,我们已经建立了:

  • 项目: djangoproj
  • 应用: djangoapp

步骤1:应用配置

djangoapp/apps.py 中,我们定义应用配置,以便 Django 可以识别它:

from django.apps import AppConfigclass DjangoappConfig(AppConfig):    default_auto_field = "django.db.models.BigAutoField"    name = "djangoapp"

现在在 djangoproj/settings.py 中注册应用:

INSTALLED_APPS = [    # default Django apps...    "djangoapp",]

步骤2:创建聊天机器人 API

djangoapp/views.py 中,我们定义一个简单的 API 端点来处理 POST 请求:

from django.http import JsonResponsefrom django.views.decorators.csrf import csrf_exemptimport jsonfrom chatbot import get_chatbot_response@csrf_exemptdef chatbot_api(request):    if request.method == "POST":        try:            data = json.loads(request.body)            messages = data.get("messages", [])            user_query = data.get("query", "")            messages.append({"role": "user", "content": user_query})            response = get_chatbot_response(messages)            serialized_messages = [serialize_message(msg) for msg in response["messages"]]            return JsonResponse({"messages": serialized_messages})        except Exception as e:            return JsonResponse({"error": str(e)}, status=500)    return JsonResponse({"error": "POST request required"}, status=400)

此视图接受用户输入,将其传递给 LangGraph 驱动的聊天机器人,并返回响应。

@csrf_exempt 用于测试/演示目的,以允许外部 POST 请求。

步骤3:将 API 挂接到 URL

djangoproj/urls.py 中,将视图连接到端点:

from django.urls import pathfrom djangoapp.views import chatbot_api, chat_interfaceurlpatterns = [    path('', chat_interface, name='chat_interface'),    path('api/chatbot/', chatbot_api, name='chatbot_api'),]

现在,向 /api/chatbot/ 发送 POST 请求将触发聊天机器人并返回 JSON 响应。

步骤4:提供基本聊天 UI

为了显示一个简单的界面,将此添加到 djangoapp/views.py

from django.shortcuts import renderdef chat_interface(request):    return render(request, 'index.html')

此视图渲染 index.html,一个基本的聊天界面。

djangoproj/settings.py 中,告诉 Django 在哪里查找模板:

TEMPLATES = [    {        "BACKEND": "django.template.backends.django.DjangoTemplates",        "DIRS": [BASE_DIR / "templates"],        # ...    },]

我们已经使用 Django 将我们的 LangGraph 聊天机器人转换为一个功能性 API,只需几行代码,甚至还包含了一个用于与其交互的基本用户界面。这种安排简洁、模块化且易于扩展,非常适合真实项目和演示。

以下是聊天机器人的工作演示:

以下是一些您可以在此应用程序基础上构建的功能:

  • 设置系统提示和代理角色以指导行为和响应。
  • 创建多个专业代理和一个路由代理,根据用户输入委派任务。
  • 插入 RAG (检索增强生成) 工具以引入您自己的数据并丰富响应。
  • 将对话历史记录存储在数据库(如 PostgreSQL)中,并与用户会话关联,以实现连续性和分析。
  • 实施智能消息窗口化或摘要以优雅地处理 token 限制。
  • 使用提示模板或 Guardrails AINeMo 等工具进行输出验证和安全过滤。
  • 添加对处理图像或文件的支持,使用 Gemini 2.5 proGPT-4.1 等功能强大的模型。

总结

大功告成!我们刚刚使用 LangGraphDjango 从零开始构建了一个功能齐全的聊天机器人,包括简洁的 API、工具集成、回退 LLM 等

最棒的部分是什么?它模块化且超级易于扩展。无论您是想为自己的产品构建智能助手,尝试多代理系统,还是只想亲自动手使用 LangGraph,这个设置都为您提供了一个坚实的起点。您还可以探索更多功能,从添加图像输入到插入您自己的知识库。所以,尽管去修改它、破坏它、在其之上构建。可能性是无限的。期待看到您能构建出什么!

想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2025 年 AI 大模型全套学习资料已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享

👇👇扫码免费领取全部内容👇👇

一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势

想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI

1. 100+本大模型方向电子书

在这里插入图片描述

2. 26 份行业研究报告:覆盖多领域实践与趋势

报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:

  • 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
  • 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
  • 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
  • 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。

3. 600+套技术大会 PPT:听行业大咖讲实战

PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:

在这里插入图片描述

  • 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
  • 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
  • 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
  • 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。

二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走

想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!

1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位

面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析

2. 102 道 AI 大模型真题:直击大模型核心考点

针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:

3. 97 道 LLMs 真题:聚焦大型语言模型高频问题

专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:


三、路线必明: AI 大模型学习路线图,1 张图理清核心内容

刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图」直接帮你划重点,不用再盲目摸索!

在这里插入图片描述

路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。

img

L1阶段:启航篇丨极速破界AI新时代

L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。

img

L2阶段:攻坚篇丨RAG开发实战工坊

L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

img

L3阶段:跃迁篇丨Agent智能体架构设计

L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。

img

L4阶段:精进篇丨模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

img

L5阶段:专题集丨特训篇 【录播课】

img
四、资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇

2025 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐