119 lines
5.0 KiB
Markdown
119 lines
5.0 KiB
Markdown
# 智慧评标-主观分助手 (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 文件获取更多信息。
|