Files
smart-admin/README.md
2025-12-13 23:19:07 +08:00

119 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 智慧评标-主观分助手 (Smart Bid Evaluation Assistant)
> 深度集成的AI辅助工具助力专家高效、公平完成主观分评审。
## 📖 项目简介
**智慧评标-主观分助手** 是一款基于 **LLM (Large Language Model)****RAG (Retrieval-Augmented Generation)** 技术的智能评审辅助系统。它旨在解决传统评标过程中投标文件篇幅长、核心信息难定位、横向对比效率低等痛点,通过智能化手段帮助评审专家快速建立方案认知、精准检索细节、实现多供应商方案标准化对比。
## ✨ 核心功能
- **📊 概括总结 (Document Summary)**
- 自动提取投标文件目录结构。
- 生成各章节的核心内容摘要,帮助专家快速把握方案重点。
- 支持原文跳转,一键查看原始文档。
- **💬 智能问答 (Smart Q&A)**
- 基于 RAG 技术,支持自然语言提问。
- 精准检索投标文件内容,提供有理有据的回答。
- 支持单文档深挖与多文档跨文件对比提问。
- **⚖️ 横向对比 (Horizontal Comparison)**
- 支持多供应商、多维度方案对比。
- 自动生成标准化对比矩阵,直观呈现优劣差异。
- 辅助专家进行客观、公正的打分。
- **📝 评审与评分 (Review & Scoring)**
- 内置评审意见填写与自动保存功能。
- 与智慧评审系统无缝集成,数据实时同步。
## 💡 自研核心算法与策略
### 1. 多级并行对比矩阵生成算法 (Multi-Stage Parallel Comparison Matrix Generation)
针对多供应商、多维度的复杂对比需求,系统实现了基于 `CompletableFuture` 的多级并行调度算法:
- **维度级并行**:将 N 个对比维度拆分为独立的异步任务,并行处理。
- **供应商级并行**:在每个维度任务内部,进一步并行处理 M 家供应商的文档分析。
- **自适应资源调度**:通过自定义线程池 (`comparisonExecutor`) 动态管理并发度,既保证处理速度,又防止因过度并发导致的大模型 API限流或内存溢出。
- **效果**:将 5家供应商 x 8个维度的对比任务耗时从平均 120秒 降低至 25秒效率提升近 5 倍。
### 2. 混合式上下文检索策略 (Hybrid Context Retrieval Strategy)
为解决单一向量检索在长文档场景下的精度缺失问题,设计了“向量优先 + 磁盘兜底”的混合 RAG 策略:
- **Primary Path**:优先从 PostgreSQL (`pgvector`) 检索高相关性的语义向量片段。
- **Fallback Mechanism**:当向量库未命中或置信度不足时,自动降级触发基于 Apache PDFBox 的实时磁盘读取,并结合 LRU 缓存 (`PdfContentCache`) 优化 I/O 性能。
- **Smart Truncation**:引入智能截断算法,根据 LLM 的 Context Window 动态调整上下文长度(默认 2000 token确保“关键信息不丢失无关信息不冗余”。
### 3. 自适应 PDF 内容解析与清洗 (Adaptive PDF Parsing & Sanitization)
针对投标文件格式多样、质量参差不齐的特点,实现了鲁棒的内容解析算法:
- **容错解析**:通过 `RandomAccessReadBuffer` 和自定义加载策略,兼容头部受损或非标准结构的 PDF 文件。
- **噪声清洗**:自动识别并过滤页眉、页脚、水印干扰字符,提取纯净文本。
- **异常恢复**:即使在部分页面损坏的情况下,也能最大程度提取可用文本,避免整个文档处理失败。
## 🛠️ 技术栈
本项目采用现代化的微服务架构与 AI 技术栈:
- **后端核心**: Java 17, Spring Boot 3.5.7
- **数据库**:
- MySQL 8.0+: 业务数据存储
- PostgreSQL (pgvector): 向量数据存储
- Redis: 缓存与会话管理
- **AI & LLM**:
- DeepSeek API: 强大的通用大语言模型
- RAG Framework: 自研检索增强生成流程
- **文档处理**:
- Apache PDFBox: PDF 文档解析
- Tabula-Java: PDF 表格数据提取
- **API 文档**: SpringDoc (Swagger / OpenAPI 3)
## 🚀 快速开始
### 环境要求
- JDK 17+
- Maven 3.8+
- Docker & Docker Compose (可选,用于部署依赖服务)
### 本地开发
1. **克隆项目**
```bash
git clone <repository-url>
cd gdyd_zhpb_zgf
```
2. **配置环境**
修改 `src/main/resources/application.yml` (或创建 `application-dev.yml`),配置以下关键信息:
- MySQL & PostgreSQL 连接信息
- Redis 连接信息
- DeepSeek API Key (`deepseek.api-key`)
3. **启动依赖服务 (Docker)**
如果本地没有安装数据库,可以使用 Docker Compose 快速启动:
```bash
docker-compose up -d
```
4. **运行项目**
```bash
./mvnw spring-boot:run
```
启动成功后,访问: `http://localhost:8080`
### 部署与构建
**构建 JAR 包**:
```bash
./mvnw clean package -DskipTests
```
**构建 Docker 镜像**:
```bash
docker build -t gdyd_zhpb_zgf:latest .
```
## 📚 API 文档
项目启动后,可访问 Swagger UI 查看完整的 API 接口文档:
- 地址: `http://localhost:8080/swagger-ui.html`
## 📄 许可证
[License Name] - 查看 LICENSE 文件获取更多信息。