README
🚀 LLM代理的MCP服务器
MCP服务器是我们解决方案的核心所在。它为LLM Chat和Gitlab Agent服务提供了与MCP服务器所在基础设施进行交互的能力。
✨ 主要特性
在MCP服务器端,实现了与以下对象的交互:
- 数据库:所有支持
sqlalchemy驱动的数据库。 - 文件存储:如S3、SMB等文件存储系统。
- Kafka:消息队列系统。
- 网络接口:支持与各类Web接口进行交互。
对于文件存储,支持以下数据格式:
- 文本格式:CSV、TSV。
- 标记语言:JSON、XML。
- 列式存储:Parquet。
针对数据库的主要操作包括:
- 可用性检查:验证数据库是否可正常访问。
- 表结构检查:确认指定的模式和表是否存在。
- 表结构获取:获取表的DDL(数据定义语言)。
- 数据样本获取:获取表数据样本以检查结构。
针对存储系统的主要操作包括:
- 存储可用性检查:验证存储系统是否可正常访问。
- 文件和目录检查:确认目录和文件是否存在。
- 文件读取:读取文件或其部分内容(适用于文本格式)。
- Parquet文件模式获取:获取Parquet文件的模式信息。
📦 安装指南
我们的项目支持容器化部署,并提供了用于构建镜像的Dockerfile。
要使服务正常运行,需要配置以下环境变量:
HTTP_PROXY:代理服务器地址,适用于无法直接访问互联网的环境。HTTPS_PROXY:HTTPS请求的代理服务器地址,同样适用于无直接互联网访问的环境。GITLAB_URL:Gitlab服务器的API访问地址。GITLAB_TOKEN:具有读写权限的有效Gitlab API令牌。PROJECT_PATH:用于创建分支的项目路径。AIRFLOW_URL:Apache Airflow服务器的地址。AIRFLOW_USER:具有Airflow服务器REST API访问权限的用户。AIRFLOW_PASSWORD:用户的密码。
构建镜像时,需指定所有必要的环境变量并启动构建过程:
$ git clone https://github.com/AnatoliyAksenov/chat-app-backend.git
$ cd chat-app-backend
$ docker build -t chat-app-backend:0.0.1 --build-arg HTTPS_PROXY=http://10.0.0.7:3128 \
--build-arg LDAP_SERVER=10.0.0.100 \
--build-arg LDAP_SERVER=1389 \
--build-arg POSTGRESQL_URL=postgres://10.0.0.7:5432/chat .
此外,我们还为测试环境配置了通过CI/CD进行应用程序的构建和部署。
🔧 技术细节
架构概述
此架构信息复制自Gitlab代理仓库。
代理主要由两个模块组成:
- LLM Chat:用户交互的前端界面。
- LLM Gitlab Agent:负责与Gitlab和其他服务交互的后端服务。
同时,服务的正常运行依赖于MCP服务器,该服务器提供了与数据库和存储系统交互的工具集。
数据加载流程
新的数据加载管道创建始于聊天界面。用户在与代理交互过程中,提供创建新数据加载任务所需的所有信息。聊天代理收集完必要数据后,会在Gitlab项目中创建一个issue,该issue包含了创建管道所需的全部信息。
Gitlab在issue创建后,会触发一个Webhook通知LLM Gitlab Agent开始处理该issue。Agent会在指定的Gitlab项目中创建一个新分支,并将生成的代码和文档推送到该分支,同时创建一个Merge Request,随后完成其任务。
当Merge Request被接受后,CI/CD流程会将更改部署到Apache Airflow中。
📚 详细文档
相关项目链接
- MCP服务器:https://github.com/AnatoliyAksenov/chat-app-mcp
- LLM Chat后端:https://github.com/AnatoliyAksenov/chat-app-backend
- LLM Chat前端:https://github.com/AnatoliyAksenov/chat-app-frontend
- Gitlab代理:https://github.com/AnatoliyAksenov/gitlab-agent
此外,我们还准备了一个已部署的测试环境。
微信扫一扫