OpenAI Token 计费
语言模型以块形式读取文本。在英语中,token 可以短到一个字符,也可以长到一个单词(例如 a 或 apple),在某些语言中,token 甚至可以短于一个字符,甚至长于一个单词。
例如,字符串“`ChatGPT is great!`”被编码为六个标记:["Chat", "G", "PT", "is", "great", "!"]。
API 调用中的令牌总数会影响:
* 您为每个令牌支付的 API 调用费用是多少
* 您的 API 调用需要多长时间,因为写入更多令牌需要更多时间
* 您的 API 调用是否有效,因为令牌总数必须低于模型的最大限制(gpt-3.5-turbo-0301 为 4096 个令牌)
##### 输入和输出令牌都计入这些数量。
例如,如果您的 API 调用在消息输入中使用了 10 个令牌,而您在消息输出中收到了 20 个令牌,则您需要支付 30 个令牌的费用。
要查看 API 调用使用了多少令牌,请检查 API 响应中的使用字段(例如,response['usage']['total\_tokens'])。
gpt-3.5-turbo 和 gpt-4 等聊天模型使用令牌的方式与其他模型相同,但由于它们基于消息的格式,因此更难计算对话将使用多少令牌。
传递给 API 的每条消息都会消耗内容、角色和其他字段中的令牌数量,外加一些额外的用于幕后格式化。这在未来可能会略有改变。
如果对话中的标记太多而无法满足模型的最大限制(例如,gpt-3.5-turbo 的标记超过 4096 个),您将不得不截断、省略或以其他方式缩小文本直到适合。请注意,如果从消息输入中删除一条消息,模型将失去所有关于它的知识。
另请注意,很长的对话更有可能收到不完整的回复。
例如,长度为 4090 个令牌的 gpt-3.5-turbo 对话将在 6 个令牌后被切断回复。