Skip to main content

Arthur

Arthur 是一个模型监控和可观测性平台。

以下指南展示了如何使用Arthur回调处理程序运行已注册的聊天LLM,以自动将模型推理记录到Arthur。

如果您目前没有将模型上载到Arthur,请访问我们的生成文本模型上载指南。有关如何使用Arthur SDK的更多信息,请访问我们的文档

from langchain.callbacks import ArthurCallbackHandler
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage

在此处放置Arthur凭据

arthur_url = "https://app.arthur.ai"
arthur_login = "your-arthur-login-username-here"
arthur_model_id = "your-arthur-model-id-here"

使用Arthur回调处理程序创建Langchain LLM

def make_langchain_chat_llm(chat_model=):
return ChatOpenAI(
streaming=True,
temperature=0.1,
callbacks=[
StreamingStdOutCallbackHandler(),
ArthurCallbackHandler.from_credentials(
arthur_model_id,
arthur_url=arthur_url,
arthur_login=arthur_login)
])
chatgpt = make_langchain_chat_llm()
    请输入管理员密码:········

使用此run函数运行聊天LLM将在一个持续的列表中保存聊天历史记录,以便对话可以引用先前的消息并将每个响应记录到Arthur平台。您可以在model dashboard page上查看此模型推理的历史记录。

输入q退出运行循环

def run(llm):
history = []
while True:
user_input = input("\n>>> 输入 >>>\n>>>: ")
if user_input == "q":
break
history.append(HumanMessage(content=user_input))
history.append(llm(history))
run(chatgpt)
    
>>> 输入 >>>
>>>: 什么是回调处理程序?
回调处理程序,也称为回调函数或回调方法,是在特定事件或条件发生时执行的一段代码。它通常用于支持事件驱动或异步编程范式的编程语言中。

回调处理程序的目的是为开发人员提供一种定义在特定事件发生时应执行的自定义行为的方式。程序注册回调函数并继续执行其他任务,而不是等待结果或阻塞执行。当触发事件时,调用回调函数,使程序可以相应地做出响应。

回调处理程序通常用于各种场景,例如处理用户输入,响应网络请求,处理异步操作和实现事件驱动架构。它们提供了一种灵活和模块化的处理事件的方式,将系统的不同组件解耦。

>>> 输入 >>>
>>>: 我需要做什么才能充分利用它的好处?
要充分利用回调处理程序的好处,您应考虑以下几点:

1. 理解事件或条件:确定您希望使用回调处理程序响应的特定事件或条件。这可以是用户输入、网络请求或任何其他异步操作。

2. 定义回调函数:创建一个在事件或条件发生时执行的函数。该函数应包含您希望在事件发生时采取的所需行为或操作。

3. 注册回调函数:根据您使用的编程语言或框架,您可能需要注册或附加回调函数到适当的事件或条件上。这确保在事件发生时调用回调函数。

4. 处理回调:在回调函数内实现必要的逻辑来处理事件或条件。这可能涉及更新用户界面、处理数据、发出进一步的请求或触发其他操作。

5. 考虑错误处理:处理回调函数可能发生的任何潜在错误或异常非常重要。这确保您的程序可以优雅地处理意外情况,并防止崩溃或不希望的行为。

6. 保持代码的可读性和模块化:随着代码库的增长,保持回调处理程序的组织和可维护性非常重要。考虑使用设计模式或架构原则以模块化和可扩展的方式组织代码。

遵循这些步骤,您可以利用回调处理程序的好处,如异步和事件驱动编程、改进的响应性和模块化的代码设计。
>>> 输入 >>>
>>>: q