我有点明白如何计算字符中的token,但实际上我需要计算什么呢?如果我有一个这样的有效载荷:
{
"model": "gpt-3.5-turbo",
"temperature": 1,
"max_tokens": 400,
"presence_penalty": 0.85,
"frequency_penalty": 0.85,
"messages": [
{
"role": "system",
"content": "prompt"
},
{
"role": "assistant",
"content": "message"
},
// tens of messages
]
}
我是否必须计算其中的token全部?或者我是否必须只计算"messages"
?如果是这样,我是否必须计算所有的json语法字符,如空格键,括号和逗号?"role"
和"content"
键呢?"role"
值呢?
或者我必须简单地将所有的"content"
值合并到一个字符串中,并仅基于它来计算令牌?(这是我 * 希望 * 得到的答案,呵呵)
1条答案
按热度按时间tkclm6bt1#
根据我的理解和计算,
"messages"
中提供的列表中的所有标记都被计算在内。这包括键“role”和“content”及其值,但不包括空格,括号,逗号和引号。我使用OpenAI提供的以下脚本来计算输入中的令牌数量。我修改了脚本,以计算多个消息的输入(而不是输出响应)所涉及的成本,对我来说相当准确。