eino
eino copied to clipboard
工具调用之后拿不到token usage
工具链调用之后,拿不到token usage信息,使用的dashscope的api。model直接绑定工具可以获取到usage,使用以下方式则不行。
chain := compose.NewChain[[]*schema.Message, []*schema.Message]()
chain.
AppendChatModel(a.chatModel, compose.WithNodeName("chat_model")).
AppendToolsNode(toolsNode, compose.WithNodeName("tools"))
// compile chain
agent, err := chain.Compile(ctx)
从返回的报文中看到是有usage信息的:
data: {"choices":[],"object":"chat.completion.chunk","usage":{"prompt_tokens":5200,"completion_tokens":723,"total_tokens":5923,"prompt_tokens_details":{"cached_tokens":0}},"created":1751623871,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-e5038523-7846-96d2-b5bd-24ee5a961bbd"}
这样你拿到的结果是 tools node 的输出,不是模型的输出,所以拿不到 token usage, 可以用 callback 获得模型输出
在adk中怎么获取token消耗 有example吗