聊天机器人工具

一个使用LangChain和MCP构建的现代聊天机器人,集成了Web搜索和RAG(检索增强生成)工具,具有Streamlit UI和FastAPI后端。

  • by krishnamoorthy-v
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 krishnamoorthy-v/chatbot

使用说明

🤖 具有更好UI的聊天机器人

一个现代聊天机器人,使用 LangChain 和 主控程序 集成以下工具 网络搜索 和 RAG(检索增强生成).
它的特点是 流线型UI 对于交互,a FastAPI后端 用于编排和强大的内存+持久层。


🚀 核心功能

  • 工具调用(Web搜索) –在需要时获取实时信息
  • RAG(检索增强生成) –使用内部知识为响应奠定基础
  • 基于Redis的临时内存 –快速的内存对话上下文
  • 批量持久化到MongoDB –优化了长期存储
  • 仪表盘 -显示了基于模型和用户的令牌使用成本消耗

🏗️ 架构概述

flowchart TD
    User[User] --> UI[Streamlit UI]
    UI --> Backend[FastAPI Backend]
    Backend --> Manager[Conversation Manager]
    Manager -->|Tool Call| WebSearch[Web Search]
    Manager -->|RAG| VectorStore[RAG Vector Store]
    Manager -->|Memory| Redis[Redis Temporary Memory]
    Manager --> LLM[LLM Response]
    LLM --> RedisAppend[Redis Append Message]
    RedisAppend -->|Every 5 min| MongoDB[MongoDB Bulk Write]

速率限制

  • 通过LangChain应用内存速率限制器来调节传出请求。这种节流机制通过确保请求吞吐量保持在提供者的速率限制内,降低了HTTP 429(太多请求)错误的可能性。
    flowchart TD
        A[Incoming Requests] --> B[Rate Limiter]
        B --> C[FIFO Queue]
        C --> D[Execute Request]
        D --> E[LLM/API Response]