README.md 2.9 KB

元数据核心功能模块

本模块提供元数据管理相关的核心业务逻辑,包括元数据查询、图谱分析、非结构化数据处理等功能。

功能概述

元数据核心模块是整个平台的基础设施之一,负责处理和管理各类元数据,包括结构化和非结构化数据。主要提供以下功能:

  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标准库提供基础功能支持

使用方法

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:对象存储访问