# 元数据核心功能模块 本模块提供元数据管理相关的核心业务逻辑,包括元数据查询、图谱分析、非结构化数据处理等功能。 ## 功能概述 元数据核心模块是整个平台的基础设施之一,负责处理和管理各类元数据,包括结构化和非结构化数据。主要提供以下功能: 1. **元数据查询**:支持多条件查询和过滤元数据 2. **图谱分析**:提供元数据亲缘关系图谱和影响关系图谱 3. **非结构化数据处理**:从文本中提取实体关系,构建知识图谱 4. **LLM服务**:利用大语言模型进行文本翻译和内容提取 ## 主要功能 ### 元数据查询功能 - **meta_list**:支持分页查询元数据列表,并可根据多种条件进行过滤 - **handle_id_unstructured**:根据ID获取非结构化数据节点 - **get_file_content**:从MinIO对象存储中获取文件内容 ### 图谱分析功能 - **meta_kinship_graph**:生成展示元数据直接关联关系的图谱数据 - **meta_impact_graph**:生成展示元数据间接影响关系的扩展图谱数据 - **parse_entity_relation**:从文本内容中自动提取实体及其关系 - **handle_txt_graph**:处理文本图谱的创建 ### 非结构化数据处理 - **text_resource_solve**:处理文本资源,提取关键信息并进行中英文转换 - **solve_unstructured_data**:解析非结构化数据文件,提取实体关系并构建知识图谱 ### 基础功能 - **get_formatted_time**:获取格式化的当前时间 - **llm_client**:封装了与大语言模型的交互 - **infer_column_type**:自动推断DataFrame中各列的数据类型 ## 技术实现 模块使用以下技术和库实现其功能: - Neo4j图数据库作为元数据和关系存储 - MinIO对象存储作为非结构化数据存储 - OpenAI兼容的LLM服务进行内容生成和提取 - Pandas进行数据处理 - Python标准库提供基础功能支持 ## 使用方法 ```python from app.core.meta_data import meta_list, meta_kinship_graph, solve_unstructured_data # 获取元数据列表 meta_data_list, total_count = meta_list(page=1, page_size=10, category_filter="文档") print(f"共找到 {total_count} 条元数据记录") # 获取元数据亲缘关系图谱 graph_data = meta_kinship_graph(node_id=123) print(f"图谱包含 {len(graph_data['nodes'])} 个节点和 {len(graph_data['relationships'])} 个关系") # 处理非结构化数据 from app.services.minio_client import minio_client result = solve_unstructured_data(node_id=123, minio_client=minio_client, prefix="data") print(f"非结构化数据处理{'成功' if result else '失败'}") ``` ## 依赖关系 本模块依赖于以下组件: - app/services/neo4j_driver.py:提供Neo4j数据库连接 - app/services/minio_client.py:提供MinIO对象存储连接 - 外部依赖: - openai:与LLM服务交互 - pandas:数据处理 - minio:对象存储访问