Skip to content

CorgiBoyG/ai-mcp-knowledge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI MCP Knowledge

基于 Spring AI 和 MCP (Model Context Protocol) 的智能知识库系统,支持文档上传、Git 仓库分析和向量检索。

项目简介

AI MCP Knowledge 是一个基于 MCP 协议的知识库管理系统,集成了 Spring AI、PgVector 向量数据库、OpenAI 和 Ollama 等 AI 能力,提供文档解析、向量化存储和智能检索功能。

技术栈

  • 框架: Spring Boot 3.4.3
  • AI 框架: Spring AI 1.0.0-M6
  • 向量数据库: PgVector (PostgreSQL)
  • 缓存: Redis (Redisson)
  • AI 模型: OpenAI / Ollama
  • 文档解析: Apache Tika
  • 中文分词: Jieba
  • Git 操作: JGit
  • 构建工具: Maven 3.x
  • Java 版本: JDK 17

项目结构

ai-mcp-knowledge/
├── ai-mcp-knowledge-app/          # 主应用模块
│   ├── src/main/java/             # Java 源代码
│   ├── src/main/resources/        # 配置文件
│   └── pom.xml                    # Maven 配置
├── ai-mcp-knowledge-trigger/      # HTTP 接口模块
│   ├── src/main/java/             # Controller 层
│   └── pom.xml                    # Maven 配置
├── docs/                          # 文档和运维配置
│   ├── dev-ops/                   # Docker 和部署配置
│   └── qianduan/                  # 前端页面
└── pom.xml                        # 父 POM 配置

核心功能

1. 文档上传与解析

  • 支持多种文档格式(PDF、Word、TXT、Markdown 等)
  • 使用 Apache Tika 进行文档内容提取
  • 自动文本分块和向量化

2. Git 仓库分析

  • 支持从 Git 仓库拉取代码并解析
  • 自动过滤不需要的文件(.git、target、build 等)
  • 批量处理仓库文件并生成向量

3. 向量存储与检索

  • 使用 PgVector 存储文档向量
  • 支持多知识库标签管理
  • 基于 Redis 的知识库元数据管理

4. MCP 协议支持

  • 集成 Spring AI MCP Server 和 Client
  • 支持 MCP 协议的知识库交互

快速开始

环境要求

  • JDK 17+
  • Maven 3.6+
  • PostgreSQL (支持 pgvector 扩展)
  • Redis 6.0+
  • (可选) Ollama 本地部署

配置说明

  1. 数据库配置 (application-dev.yml):
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/your_database
    username: your_username
    password: your_password
  1. Redis 配置:
spring:
  data:
    redis:
      host: localhost
      port: 6379
  1. OpenAI 配置 (可选):
spring:
  ai:
    openai:
      api-key: your-api-key
  1. Ollama 配置 (可选):
spring:
  ai:
    ollama:
      base-url: http://localhost:11434

构建与运行

# 编译项目
mvn clean package -DskipTests

# 运行应用
cd ai-mcp-knowledge-app
java -jar target/ai-mcp-knowledge-app.jar

Docker 部署

项目提供了 Docker Compose 配置文件,位于 docs/dev-ops/ 目录:

cd docs/dev-ops
docker-compose -f docker-compose-environment.yml up -d

API 接口

1. 查询知识库列表

GET /api/v1/rag/query_rag_tag_list

2. 文件上传

POST /api/v1/rag/file/upload
Content-Type: multipart/form-data

参数:
- ragTag: 知识库标签
- file: 文件列表

3. Git 仓库分析

POST /api/v1/rag/analyze_git_repository

参数:
- repoUrl: Git 仓库地址
- userName: 用户名
- token: 访问令牌

特性说明

  • 批量处理: 支持批量上传文档,自动分批处理避免内存溢出
  • 错误处理: 完善的异常处理和日志记录
  • 资源清理: 自动清理临时文件和 Git 克隆目录
  • 中文支持: 集成 Jieba 分词,优化中文文档处理
  • 多模型支持: 同时支持 OpenAI 和 Ollama 模型

开发说明

模块说明

  • ai-mcp-knowledge-app: 核心应用模块,包含业务逻辑和配置
  • ai-mcp-knowledge-trigger: HTTP 接口模块,提供 RESTful API

测试

# 运行测试
mvn test

# 跳过测试构建
mvn package -DskipTests

注意事项

  1. 确保 PostgreSQL 已安装并启用 pgvector 扩展
  2. 大文件上传时会自动分批处理,单文件最多处理 10000 个文档块
  3. Git 仓库克隆需要提供有效的认证信息
  4. 建议在生产环境中配置适当的 JVM 参数

许可证

Apache License 2.0

作者

Daniel G

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published