# 元数据核心功能模块

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

## 功能概述

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

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