# PRAGREPO **Repository Path**: raphataila/pragrepo ## Basic Information - **Project Name**: PRAGREPO - **Description**: 面向科学研究智能体的语用仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-25 - **Last Updated**: 2026-02-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 面向科研智能体的语用仓库 (Agentic Pragmatic Repository) ## 项目简介 本系统是一个面向科研智能体的语用仓库,核心目标是**承接多模态异构科研数据,将其自动转化为图谱拓扑结构**,并通过 HTTP 和 MCP 协议暴露给外部大模型。 系统聚焦两大核心科研场景: 1. **氢能专利知识图谱**:专利、技术领域、申请机构、绿色分类等 2. **AI技术图谱**:论文、作者、技术模型、数据集等 ## 核心特性 ### 🎯 多模态数据接入 - 支持 JSON、Markdown、自然语言等多种输入格式 - 自动解析并转化为标准化的 DPML 格式 - 无需手动编写 Schema 或 Cypher 脚本 ### 🧠 智能体驱动的数据处理 - 集成 Flowise 工作流进行智能解析 - 基于大模型的 Schema 自动生成 - 多模态感知与模式推断 ### 🔗 星型拓扑结构 - **数字对象 (Digital Object)**: Patent, Paper, Code, Dataset 等 - **语义标签 (Semantic Tag)**: TechDomain, Author, Technique 等 - **数据语用 (Data Pragmatic)**: 连接数字对象与语义标签的关联关系 ### 📡 双协议接口 - **REST API**: 面向 Web 应用的标准化接口 - **MCP Protocol**: 面向 AI 智能体的统一调用协议 ## 技术架构 ### 强制技术栈 - **后端语言与框架**: Python 3.10+, FastAPI - **图数据库**: Neo4j 5.x (官方 Python driver) - **向量/关系数据库**: PostgreSQL 15+ with pgvector 扩展 - **Agent 通信协议**: 官方 Model Context Protocol (MCP) Python SDK - **大语言模型调用**: Qwen (通义千问) API / 兼容 OpenAI 格式 - **代码规范**: Type Hints, Pydantic 数据校验, try-except 异常处理 ### 数据库架构 - **Neo4j**: 存储轻量级图谱拓扑 - 数字对象节点(Patent, Paper 等) - 语义标签节点(TechDomain, Author 等) - 语用关系边(BELONGS_TO, APPLIES_TECHNIQUE 等) - **PostgreSQL + pgvector**: 存储重型资产和向量 - 全文内容、摘要、描述 - 向量嵌入(用于语义搜索) - 语用节点属性 ### 外部服务集成 - **Flowise API**: 承接 PDF/文档,智能提取结构化信息 - **Qwen API**: 自然语言解析和 Schema 推断 ## 项目结构 ``` pragrepo/ ├── config/ # 配置文件 │ ├── settings.yaml # 数据库连接、API配置 │ └── logging.yaml # 日志配置 │ ├── src/ │ ├── core/ # 核心基础设施 (已保留) │ │ ├── config.py # 配置管理 │ │ ├── database.py # Neo4j & PostgreSQL 连接池 │ │ └── exceptions.py # 异常定义 │ │ │ ├── models/ # 数据模型 (待重构) │ │ ├── base.py # 基础模型 │ │ ├── patent_schema.py # 专利图谱模型 (待实现) │ │ ├── ai_tech_schema.py # AI技术图谱模型 (待实现) │ │ └── dpml.py # DPML 标准格式 (待实现) │ │ │ ├── dal/ # 数据访问层 (待重构) │ │ ├── patent_dal.py # 专利图谱 CRUD (待实现) │ │ ├── ai_tech_dal.py # AI图谱 CRUD (待实现) │ │ └── base_dal.py # 通用 DAL 基类 (待实现) │ │ │ ├── services/ # 业务逻辑层 (待重构) │ │ ├── flowise_client.py # Flowise API 调用 (待实现) │ │ ├── dpml_parser.py # DPML 解析服务 (待实现) │ │ └── agent_service.py # 智能体服务 (待实现) │ │ │ └── api/ # API接口层 (待重构) │ ├── rest/ # REST API │ │ ├── main.py # FastAPI 主应用 (待重构) │ │ ├── health_routes.py (已保留) │ │ ├── patent_routes.py (待实现) │ │ └── ai_tech_routes.py (待实现) │ │ │ └── mcp/ # MCP协议接口 │ └── server.py # MCP 服务器 (待重构) │ ├── scripts/ # 脚本工具 │ ├── db_init.py # 数据库初始化 (待实现) │ ├── run_rest_api.py # 启动 REST API (已保留) │ └── run_mcp_server.py # 启动 MCP 服务 (已保留) │ └── docs/ # 文档 (待更新) ``` ## 当前状态 ### ✅ 已完成 - [x] **数据模型层** (Stage 1) - 专利图谱模型(8种节点,11种关系) - AI技术图谱模型(Paper/Author/Technique/Dataset等) - DPML标准格式和多模态输入 - 图谱拓扑结构定义 - [x] **数据访问层** (Stage 2) - Neo4j和PostgreSQL基础DAL - 专利图谱8个查询接口 - AI技术图谱查询接口 - 向量搜索和全文检索 - [x] **业务逻辑层** (Stage 3) - Flowise API客户端 - DPML解析器(支持JSON/Markdown/自然语言) - 智能体服务(端到端数据处理) - [x] **API接口层** (Stage 4) - FastAPI主应用和路由系统 - 专利图谱REST API(8个接口) - AI技术图谱REST API(6个接口) - 数据入库API(多模态支持) - MCP协议服务器(8个工具) - [x] **数据库初始化** (Stage 5) - Neo4j约束和索引 - PostgreSQL表结构和pgvector - 种子数据导入脚本 ### 🔜 待完成 - [ ] 单元测试 - [ ] 集成测试 - [ ] 部署文档 - [ ] 性能优化 ## 数据模型设计 ### 场景1: 氢能专利知识图谱 #### 节点类型 (8种) **数字对象 (2类)**: - `Patent`: 专利 - `Entity`: 申请机构/个人 **语义标签 (6类)**: - `TechDomain`: 技术领域(3级树状结构,约60个节点) - `GreenTechCategory`: 绿色技术分类 (GT1-GT5) - `Date`: 日期 - `Province`: 省份 - `City`: 城市 - `Country`: 国家 #### 关系类型 (11种) - `FILED_ON`: Patent → Date (申请日期) - `BELONGS_TO_TECH`: Patent → TechDomain (所属技术领域) - `CATEGORIZED_AS_GREEN`: Patent → GreenTechCategory (绿色分类) - `APPLIED_BY`: Patent → Entity (申请人) - `LOCATED_IN_PROVINCE`: Entity → Province (省份) - `SUBDOMAIN_OF`: TechDomain → TechDomain (子领域) - `HAS_FAMILY`: Patent → Patent (同族专利) - 等... #### 核心查询接口 (8个) 1. 专利数量趋势查询 2. 主要申请机构查询 3. 子技术领域分布查询 4. 绿色分类分布查询 5. 地区分布查询 6. 专利法律状态分布查询 7. 专利类型分布查询 8. 同族专利数量查询 ### 场景2: AI技术图谱 #### 节点类型 **数字对象**: - `Paper`: 论文 - `Dataset`: 数据集 - `Code`: 代码(待扩展) **语义标签**: - `Author`: 作者 - `Technique`: 技术/模型 - `Tag`: 标签(多维度:task, domain, method等) #### 关系类型 - `AUTHORED_BY`: Paper → Author - `USES_DATASET`: Paper → Dataset - `APPLIES_TECHNIQUE`: Paper → Technique - `HAS_TAG`: Paper → Tag - `SHARED_AUTHOR`: Paper → Paper (共同作者) - `SIMILAR_TO`: Paper → Paper (相似论文) - `CO_OCCURS_WITH`: Technique → Technique (技术共现) ## 环境信息 ### 数据库服务器 - **服务器**: 8.130.190.63 - **系统**: Ubuntu 22.04.5 LTS - **Docker**: 28.2.2 #### PostgreSQL + pgvector - **连接**: `postgresql://postgres:dev@BDW2025@8.130.190.63:21001/vectordb` - **版本**: PostgreSQL 15.14, pgvector 0.8.1 #### Neo4j - **浏览器**: http://8.130.190.63:21002 - **Bolt**: bolt://8.130.190.63:21003 - **认证**: neo4j / dev@BDW2025 ### Flowise API - **接口**: http://8.130.104.76:21088/api/v1/prediction/c198bdc2-bcfa-4775-8c5b-6b6144996b66 - **用途**: PDF/文档智能解析,结构化信息提取 ## 开发计划 ### 阶段1: 数据模型重构 (2-3天) - [ ] 定义专利图谱 Pydantic 模型 - [ ] 定义 AI技术图谱 Pydantic 模型 - [ ] 实现 DPML 数据结构 ### 阶段2: DAL层改造 (2天) - [ ] 专利相关 CRUD 操作 - [ ] 8个预定义查询接口 - [ ] AI技术图谱 CRUD 操作 ### 阶段3: 业务逻辑层 (2-3天) - [ ] Flowise API 客户端 - [ ] 多模态输入解析服务 - [ ] DPML 转换服务 ### 阶段4: API接口层 (1-2天) - [ ] REST API 路由实现 - [ ] MCP 工具注册与调用 ## 许可证 MIT License