# 专业性审查测试功能使用指南

## 📋 功能概述

在原有的RAG管道测试工具基础上，新增了**专业性审查完整测试**功能，能够测试从RAG召回到AI审查的完整链路。

## 🎯 功能特性

### 1. **完整的测试链路**
- ✅ **Step 1: RAG召回** - 查询提取 → 实体增强检索 → 父文档增强 → 结果筛选
- ✅ **Step 2: 专业性审查** - 非参数合规性检查 + 参数合规性检查

### 2. **灵活的审查类型**
- **全部审查** - 同时执行非参数和参数审查
- **非参数审查** - 仅检查安全相关/强制性条文
- **参数审查** - 仅检查技术参数/实体概念/工程术语

### 3. **详细的结果展示**
- RAG召回摘要（查询对数量、召回实体数量、审查实体数量）
- 每个实体的审查结果（包含RAG得分、查询条文、参考来源）
- 审查问题JSON格式展示（issue_point、location、suggestion、reason、risk_level）

## 🚀 使用方法

### 1. **启动服务**

```bash
cd D:\wx_work\sichuan_luqiao\LQAgentPlatform\utils_test\RAG_Test\rag_pipeline_web
python rag_pipeline_server.py
```

### 2. **访问界面**

浏览器打开：`http://localhost:8765`

### 3. **切换到专业性审查Tab**

点击顶部的 **🎯 专业性审查测试** 标签

### 4. **输入待审查内容**

在文本框中输入待审查的内容，例如：

```
二）架桥机安装施工
1、安装准备
（1）图纸审核
1）为了使施工人员充分领会设计意图，熟悉设计内容...
```

### 5. **选择审查类型**

- ⭕ 全部审查（默认）
- ⭕ 非参数审查
- ⭕ 参数审查

### 6. **执行审查**

点击 **▶ 执行专业性审查** 按钮

### 7. **查看结果**

结果面板会显示：
- 📊 RAG召回摘要卡片
- 📋 每个实体的详细审查结果

## 🔧 技术实现

### 后端API

新增API端点：`POST /api/professional_review`

**请求参数：**
```json
{
  "content": "待审查内容",
  "check_type": "both"  // "non_parameter", "parameter", "both"
}
```

**响应格式：**
```json
{
  "status": "success",
  "trace_id": "professional_review_1706428800000",
  "check_type": "both",
  "rag_summary": {
    "query_pairs_count": 3,
    "entity_results_count": 2,
    "query_pairs": [...],
    "entity_results": [...]
  },
  "review_results": [
    {
      "entity": "架桥机",
      "combined_query": "架桥机 安装施工 图纸审核",
      "reference_source": "架桥机使用说明书.md",
      "rag_score": 0.8234,
      "non_parameter_result": { ... },  // JSON或"无明显问题"
      "parameter_result": { ... }
    }
  ],
  "total_entities_reviewed": 2
}
```

### 前端文件

**新增文件：**
- `professional_review.js` - 专业性审查逻辑

**修改文件：**
- `index.html` - 添加专业性审查界面
- `styles.css` - 添加样式（功能Tab、审查区域、结果展示）

### 核心流程

```
用户输入
   ↓
RAG召回（查询提取 → 实体检索 → 父文档增强）
   ↓
对每个召回的实体执行AI审查
   ├─ 非参数审查（使用优化后的提示词）
   └─ 参数审查（使用优化后的提示词）
   ↓
结果汇总展示
```

## 📊 结果解读

### RAG得分
- **>0.5** - 高相关性，建议审查
- **0.3-0.5** - 中等相关性
- **<0.3** - 低相关性，已过滤

### 审查结果状态

| 状态标签 | 含义 | 颜色 |
|---------|------|------|
| ✅ 无明显问题 | 参考依据无法回答或相关性低 | 绿色 |
| ⚠️ 发现问题 | 检测到合规性问题 | 橙色 |
| ❌ 执行失败 | 审查过程出错 | 红色 |
| ⏸ 未执行 | 该类型审查未启用 | 灰色 |

### 问题JSON字段

```json
{
  "issue_point": "问题标题",
  "location": "问题位置（原文+页码）",
  "suggestion": "修改建议",
  "reason": "问题原因和依据",
  "risk_level": "高风险/中风险/低风险"
}
```

## 🎨 界面说明

### 功能Tab
- 🔍 **RAG召回测试** - 原有的RAG链路测试
- 🎯 **专业性审查测试** - 新增的完整审查测试

### 输入区域
- 文本框：输入待审查内容
- 单选框：选择审查类型
- 按钮：执行审查 / 清空

### 结果展示
- **RAG召回摘要** - 3个汇总卡片
- **审查结果详情** - 每个实体的详细结果

## 🔍 调试建议

### 查看完整数据
在浏览器控制台查看：
```javascript
console.log(window.professionalReviewData)
```

### 查看RAG召回详情
```javascript
console.log(window.professionalReviewData.rag_summary)
```

### 查看某个实体的审查结果
```javascript
console.log(window.professionalReviewData.review_results[0])
```

## 📝 示例测试用例

### 测试用例1：正常审查
**输入：**
```
主要部件说明
1、主梁总成
主梁总成由主梁和导梁构成。主梁单节长12m，共7节，每节重10.87t
```

**预期结果：**
- 召回相关的架桥机文档
- 执行参数和非参数审查
- 显示具体的审查意见

### 测试用例2：无相关内容
**输入：**
```
这是一段无关的测试内容
```

**预期结果：**
- RAG召回为空或低分
- 返回"无明显问题"

## ⚠️ 注意事项

1. **服务器必须启动** - 确保后端服务运行在 `http://localhost:8765`
2. **Milvus必须就绪** - 确保向量数据库已正确初始化
3. **AI模型可用** - 确保 `qwen3_30b` 模型可用
4. **网络稳定** - 审查过程可能需要较长时间（30-60秒）

## 🐛 常见问题

### Q1: 点击按钮没反应？
**A:** 检查服务器状态指示器，确保显示"服务正常"

### Q2: 审查一直加载？
**A:** 查看浏览器控制台，可能是后端超时或错误

### Q3: 结果显示"执行失败"？
**A:** 检查后端日志，可能是模型调用失败或参数错误

### Q4: RAG召回为空？
**A:** 可能内容与知识库不相关，尝试输入更具体的施工相关内容

## 📚 相关文件

- **后端**: `rag_pipeline_server.py`
- **前端HTML**: `index.html`
- **前端JS**: `professional_review.js`, `app.js`
- **前端CSS**: `styles.css`
- **提示词**: `core/construction_review/component/reviewers/prompt/technical_reviewers.yaml`

## 🎯 下一步优化

- [ ] 添加导出结果功能（JSON/Excel）
- [ ] 支持批量测试（多个内容片段）
- [ ] 添加历史记录查询
- [ ] 支持自定义提示词测试
- [ ] 添加性能分析图表

---

**最后更新时间**: 2026-01-28
**版本**: v1.0.0
