Voice Lab 是一个针对语音智能体的测试与评估框架。它旨在简化对 LLM 驱动的智能体进行评估和迭代的流程,让开发者能够以数据为依据做出决策,例如通过切换更小的模型来优化成本、测试新发布的模型,或微调提示词以提升性能。虽然该框架针对语音智能体进行了优化,但同样适用于任何基于 LLM 的智能体评估需求。
主要能力
- 自定义指标:以 JSON 格式定义指标,并使用 LLM-as-a-Judge 对指标进行评分。
- 性能追踪:跨不同配置追踪性能指标。
- 成本优化:监控并智能选择最具成本效益的模型。
- 模型切换:自信地在模型之间切换(如从 Claude Sonnet 切换到 GPT-4,或从 GPT-4 切换到 GPT-4 Mini)。
- 模型评估:评估更小、更高效的模型,以取得更好的成本-延迟平衡。
- 对比表格:生成跨不同模型的综合对比表格。
- 提示词变体:系统化地测试多个提示词变体。
- 用户模拟:模拟并验证在不同用户类型和交互风格下的表现。
使用方式
- 克隆仓库: git clone https://github.com/saharmor/voice-lab.git cd voice-lab
- 创建虚拟环境并安装依赖: python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
- 在项目根目录创建 .env 文件并添加环境变量: OPENAI_API_KEY=your_openai_api_key
- 目前该库仅支持语音智能体的文本部分,即测试底层语言模型与提示词。运行示例测试 example_test.py 以执行预定义测试。
- 更高级的配置可使用 Voice Lab Configuration Editor 生成 JSON 配置文件。
添加新测试场景
可以通过 Voice Lab Configuration Editor 生成测试场景,或直接编辑 test_details.json。该文件位于 llm_testing 目录下。添加新条目时可参考提供的模板,模板中包含 system_prompt、initial_message、tool_calls、success_criteria 和 persona 等字段。
适用场景
- 需要系统化评估语音智能体在不同语言模型、提示词和人格下的表现。
- 希望降低成本,评估更小模型在特定任务上的效果。
- 需要测试多个提示词变体并比较性能。
- 想要模拟不同用户类型和交互风格,验证智能体的鲁棒性。
- 需要生成跨模型对比表格,辅助模型选型决策。
限制
- 目前仅支持语音智能体的文本部分,即测试底层语言模型和提示词,尚不支持语音分析(如中断、停顿等)。
- 需要配置 OPENAI_API_KEY。
- 贡献想法中提到的一些功能(如通过 LiteLLM 支持更多语言模型、批量处理、并行测试执行、详细测试报告、对话回放等)尚未实现,属于未来规划。
贡献与署名
项目提供了多种贡献方向,如支持通过 JSON 为智能体提供额外上下文(信用卡信息、价格范围等)、动态指标、语音分析、集成更多语言模型、集成腾讯的 1B Personas、使用 Microsoft 的 TinyTroupe 进行更广泛的模拟、集成 Qwen2-Audio 进行音频分析、批量处理降低成本、建议微调模型以更好地评估遵循度/风格等、改进测试框架(建立智能体和人格数据库、并行测试执行、详细测试报告、对话回放)等。如果使用该项目,请通过链接回仓库 https://github.com/saharmor/voice-lab 提供署名。