名称: arize-phoenix 描述: 开源AI可观测平台,通过OpenTelemetry集成,用于追踪、评估和改进LLM应用 许可证: MIT 元数据: 作者: Arize AI 类别: ai-observability
Arize Phoenix
Phoenix是一个基于OpenTelemetry构建的开源AI可观测平台,帮助开发者理解、调试和改进AI应用。它为基于LLM的系统提供全面的追踪、评估、提示工程和实验能力。Phoenix捕获AI应用的详细执行信息,使用评估器测量输出质量,支持系统化的提示迭代,并通过数据驱动的实验优化AI性能。
何时使用此技能
- 通过检查LLM调用、工具执行和检索操作来调试AI应用故障
- 使用基于LLM或基于代码的评估器测量和改进AI输出质量
- 利用真实生产示例系统化测试变体进行提示迭代
- 使用实验比较AI应用的不同版本(提示、模型、架构)
- 在生产环境中监控LLM成本、令牌使用、延迟和错误率
- 从生产追踪中构建数据集用于评估和微调
- 追踪多轮对话并维护跨交互的上下文
- 通过分析检索质量和文档相关性来优化RAG系统
- 评估代理性能,包括工具调用准确性和可操作性
- 管理提示版本并在不同环境中部署它们
能力
代理可以利用Phoenix来:
- 追踪 AI应用执行,提供LLM调用、工具执行、检索操作、嵌入和提示模板的详细可见性
- 评估 输出质量,使用预构建或自定义评估器,基于LLM作为评判或代码逻辑
- 注释 追踪结果,添加人类反馈、分数、标签和质量信号以持续改进
- 实验 系统化地通过数据集和评估器比较应用的不同版本
- 监控 性能指标,包括延迟、令牌使用、成本和跨项目的错误率
- 迭代 提示,使用playground、span重放和基于数据集的测试
- 组织 追踪到项目和会话中,以便更好管理和分析
- 集成 通过OpenTelemetry仪器化与20多个AI框架和LLM提供商
技能
追踪
- 捕获追踪 通过OpenTelemetry(OTLP)协议,自动仪器化主要框架
- 查看执行流程 显示每个LLM调用、工具执行、检索操作、嵌入生成和响应生成
- 检查LLM参数 包括温度、系统提示、函数调用和调用参数
- 分析检索操作 提供文档分数、顺序和嵌入文本,用于RAG系统
- 追踪令牌使用 详细分解按令牌类型(输入/输出)和模型
- 监控延迟 在追踪、span和组件级别进行分位数分析
- 通过项目组织 将追踪按环境、应用、团队或用例分离
- 通过会话分组 追踪多轮对话并维护跨交互的上下文
- 添加元数据 到追踪中,使用自定义属性、标签和结构化数据用于过滤和分析
- 注释追踪 添加分数、标签、人类反馈和LLM评估用于质量测量
- 导出和导入追踪 用于备份、迁移或外部工具分析
- 追踪成本 基于令牌使用和模型定价自动计算
评估
- 运行LLM作为评判评估 使用任何LLM提供商(OpenAI、Anthropic、Gemini、自定义端点)评估输出质量
- 构建自定义评估器 使用Python或TypeScript,自定义提示、评分逻辑和评估标准
- 使用预构建评估器 用于常见任务,包括忠实度、相关性、毒性、摘要、代理评估和RAG质量
- 编写基于代码的评估器 用于确定性检查,如精确匹配、正则模式或自定义Python/TypeScript逻辑
- 执行大规模评估 通过执行器自动并发、速率限制处理、错误管理和批处理
- 映射复杂输入 使用输入模式和图,转换嵌套数据结构用于评估器
- 查看评估器追踪 完全透明显示提示、模型推理、分数和执行元数据
- 运行批量评估 在追踪、数据集或自定义数据源上,自动重试和错误处理
- 集成评估 到工作流中,通过在生产追踪或测试数据集上运行评估
数据集与实验
- 创建数据集 从追踪、代码、CSV文件或手动策划示例中,带输入和可选参考输出
- 构建黄金数据集 带参考输出(地面真值)用于基于代码评估器的客观评估
- 版本数据集 自动跟踪插入、更新和删除以实现可重复性
- 运行实验 通过执行任务函数在数据集上使用评估器比较不同版本
- 比较实验 在UI中并排查看性能差异、分数分布和单个示例结果
- 使用重复 多次运行实验以获得统计置信度并考虑LLM变异性
- 通过拆分组织 将数据集分为训练/测试/验证拆分用于适当评估工作流
- 导出数据集 以JSONL或CSV格式用于微调、分析或共享
- 查看实验结果 在Phoenix UI中,显示任务函数追踪、每个示例分数和聚合性能指标
提示工程
- 管理提示 使用版本控制、存储和在不同环境中部署
- 交互式测试提示 在提示playground中,使用各种模型、参数和工具
- 重放LLM span 从生产追踪中在playground中加载以调试故障和测试改进
- 大规模测试 通过在数据集上运行提示来系统化评估性能
- 比较提示版本 并排查看哪个在您的数据上表现更好
- 自动优化 使用自动提示优化功能
- 通过SDK同步提示 以编程方式在应用和环境间保持提示同步
- 标签提示 用于部署控制,跨开发、暂存和生产环境
- 追踪提示变更 带版本历史、作者信息和时间戳
项目与组织
- 创建项目 组织追踪按环境(开发、暂存、生产)、应用或团队
- 设置会话 追踪多轮对话,带类似聊天机器人的UI显示对话历史
- 查看指标仪表板 带预定义指标,包括延迟、错误、令牌使用、成本和模型性能
- 过滤和搜索 追踪按元数据、属性、注释或自定义标签
- 配置数据保留 策略以控制追踪和评估数据存储时长
API与程序化访问
- 使用Python SDK (arize-phoenix-client, arize-phoenix-evals, arize-phoenix-otel) 用于程序化访问
- 使用TypeScript SDK (arizeai-phoenix-client, arizeai-phoenix-evals, arizeai-phoenix-otel) 用于JavaScript/TypeScript应用
- 访问REST API 用于注释、数据集、实验、追踪、spans、提示、项目和用户
- 手动仪器化 使用OpenTelemetry装饰器、包装器或直接OpenInference SDKs
- 生成API密钥 用于程序化访问,带基于角色的权限
认证与安全
- 配置RBAC 基于角色的访问控制用于用户权限和项目访问
- 设置认证 包括单点登录和自托管实例的用户管理
- 管理API密钥 用于安全访问Phoenix API和SDK
- 控制数据隐私 通过自托管选项用于VPC部署或本地执行
工作流
工作流1: 仪器化和追踪AI应用
- 选择集成 - 选择适合您框架的Phoenix集成(LangChain、LlamaIndex、OpenAI等)
- 安装包 - 安装Phoenix客户端和OpenTelemetry包,根据您的语言(Python或TypeScript)
- 配置端点 - 设置Phoenix端点URL,可选配置项目名称和会话追踪
- 仪器化应用 - 添加自动仪器化或手动仪器化以捕获LLM调用、工具执行和检索
- 查看追踪 - 打开Phoenix UI查看执行流程、延迟、令牌使用和详细span信息
- 添加注释 - 添加分数、标签或人类反馈到追踪中用于质量测量
工作流2: 评估AI输出质量
- 选择评估器类型 - 选择LLM作为评判用于主观质量或基于代码用于客观检查
- 配置LLM提供商 - 设置评估器LLM(OpenAI、Anthropic、Gemini或自定义端点)
- 定义评估逻辑 - 使用预构建评估器或创建自定义评估器带提示/评分逻辑
- 运行评估 - 执行评估器在追踪、数据集或自定义数据上,自动批处理和并发
- 查看结果 - 在Phoenix UI中查看评估器追踪、分数、解释和标签
- 迭代 - 基于结果和人类反馈调整评估器提示或逻辑
工作流3: 运行实验比较版本
- 创建数据集 - 构建数据集带输入和可选参考输出,从追踪、代码或CSV中
- 定义任务函数 - 创建Python函数包装您的AI应用逻辑并返回输出
- 选择评估器 - 选择基于代码评估器用于地面真值比较或LLM作为评判用于主观质量
- 运行实验 - 执行任务函数在数据集上使用评估器生成分数
- 比较结果 - 在UI中查看实验结果,显示聚合指标、分数分布和每示例分析
- 迭代 - 更改提示、模型或架构,并运行新实验比较性能
工作流4: 用playground优化提示
- 识别提示 - 在追踪中找到提示或从提示管理加载现有提示
- 打开playground - 加载提示到提示playground,带当前参数和工具
- 测试变体 - 修改提示文本、模型参数、工具或响应格式,并用真实输入测试
- 查看追踪 - 所有playground运行自动记录为追踪用于分析
- 大规模测试 - 运行提示变体在数据集示例上以系统化评估性能
- 保存和部署 - 保存最佳提示版本,标记环境,并通过SDK部署
工作流5: 调试生产问题
- 识别问题追踪 - 搜索或过滤追踪找到失败或低质量执行
- 检查执行流程 - 查看详细span信息,包括LLM调用、工具执行和检索
- 重放span - 加载问题LLM span到提示playground测试修复
- 测试改进 - 在playground中修改提示、参数或工具,并比较输出
- 添加到数据集 - 添加问题示例到数据集用于未来测试
- 运行实验 - 测试改进版本在数据集上,以在部署前验证修复
集成
LLM提供商
OpenAI、Anthropic、Amazon Bedrock、Google (Gemini)、Groq、MistralAI、VertexAI、LiteLLM、OpenRouter、Together、Vercel AI
Python框架
Agno、AutoGen、BeeAI、CrewAI、DSPy、Google ADK、Graphite、Guardrails AI、Haystack、Hugging Face smolagents、Instructor、LlamaIndex、LangChain、LangGraph、MCP、NVIDIA、Portkey、Pydantic AI
TypeScript框架
BeeAI、LangChain.js、Mastra、MCP、Vercel AI SDK
Java框架
LangChain4j、Spring AI、Arconia
平台
Dify、Flowise、LangFlow、Prompt Flow
向量数据库
MongoDB、OpenSearch、Pinecone、Qdrant、Weaviate、Zilliz/Milvus、Couchbase
评估集成
Cleanlab、Ragas、UQLM
可观测协议
OpenTelemetry (OTLP)、OpenInference
开发者工具
Claude Code、Cursor、Phoenix MCP Server
云平台
AWS (CloudFormation)、Kubernetes (Helm)、Docker、Railway
上下文
OpenTelemetry: Phoenix追踪基于OpenTelemetry (OTLP),一个行业标准可观测协议。这意味着为Phoenix编写的仪器化代码可以与其他可观测平台重用,避免供应商锁定。
OpenInference: Phoenix使用OpenInference仪器化,OpenTelemetry的扩展,专门设计用于AI/LLM应用。OpenInference添加LLM spans、检索操作和嵌入的语义约定。
追踪和Spans: 一个追踪代表请求通过AI应用的完整执行路径。Spans是追踪内的单个工作单元(例如,单个LLM调用、工具执行或检索操作)。Spans可以嵌套以显示分层执行流程。
项目: 项目为追踪提供组织结构,允许按环境、应用或团队分离。每个项目都有自己的指标仪表板和数据隔离。
会话: 会话将相关追踪分组到对话线程中,支持追踪多轮对话并维护跨交互的上下文。
评估器: 评估器测量AI输出的质量。基于LLM的评估器使用LLM作为评判评估主观质量。基于代码的评估器使用确定性逻辑用于客观检查。所有评估器返回分数,可选标签、解释和元数据。
数据集: 数据集是带输入和可选参考输出的示例集合。黄金数据集包含参考输出(地面真值)用于客观评估。数据集自动版本化。
实验: 实验运行任务函数(包装的AI应用逻辑)在数据集上使用评估器,系统化比较不同版本。实验跟踪每示例分数和聚合指标。
提示: 在Phoenix中,提示包括提示模板、调用参数(温度等)、工具和响应格式。提示版本化并可以标记用于跨环境部署。
执行器: 执行器处理评估执行,自动并发、速率限制管理、错误处理和批处理。与直接API调用相比,可以实现高达20倍的加速。
自托管: Phoenix可以在Docker、Kubernetes、AWS、Railway或本地自托管。自托管实例支持认证、电子邮件配置和数据保留策略。
Phoenix云: 由Arize团队管理的托管Phoenix托管服务,自动更新、扩展和维护。