一款AI agent和RAG应用的监控分析工具:Laminar

文摘   2024-10-22 07:49   湖北  

项目简介

Laminar 是一个用于工程LLM产品的开源平台。跟踪、评估、注释和分析LLM数据。充满信心地将LLM应用程序投入生产。

将其视为LLM应用程序的 DataDog + PostHog。

  • 基于 OpenTelemetry 的检测:自动进行LLM / 矢量 DB 调用,只需 2 行代码 + 装饰器即可跟踪函数(由 TraceLoop 的令人惊叹的OpenLLMetry开源包提供支持)。

  • 基于语义事件的分析。Laminar 托管LLM管道的后台作业队列。这些管道的输出被转化为指标。例如,您可以设计一个管道来提取“我的 AI 得来速代理进行了追加销售”数据,并在 Laminar 中跟踪该指标。

  • 使用现代堆栈进行扩展:用 Rust 编写,用于消息队列的 RabbitMQ,用于数据的 Postgres,用于分析的 Clickhouse

  • 具有洞察力、快速的跟踪/跨度/事件仪表板


入门

Laminar云

最简单的入门方法是在我们的托管平台上使用慷慨的免费套餐 -> lmnr.ai

使用 Docker compose 自托管

使用 docker compose 启动本地版本。

git clone https://github.com/lmnr-ai/lmnrcd lmnrdocker compose up

这将启动以下容器:

  • 应用程序服务器 – 核心应用程序逻辑、后端和LLM代理

  • rabbitmq – 用于可靠发送跟踪和观察的消息队列

  • qdrant – 矢量数据库

  • 语义搜索服务 – 与 qdrant 和嵌入交互的服务

  • frontend – 用于与轨迹交互的可视化前端仪表板

  • python-executor – 一个小型 python 沙箱,可以运行包含在瘦 gRPC 服务下的任意代码

  • postgres – 所有应用程序数据的数据库

  • clickhouse – 柱状 OLAP 数据库,可实现更高效的事件和跟踪分析



本地开发

上面的简单设置将从 Github 容器注册表中提取最新的 Laminar 镜像。



检测 Python 代码

首先,创建一个项目并生成一个项目 API 密钥。然后,

pip install lmnrecho "LMNR_PROJECT_API_KEY=<YOUR_PROJECT_API_KEY>" >> .env

要自动检测流行框架和LLM提供程序库的LLM调用,只需添加

from lmnr import Laminar as LL.initialize(project_api_key="<LMNR_PROJECT_API_KEY>")

除了自动检测之外,如果您想跟踪函数的输入/输出,我们还提供一个简单的@observe()装饰器


例子

import osfrom openai import OpenAI
from lmnr import observe, Laminar as LL.initialize(project_api_key="<LMNR_PROJECT_API_KEY>")
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
@observe() # annotate all functions you want to tracedef poem_writer(topic="turbulence"): prompt = f"write a poem about {topic}" response = client.chat.completions.create( model="gpt-4o", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt}, ], ) poem = response.choices[0].message.content return poem
if __name__ == "__main__": print(poem_writer(topic="laminar flow"))


发送事件

要发送 evant,请调用L.event(name, value) 。

阅读我们的文档以了解有关事件及其创建方式的更多信息。

from lmnr import Laminar as L# ...poem = response.choices[0].message.content
# this will register True or False value with LaminarL.event("topic alignment", topic in poem)


Laminar管道作为prompt链管理器

您可以在 UI 中创建Laminar 管道并在那里管理LLM调用链。

准备好在代码中使用管道后,通过选择管道的目标版本将其部署在 Laminar 中。

设置管道目标后,您只需几行即可从 Python 调用它。

from lmnr import Laminar as L
L.initialize('<YOUR_PROJECT_API_KEY>')
result = l.run( pipeline = 'my_pipeline_name', inputs = {'input_node_name': 'some_value'}, # all environment variables env = {'OPENAI_API_KEY': 'sk-some-key'},)


项目链接

https://github.com/lmnr-ai/lmnr

扫码加入技术交流群,备注开发语言-城市-昵称

合作请注明


 

关注「GitHubStore」公众号


GitHubStore
分享有意思的开源项目
 最新文章