自托管
promptfoo 提供了一个 Docker 镜像,允许您托管一个中央服务器来存储团队的评估。通过这种方式,您可以:
- 与团队共享您的评估。
- 在 CI/CD 管道中运行评估并汇总结果。
- 将敏感数据保留在本地机器之外。
自托管应用程序包括:
- 自托管应用程序是一个 Express 服务器,提供 Web UI 和 API。
使用预构建的 Docker 镜像
快速入门的方法是使用预构建的镜像。
要使用预构建的镜像:
- 拉取镜像:
docker pull ghcr.io/promptfoo/promptfoo:main
您可以使用特定版本标签而不是 main
来获取更稳定的版本。
- 运行容器:
docker run -d --name promptfoo_container -p 3000:3000 -v /path/to/local_promptfoo:/root/.promptfoo ghcr.io/promptfoo/promptfoo:main
关键点:
-v /path/to/local_promptfoo:/root/.promptfoo
将容器的工目录映射到本地文件系统。将/path/to/local_promptfoo
替换为您喜欢的路径。- 省略
-v
参数将导致评估不持久。 - 将任何 API 密钥作为环境变量添加到 Docker 容器中。例如,
-e OPENAI_API_KEY=sk-abc123
设置 OpenAI API 密钥,以便用户可以直接从 Web UI 运行评估。将sk-abc123
替换为您的实际 API 密钥。
从源代码构建
1. 克隆仓库
首先,从 GitHub 克隆 promptfoo 仓库:
git clone https://github.com/promptfoo/promptfoo.git
cd promptfoo
2. 构建 Docker 镜像
使用以下命令构建 Docker 镜像:
docker build -t promptfoo .
3. 运行 Docker 容器
使用以下命令启动 Docker 容器:
docker run -d --name promptfoo_container -p 3000:3000 -v /path/to/local_promptfoo:/root/.promptfoo promptfoo
高级配置
评估存储
promptfoo 使用位于镜像中 /root/.promptfoo
的 SQLite 数据库 (promptfoo.db
)。确保此目录持久化以保存您的评估。将 -v /path/to/local_promptfoo:/root/.promptfoo
传递给 docker run
命令以持久化评估。
将 promptfoo 指向您的托管实例
在自托管时,您需要设置环境变量,以便 promptfoo share
命令知道如何访问您的托管应用程序。以下是一个示例:
PROMPTFOO_REMOTE_API_BASE_URL=http://localhost:3000 PROMPTFOO_REMOTE_APP_BASE_URL=http://localhost:3000 promptfoo share -y
这将使用您的自托管服务创建一个可共享的 URL。
PROMPTFOO_REMOTE_API_BASE_URL
环境变量指定自托管服务的 API 端点的基本 URL。这是 promptfoo share
命令发送数据以创建可共享 URL 的地方。
同样,PROMPTFOO_REMOTE_APP_BASE_URL
环境变量设置自托管服务的 UI 的基本 URL。这将是可共享 URL 的可视部分。
这些配置选项也可以在 promptfoo 配置的 sharing
属性下设置:
sharing:
apiBaseUrl: http://localhost:3000
appBaseUrl: http://localhost:3000