基于 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 配置
- 支持多种文档格式(PDF、Word、TXT、Markdown 等)
- 使用 Apache Tika 进行文档内容提取
- 自动文本分块和向量化
- 支持从 Git 仓库拉取代码并解析
- 自动过滤不需要的文件(.git、target、build 等)
- 批量处理仓库文件并生成向量
- 使用 PgVector 存储文档向量
- 支持多知识库标签管理
- 基于 Redis 的知识库元数据管理
- 集成 Spring AI MCP Server 和 Client
- 支持 MCP 协议的知识库交互
- JDK 17+
- Maven 3.6+
- PostgreSQL (支持 pgvector 扩展)
- Redis 6.0+
- (可选) Ollama 本地部署
- 数据库配置 (
application-dev.yml):
spring:
datasource:
url: jdbc:postgresql://localhost:5432/your_database
username: your_username
password: your_password- Redis 配置:
spring:
data:
redis:
host: localhost
port: 6379- OpenAI 配置 (可选):
spring:
ai:
openai:
api-key: your-api-key- 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 Compose 配置文件,位于 docs/dev-ops/ 目录:
cd docs/dev-ops
docker-compose -f docker-compose-environment.yml up -dGET /api/v1/rag/query_rag_tag_list
POST /api/v1/rag/file/upload
Content-Type: multipart/form-data
参数:
- ragTag: 知识库标签
- file: 文件列表
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- 确保 PostgreSQL 已安装并启用 pgvector 扩展
- 大文件上传时会自动分批处理,单文件最多处理 10000 个文档块
- Git 仓库克隆需要提供有效的认证信息
- 建议在生产环境中配置适当的 JVM 参数
Apache License 2.0
Daniel G