微信扫码
添加专属顾问
我要投稿
开源工具qagen帮你轻松生成中文文档QA对,解决LLM应用评测难题! 核心内容: 1. 项目功能:支持多LLM提供商,具备智能文档处理和中文优化 2. 质量保障:多维度验证机制确保生成QA对的质量 3. 使用方式:提供多种灵活配置和调用方法,满足不同场景需求
在评测LLM应用的时候,需要准备一些问答对(QA Pairs)然后才可以使用一些query改写等的实践丰富评测的QA Pairs,才能更加有效的评测LLM应用。这QA Pairs的准备往往会难住很多人,这是因为作为一个测试工程师怎么从已经知道的文档中抽象出问答对是一个很难说清楚的工作,这里面很多技能并能仅仅靠测试领域的知识就可以完成的,往往需要更多的业务知识、表达能力、理解能力等等。
为了解决这个问题,开发了https://github.com/crisschan/qa-gen-cn,该项目能够完成帮助测试工程师迈出LLM应用测试的第一步,基于给定的一些知识生成问答对。一个强大的中文文档问答对(QA pairs)自动生成和验证工具,支持多种LLM提供商,具备完善的质量验证机制。qagen拥有如下的一些特点:
pip install qagen
# 运行完整的生成和验证流程
python examples/generate_and_validate_qa.py
# 仅生成QA pairs,不进行验证
python examples/generator_and_no_validate_qa.py
from qa_gen_cn import generate_qa_pairs
# 基础使用
qa_pairs = generate_qa_pairs(
doc_path="your_document.txt",
llm_provider="ollama",
llm_model="llama3.1:8b"
)
# Ollama配置
llm_config = {
"llm_provider": "ollama",
"llm_model": "llama3.1:8b", # 或其他可用模型
"show_chunks": True, # 显示文档分块过程
"chunk_size": 500, # 文档块大小
"chunk_overlap": 50 # 块重叠大小
}
validation_config = {
# 语义相似度验证
"similarity_threshold": 0.3, # 相似度阈值(0-1)
"similarity_model": "paraphrase-multilingual-MiniLM-L12-v2",
}
from qa_gen_cn.generator import QAGenerator
from qa_gen_cn.llm_factory import LLMFactory
from qa_gen_cn.validator import QAPairValidator
from qa_gen_cn.utils import load_document
# 1. 初始化LLM
llm = LLMFactory.create_llm(
provider='ollama',
model='llama3.1:8b',
temperature=0.7
)
# 2. 创建生成器
generator = QAGenerator(llm=llm, show_chunks=True)
# 3. 生成QA pairs
qa_pairs = generator.generate_from_document(
doc_path="your_document.txt",
chunk_size=3000,
chunk_overlap=100
)
# 4. 配置验证器
validator = QAPairValidator({
"similarity_threshold": 0.4,
'similarity_model':'paraphrase-multilingual-MiniLM-L12-v2'
})
# 5. 验证QA pairs
doc_content = " ".join([doc.page_content for doc in load_document("your_document.txt")])
validated_pairs = validator.validate(qa_pairs, doc_content)
print(f"生成 {len(qa_pairs)} 个QA pairs,验证通过 {len(validated_pairs)} 个")
运行完成后,会在output目录生成以下文件:
output/
├── qa_generation_result.json # 完整结果(包含配置、统计等)
├── qa_pairs.json # 纯QA pairs数据
└── statistics.txt # 统计报告
[
{
"question": "什么是人工智能?",
"answer": "人工智能是计算机科学的一个分支,旨在创建能够模拟人类智能的机器。"
},
{
"question": "机器学习和深度学习的关系是什么?",
"answer": "机器学习是人工智能的分支,深度学习是机器学习的子集,使用神经网络进行学习。"
}
]
=== QA Pairs 生成和验证统计报告 ===
文档路径: examples/1.txt
LLM配置: {'provider': 'ollama', 'model': 'llama3.1:8b'}
统计信息:
- 总生成数量: 25
- 验证通过数量: 18
- 验证通过率: 72.00%
- 平均问题长度: 23.4 字符
- 平均答案长度: 156.7 字符
验证配置:
- keyword_top_n: 15
Validation 1,2,3,4 validation是互斥的,只能选择一个验证 验证优先级:1>2>3>4,在self.config中配置了:
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-08-22
微软炸裂新开源!POML:用“网页”思维重塑LLM提示词工程,告别手搓Prompt噩梦!
2025-08-22
腾讯开源的知识库、智能问答、微信对话机器人
2025-08-22
深度评测智能体平台Coze Studio:附部署教程
2025-08-22
DeepSeek-V3.1发布,拿下全球开源第一,确实可以封神了!(附一手实测)
2025-08-22
阿里AI编程 IDE Qoder 正式发布,BAT 终于凑齐了!
2025-08-21
Agent文档编写有了统一标准!OpenAI开源了AGENTS.md
2025-08-21
AI 时代的新物种,重新定义 AI DataAgent|To B 十问
2025-08-21
超过Qwen,字节首次开源大模型Seed-OSS
2025-07-23
2025-06-17
2025-06-17
2025-08-20
2025-07-23
2025-08-05
2025-07-14
2025-08-20
2025-07-12
2025-07-29