这是一个基于大型语言模型(LLM)的自动化语料扩写工具。它能够根据给定的种子语料,生成大量高质量、多样化的新语料,并通过一个多阶段的筛选和质检流程,确保最终产出的数据可用于意图识别等下游任务的训练。
本项目采用了一个多阶段流水线(Pipeline)的设计,确保生成语料的质量:
- LLM 生成: 使用一个强大的生成模型(如豆包),根据用户提供的详细指令(包括场景、语气、关键词等)进行初步扩写。
- 规则筛选: 对生成结果进行快速的硬性规则检查(如字数范围)。
- 相似度筛选: 计算扩写语料与原始语料的向量相似度,剔除语义偏移过大的结果。
- LLM 质检: 使用另一个独立的质检模型(如 Gemini Flash),对通过前两轮筛选的语料进行最终的质量检查。
- 高度可定制化: 通过修改 Prompt 和输入数据,可以控制扩写语料的几乎所有方面。
- 多重质量保障: 结合规则、向量相似度和 LLM 质检,层层把关,确保数据质量。
- 并行处理: 利用多线程并发执行质检任务,大幅提升处理速度。
- 配置简单: 通过
.env文件集中管理所有 API 密钥。
git clone <你的仓库URL>
cd LLM_expand# 创建虚拟环境
python3 -m venv venv
# 激活 (macOS/Linux)
source venv/bin/activate
# 激活 (Windows)
# venv\Scripts\activatepip install -r requirements.txt在项目根目录下创建一个名为 .env 的文件,并填入你的 API 密钥。此文件已被 .gitignore 忽略,不会被上传到 GitHub。
# .env 文件模板
API_KEY_DOUBAO="sk-..."
API_KEY_DOUBAO_EMBEDDING="sk-..."
API_KEY_Gemini="sk-..."你需要准备一个 JSON 格式的输入文件。代码中默认为 扩写语料_1.json。文件格式应为一个列表,其中每个元素是一个包含以下键的字典:
text: 原始种子语料 (必需)description: 语料描述 (可选)scene: 场景 (可选)tone: 语气 (可选)required_keywords: 必需关键词列表 (可选)example: 示范语料 (可选)range: 字数区间列表,如[10, 50](可选)
一切准备就绪后,运行主程序:
python main.py处理完成后,结果将保存在一个 CSV 文件中。
本项目采用 Apache-2.0 License 开源协议。