Phoenix 是一个开源的 AI 可观测性与评估平台,针对 LLM 应用提供追踪、评估、数据集、实验和实时监控能力,可自托管以避免厂商锁定。
用途 适用于以下场景:借助详细 trace 调试 LLM 应用问题;在数据集上运行系统性评估;实时监控生产环境 LLM 系统;构建提示词/模型对比实验流水线;以及需要自托管可观测性方案的团队。资料也列出可替代方案:LangSmith(托管平台,LangChain 优先集成)、Weights & Biases(侧重深度学习实验跟踪)、Arize Cloud(托管版 Phoenix,含企业功能)、MLflow(通用 ML 生命周期与模型注册)。
主要能力
- 追踪:基于 OpenTelemetry 采集任意 LLM 框架的 trace,trace 表示完整执行流,span 表示其中的单个操作,支持自定义 span 与嵌套子 span,并可为 span 设置输入输出等属性。
- 评估:提供 LLM-as-judge 评估器,内置幻觉(HallucinationEvaluator)、相关性(RelevanceEvaluator)、毒性(ToxicityEvaluator)等,也可通过 llm_classify 与模板自定义评估;可对 span 数据批量运行评估并将结果写回 Phoenix。
- 数据集:创建版本化测试集,添加输入/输出示例,用于回归测试。
- 实验:针对数据集运行实验,比较提示词、模型与配置,并汇总准确率等指标。
- Playground:多模型交互式提示词测试。
- 客户端 API:以 DataFrame 查询 spans、获取指定 span/trace、记录人工反馈(log_annotation)、导出数据。
- 开源自托管:支持 SQLite 或 PostgreSQL 后端。
使用方式 安装:pip install arize-phoenix;按需安装扩展包 arize-phoenix[embeddings](嵌入分析)、arize-phoenix-otel(OpenTelemetry 配置)、arize-phoenix-evals(评估框架)、arize-phoenix-client(轻量 REST 客户端)。 在 notebook 中可通过 px.launch_app() 启动(ThreadServer 模式),用 session.view() 嵌入查看或打印 session.url(默认 http://localhost:6006)。生产环境使用命令行 phoenix serve,可通过 PHOENIX_SQL_DATABASE_URL 指向 PostgreSQL。 追踪配置:用 phoenix.otel.register 设置 project_name 与 endpoint(如 http://localhost:6006/v1/traces),再用对应 Instrumentor 对 OpenAI、LangChain、LlamaIndex、Anthropic 等自动埋点;也可用 OpenTelemetry tracer 手动创建 span。项目(Projects)用于组织相关 trace,可按环境区分。 评估与实验:配置评估模型(如 OpenAIModel),调用内置或自定义评估器;通过 Client 创建数据集、添加示例,并用 run_experiment 指定任务函数、评估器与实验名称运行实验。 部署与配置:Docker 运行 docker run -p 6006:6006 arizephoenix/phoenix:latest;环境变量包括 PHOENIX_PORT(默认 6006)、PHOENIX_HOST(默认 127.0.0.1)、PHOENIX_GRPC_PORT(默认 4317)、PHOENIX_SQL_DATABASE_URL、PHOENIX_WORKING_DIR,以及启用认证所需的 PHOENIX_ENABLE_AUTH、PHOENIX_SECRET、PHOENIX_ADMIN_SECRET。
适用场景 LLM 应用调试与调用链分析、数据集上的自动化质量评估、CI/CD 中的回归评估、提示词与模型选型对比实验、生产系统实时监控与成本(token 用量)观测。
限制与注意事项 资料未提供具体收费与价格信息。生产部署建议使用 PostgreSQL;启用认证时必须提供至少 32 字符的 PHOENIX_SECRET。常见问题包括 trace 未出现(需检查 endpoint 并 force_flush)、notebook 内存占用高(用完关闭 session 并 px.close_app())、数据库连接问题(可用 psql 验证连接并以 --log-level debug 查看日志)。版本 12.0.0+,许可证 Apache 2.0。