成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Django和LangGraph構建一個對話式AI應用程序 原創

發布于 2025-7-24 09:06
瀏覽
0收藏

每個人都見過聊天機器人的實際應用,有些令人印象深刻,有些令人厭煩。然而,如果你可以創建一個真正智能、組織良好且易于與你自己的應用程序集成的聊天機器人,會怎樣呢?我們在本文中將使用兩個強大的工具從零開始構建一個聊天機器人:

  • 除了LLM外,LangGraph 可以幫助管理井然有序的多步驟工作流程。
  • 聊天機器人可以使用Django(一種可擴展且簡潔的Web平臺)以API的形式公開。

我們先介紹簡單的搭建,包括使用Pipenv安裝依賴項,并克隆GitHub代碼庫。然后,我們將使用LangGraph定義聊天機器人的邏輯,圍繞它構建一個基于Django的API,并連接一個基本的前端以便與其聯系。

無論你想了解LangGraph如何與實際后端協同工作,還是想構建一個簡單的聊天機器人,你都來對地方了。

快速入門:克隆并搭建項目

首先,克隆項目并搭建環境。確保你的系統上已安裝Python 3.12和Pipenv。如果沒有,可以使用以下命令安裝pipenv:

pip install pipenv

現在,克隆代碼庫并進入項目文件夾:

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

現在不妨使用Pipenv安裝所有依賴項。

pipenv install

注意:如果你收到錯誤消息,提示你的系統中沒有Python 3.12,請使用以下命令:

pipenv --python path/to/python
pipenv install

要知道Python的路徑,你可以使用以下命令:

which python (linux and windows) 
which python3 (mac)

要激活此環境,請使用以下命令:

pipenv shell

鑒于我們的需求已滿足,接下來設置環境變量。使用以下命令創建一個.env 文件。

touch .env

將你的API密鑰添加到.env 文件。

# Google Gemini AI
GOOGLE_API_KEY=your_google_api_key_here
# Groq
GROQ_API_KEY=your_groq_api_key_here
# Tavily Search
TAVILY_API_KEY=your_tavily_api_key_here

從Google AI Studio(??https://aistudio.google.com/apikey??)生成Google API密鑰,從Groq Console(https://console.groq.com/keys)生成Groq API密鑰,并從Tavily Home(https://app.tavily.com/home)獲取你的Tavily 密鑰。?

搭建完成后,運行以下命令(請確保已激活環境):

python manage.py migrate
python manage.py runserver

這應該會啟動服務器。

使用Django和LangGraph構建一個對話式AI應用程序-AI.x社區

點擊應用程序正在運行的??http://127.0.0.1:8000/??鏈接。?

使用LangGraph設計聊天機器人邏輯

現在,設計下聊天機器人邏輯。你可能想知道為什么選擇LangGraph?我選擇 LangGraph,是因為它能夠靈活地構建適合用例的復雜工作流。它如同將多個函數拼接成一個對你的應用程序真正有意義的流程。下面,我們將討論核心邏輯。完整代碼可在 Github 上找到:??https://github.com/Badribn0612/chatbot_django_langgraph.git??。?

1. 狀態定義

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

該狀態模式負責聊天機器人。如果你的Graph處于循環狀態,它將主要跟蹤消息歷史記錄;否則,它會有包含消息歷史記錄的輸入,并將LLM的響應附加到之前的歷史記錄后面。

2. 初始化LangGraph

graph_builder = StateGraph(State)

上面這行代碼將初始化狀態圖。這個狀態圖實例負責維護聊天機器人的流程(對話流)。

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作為后備模型。如果谷歌服務器過載或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. 工具節點和條件流

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, display
display(Image(graph.get_graph().draw_mermaid_png()))

使用Django和LangGraph構建一個對話式AI應用程序-AI.x社區

上述代碼給出了所需的可視化效果。

該LangGraph環境允許你構建一個結構化的聊天機器人,它可以處理對話,需要時調用網絡搜索等工具,并在某個模型失敗時后備到替代模型。它具有模塊化,易于擴展。現在 LangGraph部分已完成,不妨學習如何使用Django為我們的聊天機器人創建API。

使用Django構建API

如果你是Django新手,可以使用??本指南??學習如何創建應用程序。為此,我們已創建:?

  • 項目:djangoproj
  • 應用程序:djangoapp

第1步:應用程序配置

在djangoapp/apps.py 中,我們定義應用程序配置,以便Django能夠識別它:

from django.apps import AppConfig
class DjangoappConfig(AppConfig):
 default_auto_field = "django.db.models.BigAutoField"
 name = "djangoapp"
Now register the app inside djangoproj/settings.py:
INSTALLED_APPS = [
 # default Django apps...
 "djangoapp",
]

第2步:創建聊天機器人API

在djangoapp/views.py中,我們定義一個用于處理POST請求的簡單API端點:

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json
from chatbot import get_chatbot_response
@csrf_exempt
def 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 path
from djangoapp.views import chatbot_api, chat_interface
urlpatterns = [
 path('', chat_interface, name='chat_interface'),
 path('api/chatbot/', chatbot_api, name='chatbot_api'),
]

現在,向/api/chatbot/發送POST請求將觸發聊天機器人并返回JSON響應。

第4步:部署基本的聊天用戶界面

要顯示簡單的界面,請在djangoapp/views.py中添加以下內容:

from django.shortcuts import render
def 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,僅用幾行代碼,甚至還添加了一個用于與其交互的基本用戶界面。這種設計簡潔、模塊化且易于擴展,非常適合實際項目和演示。

以下是聊天機器人的實際演示:

使用Django和LangGraph構建一個對話式AI應用程序-AI.x社區

你可以在此基礎上構建的功能

以下是你可以在該應用程序基礎上構建的一些功能:

  • 設置系統提示和智能體角色來指導行為和響應。
  • 創建多個專用智能體和一個路由智能體,以根據用戶輸入委派任務。
  • 插入RAG工具以引入你自己的數據并豐富響應。
  • 將對話歷史記錄存儲在數據庫(比如PostgreSQL)中,并與用戶會話關聯,以實現連續性和分析。
  • 實現智能消息窗口或摘要功能,以輕松應對token限制。
  • 使用提示模板或者Guardrails AI或NeMo等工具,進行輸出驗證和安全過濾。
  • 使用Gemini 2.5 pro或GPT-4.1等功能強大的模型,添加支持圖像或文件處理的功能。

結論?

全文就是這樣!我們剛使用LangGraph和Django從零開始構建了一個功能齊全的聊天機器人,它擁有簡潔的API、工具集成、帶有后備模型的LLM 等等。最棒的是,它是模塊化的,非常易于擴展。無論你是想為自己的產品構建智能助手、嘗試多智能體系統,還是只是想試試LangGraph,本文都為你提供了一個堅實的起點。你還可以探究更多內容,比如添加圖像輸入、插入自己的知識庫。所以,請繼續嘗試,在此基礎上不斷構建。

原文標題:???Building a Conversational AI App with Django and LangGraph??,作者:Badrinarayan M

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 午夜精品影院 | 黄色a一级 | 国产在线第一页 | 成人激情在线 | 欧美专区在线观看 | 在线婷婷 | 黄色大片在线免费观看 | 亚洲香蕉视频 | 久久久三级 | 久久中文视频 | 免费成人毛片 | 黄色一级视频免费看 | 黄色三级在线观看 | 国产伦精品一区二区三区四区 | 国产美女自拍视频 | 国产不卡在线视频 | 四虎色播| 亚洲区视频 | 免费av在线网站 | 欧美综合一区二区三区 | 国产成人在线免费观看 | 91激情网| 久久精选视频 | 午夜精品久久 | 国内精品国产成人国产三级 | 在线播放亚洲 | 中文字幕黄色片 | 国产美女免费视频 | 婷婷久久五月 | 亚洲欧美成人 | 视频一二区 | 国产又猛又黄又爽 | 毛片资源 | 酒色成人网| 精品亚洲一区二区三区四区五区 | 欧美顶级黄色大片免费 | 性做久久久久久久免费看 | 性猛交xxxx富婆老太婆 | 国产精品视频网站 | 秋霞午夜鲁丝一区二区老狼 | 欧美一级在线视频 |