我在阅读GenKit的文档。传递给模型的历史是否计入模型定价的输入代币中?还是输入代币成本仅与“prompt”字段相关?
let history: MessageData[] = [ { role: 'system', content: [{ text: 'Talk like a pirate.' }] },];let response = await generate({ model: geminiPro, prompt: "How do you say 'dog' in French?", history,});history = response.toHistory();
我阅读的文档: https://firebase.google.com/docs/genkit/models
回答:
是的,历史会计入代币中。
通过Gemini API可用的模型具有以代币为单位测量的上下文窗口。上下文窗口定义了您可以提供多少输入以及模型可以生成多少输出。
您在上下文窗口中发送的内容决定了您将被收取的费用。
使用聊天历史调用count_tokens会返回一个total_tokens值,该值是聊天中每个角色的文本的代币计数。
要了解下一次对话轮次的规模,您需要在调用count_tokens时将它附加到历史中。
参见: tokens参见: Count tokens and billable characters
注意:在firebase gemini上没有真正提到“history”的文档。我已经向谷歌发送了很多消息来解决这个问题。