本文主要是介绍LangChain.js 实战系列:如何统计大模型使用的 token 使用量和花费,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
📝 LangChain.js 是一个快速开发大模型应用的框架,它提供了一系列强大的功能和工具,使得开发者能够更加高效地构建复杂的应用程序。LangChain.js 实战系列文章将介绍在实际项目中使用 LangChain.js 时的一些方法和技巧。
统计调用大模型的 token 使用量,进而统计整体的账单花费,是一个非常基础的需求,在 LangChain.js 中统计 token 的方式有两种,一种是方法的返回,一种是利用回调函数:
1️⃣ 在方法中返回 token 的使用情况,比如 generate()
:
const chat = new ChatOpenAI({modelName: 'gpt-4',openAIApiKey: 'YOUR_KEY',
})const response = await chat.generate([[new SystemMessage("你是一个翻译专家,可以将中文翻译成法语。"),new HumanMessage("把这个句子翻译从中文翻译成法语:我特别喜欢上班"),]
]);
generate()
方法会返回如下:
{"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
实例的时候注入回调函数:
const chat = new ChatOpenAI({modelName: 'gpt-4',openAIApiKey: 'YOUR_KEY',
}, {callbacks: [{handleLLMEnd(llmResult) {console.log(JSON.stringify(llmResult, null, 2))},}]
})
回调参数
llmResult
和generate()
方法返回值是一样的,同样有包含tokenUsage
另外也可以在调用的时候再注入回调函数,可以更精细地统计:
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!。
这篇关于LangChain.js 实战系列:如何统计大模型使用的 token 使用量和花费的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!