Ingen beskrivning

luojiehua d6f8328eaf 初始提交 1 vecka sedan
.idea d6f8328eaf 初始提交 1 vecka sedan
.vscode d6f8328eaf 初始提交 1 vecka sedan
bdirag d6f8328eaf 初始提交 1 vecka sedan
examples d6f8328eaf 初始提交 1 vecka sedan
parser d6f8328eaf 初始提交 1 vecka sedan
1.4.1 d6f8328eaf 初始提交 1 vecka sedan
BIDIRAG_USAGE.md d6f8328eaf 初始提交 1 vecka sedan
BidiRAG.iml d6f8328eaf 初始提交 1 vecka sedan
RAG_METHODS_TEST_REPORT.md d6f8328eaf 初始提交 1 vecka sedan
README.md d6f8328eaf 初始提交 1 vecka sedan
convert_unicode_to_chinese.py d6f8328eaf 初始提交 1 vecka sedan
doubao-page.png d6f8328eaf 初始提交 1 vecka sedan
fix_fstrings.py d6f8328eaf 初始提交 1 vecka sedan
requirements.txt d6f8328eaf 初始提交 1 vecka sedan

README.md

BidiRAG - 招投标领域RAG检索与生成项目

基于多种RAG(Retrieval-Augmented Generation)方法的招投标公告和附件信息检索与字段提取系统。

项目简介

本项目专注于招投标领域的智能化信息处理,核心功能包括:

  • 多种RAG检索方法的实现与对比
  • 招投标公告结构化字段提取
  • 检索效果与速度的基准测试

支持的RAG方法

基础方法

方法 描述 特点
BM25RAG BM25关键词检索 纯BM25概率模型,不依赖向量嵌入
TFIDFRAG TF-IDF检索 纯TF-IDF余弦相似度,不依赖向量嵌入
NaiveRAG 最基础的RAG实现 向量语义检索 + LLM生成
RerankRAG 带重排序的RAG 初始检索后使用重排模型精排
HybridSearchRAG 混合搜索RAG 语义检索 + BM25关键词检索融合

高级方法

方法 描述 特点
MultiQueryRAG 多查询扩展RAG 将原问题扩展为多个角度查询
HyDERAG 假设文档嵌入RAG 先生成假设文档再检索
SelfRAG 自我反思RAG 检索前判断是否需要检索,检索后评估相关性
CorrectiveRAG 纠正性RAG 评估文档正确性,不足时补充外部搜索
FLARERAG 主动检索生成RAG 迭代式检索与生成
RAPTORRAG 递归摘要树RAG 构建多层级摘要树进行检索
StepBackRAG 抽象回退RAG 将具体问题抽象为高层问题检索背景知识
ContextualCompressionRAG 上下文压缩RAG 压缩检索结果仅保留相关信息
EnsembleRAG 集成检索RAG 多种检索策略结果融合

招投标专用方法

方法 描述 特点
BidFieldExtractionRAG 招投标字段提取RAG 针对招投标字段优化检索与提取
TableAwareRAG 表格感知RAG 专门处理表格和结构化数据
GraphRAG 图谱增强RAG 结合实体关系图谱进行检索

项目结构

BidiRAG/
├── bdirag/
│   ├── __init__.py
│   ├── config.py                 # 配置文件
│   ├── document_processor.py     # 文档处理(PDF/Word/Excel/TXT)
│   ├── embedding_models.py       # 嵌入模型(SentenceTransformers/OpenAI/DashScope/Zhipu)
│   ├── vector_stores.py          # 向量存储(FAISS/Chroma)
│   ├── rag_methods.py            # 所有RAG方法实现
│   └── benchmark.py              # 基准测试模块
├── examples/
│   ├── sample_data.py            # 示例招投标数据
│   ├── quick_demo.py             # 快速演示
│   ├── benchmark_all_methods.py  # 全方法基准测试
│   ├── benchmark_retrieval_speed.py  # 检索速度测试
│   └── bid_field_extraction_demo.py  # 字段提取演示
├── data/
│   ├── documents/                # 放置待处理的招投标文档
│   ├── indexes/                  # 向量索引存储
│   └── cache/                    # 缓存目录
├── output/                       # 输出目录(基准测试结果等)
├── requirements.txt
└── README.md

快速开始

安装依赖

pip install -r requirements.txt

设置环境变量

# OpenAI API配置(或兼容的API)
export OPENAI_API_KEY="your-api-key"
export OPENAI_BASE_URL="https://api.openai.com/v1"  # 或其他兼容API地址
export LLM_MODEL="gpt-4o"

# 嵌入模型配置
export EMBEDDING_MODEL="BAAI/bge-large-zh-v1.5"

运行示例

# 快速演示
python examples/quick_demo.py

# 检索速度测试(无需LLM)
python examples/benchmark_retrieval_speed.py

# 完整基准测试
python examples/benchmark_all_methods.py

# 字段提取演示
python examples/bid_field_extraction_demo.py

支持的嵌入模型

  • SentenceTransformers: 本地部署,支持中文(如BAAI/bge-large-zh-v1.5)
  • OpenAI: text-embedding-3-large/small
  • DashScope: 阿里云text-embedding-v2
  • Zhipu: 智谱AI embedding-3

支持的文档格式

  • PDF
  • Word (.docx)
  • Excel (.xlsx/.xls)
  • 纯文本 (.txt)

招投标字段提取

系统支持提取以下招投标关键字段:

  • 项目名称 (project_name)
  • 项目编号 (project_code)
  • 预算金额 (budget_amount)
  • 币种 (currency)
  • 投标截止时间 (bid_deadline)
  • 开标时间 (bid_open_time)
  • 投标地点 (bid_location)
  • 采购人名称 (purchaser_name)
  • 采购人联系人 (purchaser_contact)
  • 采购人电话 (purchaser_phone)
  • 代理机构名称 (agency_name)
  • 代理机构联系人 (agency_contact)
  • 代理机构电话 (agency_phone)
  • 资格要求 (qualification_requirements)
  • 投标保证金 (bid_bond_amount)
  • 履约保证金 (performance_bond_amount)
  • 质保期 (warranty_period)
  • 交货时间 (delivery_time)
  • 交货地点 (delivery_location)
  • 付款方式 (payment_terms)
  • 评标方法 (evaluation_method)
  • 工作范围 (scope_of_work)

基准测试指标

系统会输出以下对比指标:

  • 平均总延迟 / 检索延迟 / 生成延迟
  • P50 / P95 延迟
  • 最小 / 最大延迟
  • 平均检索文档数
  • 吞吐量(QPS)

License

MIT