# 基于大语言模型的PostgreSQL数据库自动发现与分类系统

> 一个使用FastAPI构建的容器化REST API系统，能够自动发现数据库Schema、提取元数据，并利用LLM服务对数据进行PII（个人身份信息）分类，支持13种不同的PII类别识别。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-29T18:41:51.000Z
- 最近活动: 2026-04-29T18:53:17.925Z
- 热度: 150.8
- 关键词: LLM, PostgreSQL, 数据发现, PII分类, FastAPI, 数据治理, Docker, SQLAlchemy
- 页面链接: https://www.zingnex.cn/forum/thread/postgresql-f4bac5cf
- Canonical: https://www.zingnex.cn/forum/thread/postgresql-f4bac5cf
- Markdown 来源: ingested_event

---

# 基于大语言模型的PostgreSQL数据库自动发现与分类系统

在数据驱动的时代，企业数据库中存储着海量信息，但如何快速理解这些数据的内容、结构和敏感程度，一直是数据治理的难题。最近开源的一个项目**LLM-Based-Database-Data-Discovery-System**，巧妙地利用大语言模型技术，为PostgreSQL数据库提供了自动化的数据发现与分类能力。

## 项目背景与核心目标

随着数据隐私法规（如GDPR、CCPA）的日益严格，企业需要对数据库中的敏感信息进行识别和分类。传统方法依赖人工审计或基于规则的模式匹配，效率低下且容易遗漏。该项目旨在通过LLM的智能理解能力，自动分析数据库内容，识别13种不同的PII（个人身份信息）类别，包括电子邮件、电话号码、身份证号、信用卡号等。

## 系统架构与技术栈

该项目采用现代化的技术架构，核心组件包括：

- **后端框架**：FastAPI（Python 3.11），提供高性能的异步API服务
- **系统数据库**：PostgreSQL 15，存储元数据和系统配置
- **ORM与数据层**：SQLAlchemy与Psycopg2，实现优雅的数据库操作
- **LLM服务**：兼容OpenAI API的大语言模型服务
- **容器化**：Docker与Docker Compose，确保环境一致性和便捷部署
- **认证机制**：HTTP Basic Authentication，保障系统安全

## 模块化设计思想

项目遵循MVC设计模式，将系统划分为六个核心模块，确保高可维护性、可测试性和可扩展性：

1. **core模块**：管理环境变量和安全配置
2. **routers模块**：处理FastAPI端点的路由控制
3. **services模块**：封装数据库提取和LLM集成的服务逻辑
4. **database模块**：管理数据库引擎和会话
5. **models模块**：定义SQLAlchemy ORM模型
6. **schemas模块**：Pydantic请求/响应验证模式

这种清晰的分离使得每个模块职责单一，便于团队协作和后续功能扩展。

## 核心功能详解

系统提供六个主要服务端点，构成完整的数据发现与分类工作流：

### 1. 认证服务（GET /auth）
提供基础认证功能，管理系统安全令牌和用户信息，确保只有授权用户能够访问敏感数据。

### 2. 元数据提取服务（POST /db/metadata）
这是系统的入口功能。它连接到目标PostgreSQL数据库，安全存储连接信息，自动提取表和列的元数据，并为每个列和整体元数据记录分配唯一ID。这一步相当于为数据库建立了一个详细的"地图"。

### 3. 元数据列表服务（GET /metadata）
展示所有已存储的元数据记录，包括元数据ID、数据库名称、创建日期和表数量，方便用户了解已分析的数据库概况。

### 4. 元数据详情服务（GET /metadata/{metadata_id}）
获取特定元数据记录的详细结构，包括表列表、列详情、列ID和数据类型，帮助用户深入理解特定数据库的组织方式。

### 5. 元数据删除服务（DELETE /metadata/{metadata_id}）
删除存储的元数据记录及其关联的级联表/列数据，支持数据清理和隐私合规。

### 6. 数据分类服务（POST /classify）
这是系统的核心智能功能。它接受列ID和样本数量参数（默认10条），从目标数据库提取样本数据，利用LLM进行分类分析，返回预定义PII类别的概率分布。这意味着系统不仅能识别数据类型，还能给出置信度评估。

## LLM在数据分类中的作用

传统的正则表达式匹配在处理复杂数据格式时往往力不从心。例如，一个看似随机的字符串可能是加密后的信用卡号，也可能是普通的产品编码。LLM凭借其强大的语义理解能力，可以：

- 理解上下文语境，区分相似格式的不同数据类型
- 识别非标准格式的敏感信息（如手写体转录的身份证号）
- 提供概率分布而非二元判断，帮助用户评估风险等级
- 适应新的数据格式而无需更新规则库

## 部署与使用

项目的部署非常简便。用户只需：

1. 克隆代码仓库
2. 基于.env.example创建.env文件，配置数据库连接和OpenAI API密钥
3. 运行`docker-compose up --build`启动服务

系统将在本地8000端口提供服务，并自动提供Swagger UI文档界面（http://localhost:8000/docs），用户可以直接在浏览器中测试各个端点。

## 应用场景与价值

该系统适用于多种实际场景：

- **数据合规审计**：快速识别数据库中的敏感信息分布，满足法规要求
- **数据迁移评估**：在迁移前了解源数据的结构和敏感程度
- **数据资产管理**：建立企业数据目录，提升数据可发现性
- **安全风险评估**：识别潜在的PII泄露风险点

## 总结与展望

LLM-Based-Database-Data-Discovery-System展示了如何将大语言模型的智能能力与传统数据工程相结合，解决实际的数据治理难题。其模块化架构、容器化部署和清晰的API设计，使其易于集成到现有的数据基础设施中。

随着LLM技术的不断进步，我们可以期待这类系统在准确性、支持的数据类型和实时处理能力方面持续提升。对于需要处理大量遗留数据库或进行数据合规审查的企业来说，这无疑是一个值得关注和尝试的开源工具。
