LangChain.js 实战系列:如何统计大模型使用的 token 使用量和花费

统计调用大模型的 token 使用量,进而统计整体的账单花费,是一个非常基础的需求,在 LangChain.js 中统计 token 的方式有两种,一种是方法的返回,一种是利用回调函数

📝 LangChain.js 是一个快速开发大模型应用的框架,它提供了一系列强大的功能和工具,使得开发者能够更加高效地构建复杂的应用程序。LangChain.js 实战系列文章将介绍在实际项目中使用 LangChain.js 时的一些方法和技巧。

统计调用大模型的 token 使用量,进而统计整体的账单花费,是一个非常基础的需求,在 LangChain.js 中统计 token 的方式有两种,一种是方法的返回,一种是利用回调函数:

1️⃣ 在方法中返回 token 的使用情况,比如 generate()

js
复制代码
const chat = new ChatOpenAI({ modelName: 'gpt-4', openAIApiKey: 'YOUR_KEY', }) const response = await chat.generate([ [ new SystemMessage( "你是一个翻译专家,可以将中文翻译成法语。" ), new HumanMessage( "把这个句子翻译从中文翻译成法语:我特别喜欢上班" ), ] ]);

generate() 方法会返回如下:

json
复制代码
{ "generations": [ [ { "text": "J'aime beaucoup travailler." //... } ] ], "llmOutput": { "tokenUsage": { "completionTokens": 16, "promptTokens": 17, "totalTokens": 33 } } }

llmOutput 字段包含我们整个的 token 使用量,其中 promptTokens 对应的是输入的 token,completionTokens 对应的是输出的 token,对于 OpenAI 来说,输入输出的价格是不一的,如下表:

模型名 输入 输出
gpt-4 $0.03 / 1K tokens $0.06 / 1K tokens
gpt-3.5-turbo-1106 $0.0010 / 1K tokens $0.0020 / 1K tokens
gpt-4-1106-preview $0.01 / 1K tokens $0.03 / 1K tokens
gpt-4-1106-vision-preview $0.01 / 1K tokens $0.03 / 1K tokens

2️⃣ 使用回调函数 handleLLMEnd

LangChain 提供了大量方便的回调函数,我们可以利用其提供的内置的 handleLLMEnd() 函数来统计,我们可以在创建 ChatOpenAI 实例的时候注入回调函数:

js
复制代码
const chat = new ChatOpenAI({ modelName: 'gpt-4', openAIApiKey: 'YOUR_KEY', }, { callbacks: [ { handleLLMEnd(llmResult) { console.log(JSON.stringify(llmResult, null, 2)) }, } ] })

回调参数 llmResultgenerate() 方法返回值是一样的,同样有包含 tokenUsage

另外也可以在调用的时候再注入回调函数,可以更精细地统计:

js
复制代码
model .invoke( [ new SystemMessage('Only return JSON'), new HumanMessage('Hi there!') ], { callbacks: [ { handleLLMEnd(llmResult) { console.log(JSON.stringify(llmResult, null, 2)) }, }, ], } )

好了,希望以上两种方式可以帮助大家统计大模型的开销,护好钱兜。

推荐一个集聊天、工作流和知识库的AI 平台 StarFlow.tech 🚀 。在这里,你可以免费使用 ChatGPT3.5 和 3.5 16K,还有 GPT-4 Vision、DELL·E3、Midjourney 等多种模型可供选择。这个平台就像一个小型工作室,助力个人效率 Max!。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
人工智能

如何在 Opera 中使用 ChatGPT 来实现更高效的交互

2024-5-18 21:34:46

人工智能

使用 Langchain-Chatchat 搭建一个自己的知识库(使用google实验室环境)

2024-5-19 1:34:48

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索