| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- # -*- coding: utf-8 -*-
- """调试 BM25RAG 的 retrieve 方法"""
- import sys
- import os
- sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
- from bdirag.document_processor import Document
- from bdirag.rag_methods.bm25_rag import BM25RAG
- # 创建测试文档
- doc = Document(
- page_content="""XX市第一人民医院医疗设备招标公告
- 项目名称:XX市第一人民医院彩色多普勒超声诊断仪采购项目
- 项目编号:XX-ZB-2024-001
- 预算金额:500万元
- 采购内容:彩色多普勒超声诊断仪 1台
- 投标人资格要求:
- 1. 具有独立承担民事责任的能力
- 2. 具有有效的医疗器械经营许可证
- 3. 近三年内无不良经营记录
- 4. 投标保证金:人民币5万元整
- 技术需求:
- 1. 彩色多普勒超声诊断仪技术参数
- - 探头配置:腹部凸阵探头、高频线阵探头、心脏相控阵探头
- - 显示屏:≥19英寸高清液晶显示器
- - 质保期:整机质保三年
- 2. 交货时间:合同签订后60天内交货
- 3. 交货地点:XX市第一人民医院设备科
- 评标方法:采用综合评分法
- - 技术部分:60分
- - 商务部分:30分
- - 价格部分:10分
- 付款方式:合同签订后支付30%,交货验收合格后支付65%,质保期满后支付5%
- 投标截止时间:2024年12月31日上午9:30
- 开标时间:同投标截止时间
- 投标文件递交地点:XX市公共资源交易中心""",
- metadata={"title": "Test"}
- )
- # 初始化 BM25RAG
- print("初始化 BM25RAG...")
- bm25_rag = BM25RAG()
- bm25_rag.index_documents([doc])
- print(f"索引构建完成,文档数: {len(bm25_rag._all_documents)}")
- # 测试查询
- test_queries = [
- "预算金额",
- "投标保证金",
- "质保期",
- "评标方法",
- ]
- for query in test_queries:
- print(f"\n{'='*60}")
- print(f"查询: {query}")
- print(f"{'='*60}")
-
- # 查看 tokenize 结果
- from bdirag.rag_methods.tokenization import bm25_tokenize
- query_tokens = bm25_tokenize(query)
- print(f"查询分词: {query_tokens}")
-
- # 检查 BM25 得分
- if bm25_rag.bm25 is not None:
- scores = bm25_rag.bm25.get_scores(query_tokens)
- print(f"BM25 原始得分: {scores}")
- print(f"最大得分: {max(scores) if len(scores) > 0 else 0:.4f}")
-
- # 执行检索
- results = bm25_rag.retrieve(query, k=3)
- print(f"召回 {len(results)} 个结果")
-
- for i, (doc, score) in enumerate(results, 1):
- print(f" [{i}] Score: {score:.4f}")
- print(f" Content: {doc.page_content[:100]}...")
|