OpenInference简介
OpenInference是一个开源项目,旨在为AI和大语言模型(LLM)应用提供全面的可观测性解决方案。它是对OpenTelemetry标准的补充,专门用于跟踪和监控AI应用的运行情况。OpenInference由Arize公司开发和维护,可以与Arize Phoenix等各种OpenTelemetry兼容的后端系统配合使用。
主要特点
OpenInference具有以下主要特点:
- 基于OpenTelemetry标准,兼容性好
- 提供针对多种流行AI/ML框架的自动插桩功能
- 可以跟踪LLM调用、向量检索等AI特有操作
- 支持Python和JavaScript等多种编程语言
- 可以与Arize Phoenix等各种后端系统集成
- 完全开源,社区驱动
核心组件
OpenInference包含以下核心组件:
- 规范(Specification): 定义了AI应用跟踪的标准和约定
- 插桩库(Instrumentation): 提供针对OpenAI、LangChain等框架的自动插桩功能
- 语义约定(Semantic Conventions): 定义了AI应用跟踪的标准属性和指标
- 示例代码: 提供了各种场景下使用OpenInference的示例
支持的框架
OpenInference目前支持对以下流行的AI/ML框架进行插桩:
- OpenAI
- LangChain
- LlamaIndex
- DSPy
- AWS Bedrock
- MistralAI
- Vertex AI
- CrewAI
- Haystack
- LiteLLM
- Groq
- Instructor
- Anthropic
快速入门
以下是使用OpenInference对OpenAI SDK进行插桩的简单示例:
from openinference.instrumentation.openai import OpenAIInstrumentor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk import trace as trace_sdk
# 设置跟踪
tracer_provider = trace_sdk.TracerProvider()
tracer_provider.add_span_processor(trace_sdk.SimpleSpanProcessor(OTLPSpanExporter()))
# 插桩OpenAI SDK
OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)
# 使用OpenAI SDK
import openai
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello!"}]
)
这段代码会自动跟踪OpenAI API的调用,并将跟踪数据发送到配置的OTLP导出器。
支持的目标系统
OpenInference生成的跟踪数据可以发送到以下系统:
- ✅ Arize Phoenix
- ✅ Arize云服务
- ✅ 任何兼容OpenTelemetry的收集器
社区
OpenInference拥有一个活跃的社区,欢迎所有对AI应用可观测性感兴趣的开发者和用户加入:
- 🌍 加入Slack社区
- 💡 在#phoenix-support频道提问和反馈
- 🌟 在GitHub上给项目加星
- 🐞 在GitHub Issues上报告问题
- 𝕏 在X(Twitter)上关注最新动态
总结
OpenInference为AI和LLM应用提供了一个强大而灵活的可观测性解决方案。通过与OpenTelemetry生态系统的集成,它使开发者能够全面了解其AI应用的运行情况,从而更好地优化性能、调试问题并确保可靠性。无论您是构建简单的聊天机器人还是复杂的AI系统,OpenInference都可以帮助您更好地理解和改进您的应用。
随着AI技术的不断发展,可观测性将变得越来越重要。OpenInference作为一个开源项目,将继续发展以满足AI社区不断变化的需求。欢迎所有对改进AI应用可观测性感兴趣的开发者加入OpenInference社区,共同推动这一重要工具的发展。
项目链接:www.dongaigc.com/a/openinfer… www.dongaigc.com/a/openinfer…