方法一
利用 usage 属性
print(response.usage)
返回内容 :
CompletionUsage(completion_tokens=13, prompt_tokens=27, total_tokens=40, completion_tokens_details=None, prompt_tokens_details=None)
方法二-使用Tiktoken 软件包
以计算 Prompt Token 为例 :
# 需要留意模型名称跟业务模型对应
encoding = tiktoken.encoding_for_model('gpt-3.5-turbo')
# 去掉Key, 只保留Value
messages=[
{"system", "You are a helpful assistant."},
{"user", "Who won the world series in 2020?"},
]
print(f'Prompt_Tokens: {len(encoding.encode(str(messages)))}')
计算 completion 同理,见示例代码。
方法三
在 API 网站 查看
示例代码
import os
import tiktoken
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
# 需要留意模型名称跟业务模型对应
encoding = tiktoken.encoding_for_model('gpt-3.5-turbo')
# 去掉Key, 只保留Value
messages=[
{"system", "You are a helpful assistant."},
{"user", "Who won the world series in 2020?"},
]
print(f'Prompt_Tokens: {len(encoding.encode(str(messages)))}')
client = OpenAI(
api_key=os.getenv('API_KEY'),
base_url=os.getenv('BASE_URL')
)
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
]
)
print(response.usage)
result = response.choices[0].message.content
print(result)
print(f'Completion_Tokens: {len(encoding.encode(str(result)))}')