PDF转PostgreSQL MCP框架
一个完整的、与领域无关的框架,用于从PDF中提取高质量的文本,将其存储在可搜索的矢量数据库中,并通过模型上下文协议服务器提供人工智能辅助集成。
概述
状态:运行中 -从PDF提取到AI助手集成的完整系统。
该框架为基于PDF的内容管理提供了一个生产就绪的解决方案,并集成了人工智能:
- 文本提取:从任何PDF文档中提取干净、结构化的文本
- 语义分块:基于智能节的内容组织
- 矢量数据库:PostgreSQL+带有OpenAI嵌入的pgvector存储
- 内容分类:适用于任何内容域的可配置分类系统
- MCP服务器:为AI助手提供语义搜索的模型上下文协议服务器
- 模块化架构:所有组件的集中配置和实用程序
非常适合技术文档、研究论文、法律文件、手册以及任何基于PDF的知识管理工作流程,并集成了AI助手。
主要特点
文本提取
- 高质量提取:与传统方法相比,使用PyMuPDF4LLM进行更优的文本提取
- Markdown格式:输出带有标题、粗体文本和正确格式的结构化Markdown
- 语义分块:基于智能部门的组织
- 批处理:在一次操作中处理多个PDF
矢量数据库
- PostgreSQL+pgvector:带语义搜索的生产就绪矢量存储
- OpenAI嵌入:使用text-embedding-ada-002进行高质量的文本嵌入
- 可配置分类:用户定义的内容类型和类别
- 多源支持:官方文件、补充材料和海关说明
人工智能集成
- MCP服务器:兼容克劳德代码和克劳德桌面
- 语义搜索:具有过滤功能的矢量相似性搜索
- CRUD操作:通过AI助手创建、阅读和更新内容
- 可配置域:适应任何内容类型或行业
快速开始
1.仅文本提取
# Clone and setup extraction environment
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -r requirements.txt
# Extract document sections
python extraction/pdf_extractor.py data/sample_document.pdf2.全矢量数据库设置
看 数据库设置指南 用于完整的PostgreSQL+pgvector安装和内容加载。
# Quick version (after PostgreSQL setup):
cd database/
pip install -r requirements.txt
cp .env.example .env # Edit with your database URL and OpenAI API key
python load_content.py --sections-dir ../output/3.AI助手集成
看 MCP服务器指南 用于Claude集成设置。
# Start MCP server
cd mcp_server/
pip install -r requirements.txt
python content_server.py建筑
目录结构
pdf-to-postgresql-mcp/
├── core/ # Framework utilities
│ ├── config.py # Environment configuration
│ ├── database.py # Database utilities
│ └── openai_utils.py # AI integration
├── extraction/ # PDF processing
│ ├── pdf_extractor.py # Generic section extraction
│ └── extract-dolmenwood.py # Example implementation
├── database/ # Vector database
│ ├── schema.sql # PostgreSQL schema
│ ├── load_content.py # Content loading
│ └── README.md # Setup guide
├── mcp_server/ # AI integration
│ ├── content_server.py # MCP server
│ └── README.md # Integration guide
├── docs/ # Documentation
└── output/ # Extracted content配置
内容类型
该框架通过环境变量支持完全可配置的内容类型:
# Example configurations for different domains
CONTENT_TYPES="reference,procedure,concept,analysis,example" # Technical docs
CONTENT_TYPES="statute,regulation,case,procedure,form" # Legal docs
CONTENT_TYPES="spell,location,rule,lore,equipment" # Gaming docs环境设置
# Copy and configure environment
cp .env.example .env
# Edit .env with your settings:
DATABASE_URL="postgresql://user:pass@localhost/content_database"
OPENAI_API_KEY="your_openai_api_key"
CONTENT_DOMAIN="technical_documentation"
CONTENT_TYPES="reference,procedure,concept,guide,example"使用示例
基本文本提取
# Extract all content from a document
python extraction/pdf_extractor.py data/technical_manual.pdf
# Extract specific pages
python extraction/pdf_extractor.py data/manual.pdf --pages 15 16 17
# Batch process multiple documents
python extraction/pdf_extractor.py data/*.pdf数据库操作
# Load extracted content into database
python database/load_content.py --sections-dir output/
# Load with custom source type
python database/load_content.py --sections-dir notes/ --source-type supplementaryAI助手集成
# Start MCP server for AI integration
python mcp_server/content_server.py
# Use with Claude Code (server runs automatically)
# Or configure for Claude Desktop (see mcp_server/README.md)内容管理
该框架支持多种内容工作流:
- PDF提取:处理现有文件
- 自定义内容:添加注释和补充材料
- 人工智能集成:通过AI助手搜索和管理内容
- 版本控制:跟踪更改和更新
看 内容管理指南 了解详细的工作流程。
用例
技术文档
- API文件处理
- 用户手册数字化
- 知识库创建
- 支持文档搜索
研究与学术
- 研究论文分析
- 文献综述协助
- 引文和参考文献管理
- 学术内容组织
法律与合规
- 监管文件处理
- 法律研究援助
- 政策和程序管理
- 合规性文件
企业知识管理
- 内部文件系统
- 培训材料数字化
- 程序性知识获取
- 专家系统开发
演出
- 处理速度:每页约1-2秒用于文本提取
- 内存效率:逐步处理文档
- 数据库性能:具有可配置索引的矢量搜索
- 人工智能集成:批量嵌入生成以提高效率
文档
需求
- Python 3.8+
- PostgreSQL 12+ 带pgvector扩展
- OpenAI API密钥 用于嵌入
- 2GB+内存 用于处理大型文档
框架设计
该框架的设计遵循以下原则:
- 域不可知:适用于任何基于PDF的内容
- 模块化架构:适用于不同用例的可组合组件
- 生产就绪:强大的错误处理和性能优化
- 人工智能原生:从头开始为AI助手集成而构建
- 可扩展:易于定制和扩展以满足特定需求
贡献
该框架的设计便于扩展和定制。关键扩展点:
- 内容分类:添加自定义内容类型检测
- 提取方法:实现特定于域的提取逻辑
- 人工智能集成:用附加功能扩展MCP服务器
- 数据库模式:添加自定义元数据字段和索引
许可证
本项目按原样提供,用于教育和发展目的。请确保遵守依赖关系和内容源的相关许可证。
