Documentation Management System

Documentation Management System

🚀 DocMCP 文档

DocMCP 是一个用于对大型语言模型(LLMs)的最新文档进行索引的系统,它支持通过 PostgreSQL 和 pgVector 集成到 AI IDE 中,旨在提供高效的文档存储、处理和检索功能。

🚀 快速开始

安装依赖

使用以下命令安装项目所需的依赖:

npm install

启动应用

运行以下命令启动 DocMCP 系统:

node src/main.ts

✨ 主要特性

DocMCP 提供以下核心功能:

  1. 文档输入

    • 用户通过 add_documentation MCP 工具提供一个 URL。
    • 系统创建一个状态为“待处理”的作业记录。
    • 作业被分配标签以便分类和过滤。
  2. 网络爬取(CrawlerService)

    • 爬虫遵守 robots.txt 规则。
    • 按指定的最大深度跟踪链接。
    • 捕获 HTML 内容和元数据。
    • 创建与父作业关联的文档记录。
  3. 文档处理(DocumentProcessorService)

    • 清理 HTML 并转换为结构化 Markdown。
    • 提取元数据(包信息、版本、文档类型)。
    • 建立文档之间的父子关系。
    • 更新作业进度。
  4. 分块与嵌入生成(ChunkService)

    • 将文档分割为语义块以提高检索效率。
    • 使用 AWS Bedrock 生成向量嵌入。
    • 将嵌入存储在 PostgreSQL 中,使用 pgVector 扩展。
    • 保留分块元数据和文档引用。
  5. 作业完成(JobService)

    • 更新作业状态为“已完成”。
    • 计算并存储文档统计信息。
    • 提供文档查询功能。
  6. 查询与检索

    • 用户通过 query_documentation MCP 工具发送查询。
    • 系统将查询转换为向量嵌入。
    • 执行相似性搜索以找到相关块。
    • 返回格式化结果,包括来源信息。
    • 支持按标签、状态和元数据进行过滤。

📦 安装指南

安装依赖

使用以下命令安装项目所需的依赖:

npm install

启动应用

运行以下命令启动 DocMCP 系统:

node src/main.ts

💻 使用示例

基础用法

网络爬取服务(crawler.service.ts)

export class CrawlerService {
async crawlUrl(url: string): Promise<Document> {
// 实现爬虫逻辑
}
}

文档处理服务(document-processor.service.ts)

export class DocumentProcessorService {
async processDocument(document: Document): Promise<ProcessedDocument> {
// 实现文档处理逻辑
}
}

📚 详细文档

项目结构

docmcp/
├── prisma/                  # 数据库模式和迁移
│   └── schema.prisma        # Prisma 模型定义和数据库配置
├── src/
│   ├── config/              # 应用程序配置
│   │   └── database.ts      # 数据库连接设置
│   ├── generated/           # 生成代码(Prisma 客户端)
│   ├── services/            # 核心服务模块
│   │   ├── crawler.service.ts     # 网站爬取功能
│   │   ├── document.service.ts    # 文档管理
│   │   ├── document-processor.service.ts # 文档处理和转换
│   │   ├── job.service.ts         # 异步作业管理
│   │   ├── chunk.service.ts       # 文档分块和向量操作
│   │   └── mcp-tools/       # MCP 集成工具
│   │       ├── add-documentation.tool.ts    # 添加新文档的工具
│   │       ├── get-job-status.tool.ts       # 检查作业状态
│   │       ├── list-documentation.tool.ts   # 列出可用文档
│   │       ├── query-documentation.tool.ts  # 查询文档
│   │       ├── sample.tool.ts               # 示例工具实现
│   │       └── index.ts                     # 工具注册和导出
│   ├── types/               # TypeScript 类型定义
│   │   └── mcp.ts           # MCP 工具接口定义
│   ├── utils/               # 工具函数
│   │   ├── logger.ts        # 日志实用工具
│   │   └── others.ts        # 其他功能
│   └── main.ts              # 应用程序入口点
├── package.json             # 依赖管理文件
└── README.md                # 项目说明文档

🔚 总结

DocMCP 提供了一个高效且灵活的文档管理解决方案,适用于需要大规模文档处理和检索的场景。通过结合网络爬取、文档处理和向量嵌入技术,系统能够满足多种应用场景的需求。

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-23 06:57

相似服务问题