在现代软件开发中,了解和管理应用程序的使用情况和性能是至关重要的。LLMonitor是一个开源的可观测性平台,专注于提供成本和使用分析、用户追踪、追踪和评估工具。在这篇文章中,我们将深入探讨如何设置和使用LLMonitor以获得这些关键洞察。
如果你问任何一位软件开发者,监控和分析应用程序的使用情况有多重要,他们肯定会告诉你:非常重要。LLMonitor通过其强大的功能集,使得这一切变得更加简单。本文的目的是帮助你快速上手LLMonitor,并提供一些实用的代码示例。
要开始使用LLMonitor,首先需要在llmonitor.com创建一个帐户,并获得你的应用程序的跟踪ID。一旦你有了这个ID,你可以通过运行以下命令将其设置为环境变量:
export LLMONITOR_APP_ID="..." # 将你的应用程序ID放在这里
如果你不想设置环境变量,也可以直接在初始化回调处理器时传递这个ID:
from langchain_community.callbacks.llmonitor_callback import LLMonitorCallbackHandler
handler = LLMonitorCallbackHandler(app_id="...")
LLMonitor与多种大型语言模型(LLM)和聊天模型兼容。例如,你可以将其与OpenAI模型结合使用,简单地通过回调函数处理器进行设置:
from langchain_openai import OpenAI
from langchain_openai import ChatOpenAI
from langchain_community.callbacks.llmonitor_callback import LLMonitorCallbackHandler
handler = LLMonitorCallbackHandler()
llm = OpenAI(callbacks=[handler])
chat = ChatOpenAI(callbacks=[handler])
llm("Tell me a joke") # 使用API代理服务提高访问稳定性
在与链和代理结合使用时,确保将回调处理器传递给run
方法,以便正确追踪所有相关的链和LLM调用。建议在元数据中传递agent_name
以便在仪表板中区分代理。
from langchain_openai import ChatOpenAI
from langchain_community.callbacks.llmonitor_callback import LLMonitorCallbackHandler
from langchain_core.messages import SystemMessage, HumanMessage
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]
prompt = OpenAIFunctionsAgent.create_prompt(
system_message=SystemMessage(
content="You are a very powerful assistant, but bad at calculating lengths of words."
)
)
agent = OpenAIFunctionsAgent(llm=llm, tools=tools, prompt=prompt, verbose=True)
agent_executor = AgentExecutor(
agent=agent, tools=tools, verbose=True, metadata={"agent_name": "WordCount"} # <- recommended, assign a custom name
)
agent_executor.run("how many letters in the word educa?", callbacks=[handler])
LLMonitor还支持用户追踪,使你可以通过用户属性识别用户并跟踪他们的成本和对话记录。
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提供了一个强大而灵活的解决方案来制作可观测性决策,使你能够更好地了解应用的使用情况和性能表现。要深入学习,请访问LLMonitor的文档和相关的开源项目。以下是一些推荐的资源:
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—