# Regulation RAG - 法规合规智能分析系统

一个基于 RAG (Retrieval-Augmented Generation) 技术的法规合规智能分析与问答系统原型。支持文档上传、语义分段分析、法规匹配标注、风险评估及交互式合规问答。

## 功能特性

### 📋 合规分析 (Compliance)
- **文档上传与解析** - 支持 PDF、DOCX、TXT 格式文档上传
- **AI 语义分段** - 自动识别文档语义段落与设计意图
- **法规匹配标注** - 根据段落内容匹配相关法规条款，计算相关性得分
- **风险仪表盘** - 可折叠的风险评估面板，展示合规评分、高风险项、待修改段落
- **优先行动建议** - 基于风险等级生成修改建议列表

### 💬 RAG 对话 (Rag Chat)
- **法规问答** - 基于向量检索的法规问答系统
- **快捷问题** - 预设常用问题快速提问
- **检索片段展示** - 右侧面板实时显示引用的法规片段及相似度得分
- **答案重生成** - 支持重新生成上一个回答

### 📚 文档管理 (Docs)
- **文档上传** - 支持多种格式文档导入
- **索引状态** - 显示已索引文档列表及分块数量
- **处理流水线** - 展示 Load → Parse → Chunk → Embed → Store 全流程状态

### 📊 系统状态 (Status)
- **系统统计** - 文档数、分块数、向量维度、条款数
- **配置展示** - LLM 模型、Embedding 模型、向量数据库、检索策略等参数

## 技术栈

- **前端框架**: React 19 + TypeScript
- **构建工具**: Vite 8
- **样式方案**: TailwindCSS 4
- **状态管理**: React Context API

## 快速开始

### 安装依赖

```bash
npm install
```

### 开发模式

```bash
npm run dev
```

启动本地开发服务器，默认访问 `http://localhost:5173`

前端环境文件约定如下：

- `frontend/.env.development`：本地开发，默认代理到 `http://127.0.0.1:8000`
- `frontend/.env.production`：生产构建，默认代理到 `http://6.86.80.8:8000`
- `frontend/.env.local`：临时覆盖本机配置，优先级高于上面两者

### 构建生产版本

```bash
npm run build
```

### 预览生产版本

```bash
npm run preview
```

## 项目结构

```
frontend/src/
├── components/
│   ├── common/         # 通用组件 (Logo, Pattern, ThemeToggle)
│   ├── layout/         # 布局组件 (Header, Tabs, Content)
│   └── ui/             # UI 基础组件 (Badge, Button, Card, Input...)
├── contexts/           # React Context (AppContext, ThemeContext)
├── data/               # Mock 数据
├── pages/
│   ├── Compliance/     # 合规分析页面
│   ├── Docs/           # 文档管理页面
│   ├── RagChat/        # RAG 对话页面
│   └── Status/         # 系统状态页面
├── styles/             # 全局样式
├── types/              # TypeScript 类型定义
└── App.tsx             # 应用入口
```

## 核心类型定义

```typescript
// 法规信息
interface Regulation {
  id: number;
  name: string;           // 法规名称
  clause: string;         // 条款编号
  score: number;          // 相关性得分 (0-1)
  matchKeyword: string;   // 匹配关键词
  category: 'high' | 'medium' | 'low';  // 相关性等级
  fullContent: string;    // 法规完整内容
}

// 语义段落
interface ComplianceChunk {
  id: number;
  index: number;          // 段落序号
  intent: string;         // 段落意图
  startPos: number;       // 文档起始位置
  endPos: number;         // 文档结束位置
  content: string;        // 段落内容
  regulations: Regulation[];
}

// 风险仪表盘数据
interface RiskDashboardData {
  score: number;          // 合规评分
  highRiskCount: number;  // 高风险项数量
  mediumRiskCount: number;
  lowRiskCount: number;
  needFixSegments: number;// 待修改段落数
  status: 'pass' | 'warning' | 'fail';
  statusLabel: string;    // 状态标签
  segmentRisks: SegmentRisk[];
}
```

## 界面设计

- **主题**: 支持深色/浅色主题切换
- **配色**: T-Mobile 品牌色系 (E20074 主色调)
- **布局**: 响应式设计，固定 Header + Tab 导航
- **交互**: 卡片式布局，悬浮效果，进度条动画

## 注意事项

本项目为原型演示系统，使用 Mock 数据模拟后端服务。生产环境需接入：

- 文档解析服务
- 向量数据库 (如 ChromaDB、Milvus)
- Embedding 模型 API
- LLM 服务 API

## License

MIT
