掌握LLM代币使用量追踪:LangChain的实用指南

# 掌握LLM代币使用量追踪:LangChain的实用指南

随着语言模型(LLM)在应用程序中的普及,追踪代币使用量成为计算成本的重要部分。本文将介绍如何通过LangChain模型调用获取代币使用信息。

## 引言

在将您的应用程序投入生产环境之前,了解GPT-3.5等LLM的代币使用情况是至关重要的。本文将引导您通过LangChain跟踪代币使用,并计算相关成本。

## 主要内容

### 先决条件

本文假设您已经熟悉以下概念:

- LLM(大语言模型)
- 使用LangSmith进行监控

### 使用LangSmith

您可以使用LangSmith帮助您跟踪LLM应用程序中的代币使用情况。请参阅LangSmith快速入门指南。

### 使用回调

一些API特定的回调上下文管理器允许您跨多次调用跟踪代币使用。您需要检查是否为您的特定模型提供了这样的集成。

如果没有,您可以通过自定义回调管理器以适应OpenAI的回调管理器实现。

### OpenAI示例

让我们首先看看如何简单地跟踪一次聊天模型调用的代币使用。

```python
from langchain_community.callbacks import get_openai_callback
from langchain_openai import OpenAI

llm = OpenAI(model_name="gpt-3.5-turbo-instruct")

with get_openai_callback() as cb:
    result = llm.invoke("Tell me a joke")
    print(result)
    print("---")
print()

print(f"Total Tokens: {cb.total_tokens}")
print(f"Prompt Tokens: {cb.prompt_tokens}")
print(f"Completion Tokens: {cb.completion_tokens}")
print(f"Total Cost (USD): ${cb.total_cost}")

输出示例:

Why don't scientists trust atoms?

Because they make up everything.
---

Total Tokens: 18
Prompt Tokens: 4
Completion Tokens: 14
Total Cost (USD): $3.4e-05

多次调用

在上下文管理器内的任何内容都会被追踪。以下是如何在链中跟踪多次调用的示例。

from langchain_community.callbacks import get_openai_callback
from langchain_core.prompts import PromptTemplate
from langchain_openai import OpenAI

llm = OpenAI(model_name="gpt-3.5-turbo-instruct")

template = PromptTemplate.from_template("Tell me a joke about {topic}")
chain = template | llm

with get_openai_callback() as cb:
    response = chain.invoke({"topic": "birds"})
    print(response)
    response = chain.invoke({"topic": "fish"})
    print("--")
    print(response)

print()
print("---")
print(f"Total Tokens: {cb.total_tokens}")
print(f"Prompt Tokens: {cb.prompt_tokens}")
print(f"Completion Tokens: {cb.completion_tokens}")
print(f"Total Cost (USD): ${cb.total_cost}")

输出示例:

Why did the chicken go to the seance?

To talk to the other side of the road!
--

Why did the fish need a lawyer?

Because it got caught in a net!

---
Total Tokens: 50
Prompt Tokens: 12
Completion Tokens: 38
Total Cost (USD): $9.400000000000001e-05

流式处理

目前,get_openai_callback不支持对旧版语言模型的流式处理代币计数。要在流式处理中正确计数代币,您可以:

  • 使用聊天模型
  • 实现自定义回调处理器
  • 使用LangSmith等监控平台

注意:在流式处理上下文中,代币计数不会更新。

常见问题和解决方案

  1. 无法获取代币计数?

    确保您的模型支持回调管理器并在非流式处理上下文中使用。

  2. 流式处理计数不准确?

    实施自定义回调管理器或使用支持流式处理的聊天模型。

总结和进一步学习资源

通过本文,您已了解如何使用LangChain跟踪和计算LLM代币使用量。推荐进一步研究LangSmith的集成来增强监控。

参考资料

  1. LangSmith 快速入门指南
  2. OpenAI API 文档

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

---END---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值