文档聊天应用

一个基于Django的聊天应用,支持文档上传并与AI代理进行交互,利用文档内容回答问题。

  • by Majd-Assaf
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Majd-Assaf/mcp_chat

使用说明

MCP聊天应用程序

这是一个简单的基于Django的聊天应用程序,演示了如何与符合多功能协议(MCP)的代理集成。该应用程序允许用户上传文档,然后与人工智能代理聊天,人工智能代理可以使用这些文档的内容来回答问题。

特性

  • 文档上传(文本和PDF)。
  • 从上传的文档中提取文本。
  • 一个简单的聊天界面,用于与AI代理进行交互。
  • 一个类似MCP的清单,将上传的文档作为资源公开。

项目结构

该项目组织如下:

mcp_chat/
├── docker-compose.yml
└── mcp_app/
    ├── Dockerfile
    ├── entrypoint.sh
    ├── manage.py
    ├── requirements.txt
    ├── chatapp/
    │   ├── migrations/
    │   ├── static/
    │   ├── templates/
    │   ├── __init__.py
    │   ├── admin.py
    │   ├── apps.py
    │   ├── models.py
    │   ├── tests.py
    │   ├── urls.py
    │   └── views.py
    └── mcp_app/
        ├── __init__.py
        ├── asgi.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py

如何跑步

该项目旨在使用Docker和Docker Compose运行。

先决条件

  • 码头工人
  • Docker Compose

运行应用程序

  1. 克隆存储库:

    git clone <repository-url>
    cd mcp_chat
    
  2. 环境变量: 应用程序使用中定义的环境变量 docker-compose.yml 配置Django设置。您可以创建 .env 项目根目录中的文件,以覆盖默认值。最重要的变量是:

    • DJANGO_SECRET_KEY:Django应用程序的密钥。
    • AI_AGENT_API_URL:您要连接的AI代理的URL。
    • AI_AGENT_API_AUTH:AI代理的认证令牌(例如。, Bearer <your-token>).
  3. 构建并运行容器:

    docker-compose up --build
    

    这将为web应用程序构建Docker映像,并启动web和数据库容器。

  4. 访问应用程序: 容器运行后,您可以在以下位置访问应用程序 http://localhost:8000.

运行管理命令

您可以使用以下命令运行Django管理命令 docker-compose exec例如,要创建超级用户:

docker-compose exec web python manage.py createsuperuser

它是如何工作的

  • 后端:后端是Django应用程序,为聊天界面提供服务,并为AI代理访问文档提供API。
  • 前端前端是一个简单的HTML/CSS/JavaScript界面,允许用户上传文档并与AI代理聊天。
  • MCP集成:应用程序在以下位置公开清单 /mcp/manifest/ 它列出了可用的文档。然后,AI代理可以使用清单中提供的URL获取这些文档的内容。
  • 数据库PostgreSQL数据库用于存储文档元数据和提取的文本。