集成:OpenLIT
监控、评估和改进 GenAI 和 LLM 应用
目录
概述
OpenLIT 是一个 OpenTelemetry 原生的 GenAI 和 LLM 应用可观测性工具。它只需一行代码即可简化 OpenLIT 与 Haystack 的集成,实现 GenAI 和 LLM 应用的可观测性。
OpenLIT 允许您监控 LLM 操作的详细信息,例如 API 调用、内容、提示、成本等。这使您能够深入了解模型的性能,识别改进领域并降低成本。
有关更多信息,请查看 官方文档。
⚡ 特点
- OpenTelemetry 原生:原生支持确保将 OpenLIT 集成到您的项目中感觉更像是自然的扩展,而不是增加了复杂性。
- LLM 应用的精细使用情况洞察:通过精细控制来评估 LLM 的性能和成本,按环境(如暂存或生产)或应用细分指标,以优化效率和可扩展性。
- 供应商中立的 SDK:秉承 OpenTelemetry 的精神,OpenLIT 的 SDK 与后端供应商无关。这意味着您可以放心地将 OpenLIT 与各种遥测后端(如 Prometheus + Jaeger 或 Grafana Cloud 等平台)一起使用,而无需担心兼容性问题。
安装
pip install openlit
使用
为应用程序添加监控就像在代码中添加一行一样简单
openlit.init()
执行代码时,跟踪和指标将直接显示在控制台中,非常适合即时调试。
但是,要存储和跟踪这些数据,您应该将这些跟踪和指标发送到 OpenLIT。有关如何执行此操作的指南,请 参阅此快速入门指南。
如果您希望将 LLM 监控数据与现有的可观测性堆栈(如 Grafana)集成,请探索 OpenLIT 连接 以开始使用。
示例:跟踪 Haystack 管道
以下代码片段说明了如何使用 OpenLIT 来跟踪 Haystack 管道,从而使您能够监控和优化 LLM 应用程序的性能。
import os
from haystack import Pipeline
from haystack.components.fetchers import LinkContentFetcher
from haystack.components.converters import HTMLToDocument
from haystack.components.builders import ChatPromptBuilder
from haystack.components.generators.chat import OpenAIChatGenerator
from haystack.dataclasses import ChatMessage
import openlit # Import the OpenLIT Library
openlit.init() # Initialize OpenLIT for monitoring
os.environ["OPENAI_API_KEY"] = "Your OpenAI API Key"
fetcher = LinkContentFetcher()
converter = HTMLToDocument()
prompt_template = [
ChatMessage.from_user(
"""
According to the contents of this website:
{% for document in documents %}
{{document.content}}
{% endfor %}
Answer the given question: {{query}}
Answer:
"""
)
]
prompt_builder = ChatPromptBuilder(template=prompt_template, required_variables="*")
llm = OpenAIChatGenerator()
pipeline = Pipeline()
pipeline.add_component("fetcher", fetcher)
pipeline.add_component("converter", converter)
pipeline.add_component("prompt", prompt_builder)
pipeline.add_component("llm", llm)
pipeline.connect("fetcher.streams", "converter.sources")
pipeline.connect("converter.documents", "prompt.documents")
pipeline.connect("prompt.prompt", "llm")
result = pipeline.run({"fetcher": {"urls": ["https://haystack.com.cn/overview/quick-start"]},
"prompt": {"query": "Which components do I need for a RAG pipeline?"}})
print(result["llm"]["replies"][0].text)
许可证
OpenLIT 根据 Apache-2.0 许可证分发。
