SuperAPI AI 工具集

phoenix-observability

智能体与模型

查看项目

更新于 10-21 16:59

技能介绍

Phoenix 是一个开源的 AI 可观测性与评估平台,面向 LLM 应用提供追踪、评估、数据集、实验和实时监控能力。

用途

Phoenix 适用于以下场景:使用详细追踪调试 LLM 应用问题;在数据集上运行系统化评估;实时监控生产 LLM 系统;构建用于提示/模型对比的实验流水线;以及在不被供应商锁定的前提下自托管可观测性。

主要能力

  • 追踪:基于 OpenTelemetry 的追踪采集,支持任意 LLM 框架。
  • 评估:提供 LLM-as-judge 评估器用于质量评估。
  • 数据集:版本化测试集,用于回归测试。
  • 实验:对比提示、模型和配置。
  • Playground:支持多模型的交互式提示测试。
  • 开源:可使用 PostgreSQL 或 SQLite 自托管。

安装

pip install arize-phoenix

# With specific backends
pip install arize-phoenix[embeddings]  # Embedding analysis
pip install arize-phoenix-otel         # OpenTelemetry config
pip install arize-phoenix-evals        # Evaluation framework
pip install arize-phoenix-client       # Lightweight REST client

使用方式

启动 Phoenix 服务器:

import phoenix as px

# Launch in notebook (ThreadServer mode)
session = px.launch_app()

# View UI
session.view()  # Embedded iframe
print(session.url)  # http://localhost:6006

命令行服务器(生产):

# Start Phoenix server
phoenix serve

# With PostgreSQL
export PHOENIX_SQL_DATABASE_URL="postgresql://user:pass@host/db"
phoenix serve --port 6006

基础追踪:

from phoenix.otel import register
from openinference.instrumentation.openai import OpenAIInstrumentor

# Configure OpenTelemetry with Phoenix
tracer_provider = register(
    project_name="my-llm-app",
    endpoint="http://localhost:6006/v1/traces"
)

# Instrument OpenAI SDK
OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)

# All OpenAI calls are now traced
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}]
)

核心概念方面,trace 表示一次完整执行流程,span 是其中单个操作。可通过 tracer.start_as_current_span 创建自定义 span,子 span 会自动嵌套。项目(Projects)用于组织相关追踪,可通过环境变量 PHOENIX_PROJECT_NAME 或 register(project_name=...) 指定。

框架插桩支持 OpenAI、LangChain、LlamaIndex、Anthropic 等,分别使用对应的 Instrumentor 进行插桩。

评估框架提供内置评估器(如 HallucinationEvaluator、RelevanceEvaluator、ToxicityEvaluator)和自定义评估器(通过 llm_classify 定义模板与 rails)。可在数据集上运行评估,并将结果记录回 Phoenix。

数据集与实验:可通过 Client 创建数据集、添加示例,并使用 run_experiment 运行实验,传入任务函数与评估器,获取聚合指标。

Client API 支持查询 traces 和 spans(get_spans_dataframe、get_span、get_trace)、记录反馈(log_annotation)以及导出数据。

生产部署

Docker:

docker run -p 6006:6006 arizephoenix/phoenix:latest

配合 PostgreSQL:

# Set database URL
export PHOENIX_SQL_DATABASE_URL="postgresql://user:pass@host:5432/phoenix"

# Start server
phoenix serve --host 0.0.0.0 --port 6006

环境变量包括 PHOENIX_PORT(默认 6006)、PHOENIX_HOST(默认 127.0.0.1)、PHOENIX_GRPC_PORT(默认 4317)、PHOENIX_SQL_DATABASE_URL(默认 SQLite 临时库)、PHOENIX_WORKING_DIR(默认 OS 临时目录)、PHOENIX_ENABLE_AUTH(默认 false)、PHOENIX_SECRET(启用认证时必填)。启用认证需设置 PHOENIX_ENABLE_AUTH、PHOENIX_SECRET、PHOENIX_ADMIN_SECRET 后运行 phoenix serve。

最佳实践

使用项目按环境(dev/staging/prod)分离追踪;添加用户 ID、会话 ID 等元数据便于调试;在 CI/CD 中定期运行自动化评估;对数据集进行版本管理;通过 Phoenix 仪表盘监控 token 用量;生产部署使用 PostgreSQL 自托管。

常见问题

追踪未出现时,检查 endpoint 是否为 http://localhost:6006/v1/traces,并调用 force_flush()。Notebook 内存过高时,完成后调用 session.close() 和 px.close_app()。数据库连接问题可用 psql 验证连接,并用 phoenix serve --log-level debug 查看日志。

资源

文档:https://docs.arize.com/phoenix 仓库:https://github.com/Arize-ai/phoenix Docker Hub:https://hub.docker.com/r/arizephoenix/phoenix 版本:12.0.0+ 许可证:Apache 2.0

替代方案

LangSmith:以 LangChain 优先集成的托管平台;Weights & Biases:侧重深度学习实验追踪;Arize Cloud:带企业功能的托管版 Phoenix;MLflow:通用 ML 生命周期,侧重模型注册。

限制

资料未提供具体收费、价格、平台支持范围、性能指标或效果保证等信息。