元数据核心功能模块
本模块提供元数据管理相关的核心业务逻辑,包括元数据查询、图谱分析、非结构化数据处理等功能。
功能概述
元数据核心模块是整个平台的基础设施之一,负责处理和管理各类元数据,包括结构化和非结构化数据。主要提供以下功能:
- 元数据查询:支持多条件查询和过滤元数据
- 图谱分析:提供元数据亲缘关系图谱和影响关系图谱
- 非结构化数据处理:从文本中提取实体关系,构建知识图谱
- 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标准库提供基础功能支持
使用方法
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:对象存储访问