Skip to main content

常见问题

什么是 Promptfoo?

Promptfoo 是一个本地优先的开源工具,旨在帮助评估(eval)大型语言模型(LLMs)。Promptfoo 专为应用程序开发人员和商业应用设计。它具有简单、灵活且可扩展的 API。使用 Promptfoo,您可以:

  1. 系统地测试多个 LLM 提供商的提示。
  2. 使用各种断言类型评估 LLM 输出。
  3. 计算准确性、安全性和性能等指标。
  4. 生成用于 LLM 红队测试的对抗性测试。
  5. 作为命令行工具、库运行,与测试框架集成,在 CI/CD 管道中运行,并在浏览器中查看结果。

什么是 LLM 红队测试,Promptfoo 如何支持它?

LLM 红队测试是指在部署前系统地测试 LLM,以识别潜在的漏洞、弱点和意外行为。Promptfoo 通过提供一个生成和执行对抗性测试的框架来支持这一点,该框架与 OWASP LLM Top 10 和 NIST AI 风险管理框架等行业标准保持一致。

Promptfoo 的红队测试功能允许您:

  1. 生成特定于您的 LLM 应用程序的对抗性测试。
  2. 在预部署环境中大规模执行测试。
  3. 分析结果以提高 AI 系统的安全性和可靠性。
  4. 持续监控 LLM 性能以应对不断变化的威胁。

更多详情,请参阅我们的 LLM 红队测试指南

Promptfoo 支持哪些 LLM 提供商?

Promptfoo 支持广泛的 LLM 提供商,包括:

  1. OpenAI(GPT-4o,GPT-3.5)
  2. Anthropic(Claude)
  3. Google(PaLM,Gemini)
  4. Amazon Bedrock(Claude,Llama)
  5. Azure OpenAI
  6. Replicate
  7. Hugging Face
  8. 本地模型和自定义 API 集成

Promptfoo 的灵活架构使得轻松集成新的或自定义的 LLM 提供商成为可能。有关最新列表和集成说明,请参阅我们的 提供商文档

Promptfoo 是否将调用转发到中间服务器?

不,源代码在您的机器上运行。对 LLM API 的调用直接发送到相应的提供商。Promptfoo 团队无法访问这些请求或响应。

Promptfoo 是否存储 API 密钥?

不,API 密钥存储为本地环境变量,并且除了直接传输到 LLM API 之外,不会传输到任何地方。

Promptfoo 是否存储 LLM 的输入和输出?

不,Promptfoo 在本地运行,所有数据都保留在您的机器上。唯一的例外是当您明确使用 share 命令时,它会将输入和输出存储在 Cloudflare KV 中两周。

你们是否收集任何 PII?

不,我们不收集任何个人身份信息(PII)。

如何使用代理与 Promptfoo?

对大多数提供商的请求是通过 proxy-agent 进行的,该代理尊重 HTTP_PROXYHTTPS_PROXY 环境变量,格式为 [protocol://]<host>[:port]

Promptfoo 如何与现有的开发工作流程集成?

Promptfoo 可以通过 GitHub Action 集成到 CI/CD 管道中,与 Jest 和 Vitest 等测试框架一起使用,并融入开发过程的各个阶段。