通过前面课程的学习,相信大家已经基本掌握了 OpenAI 接口的使用方法。接下来,还需要补充一个点,就是 Token 的计算方法。一个token可以是一个字、一个词或者一个标点符号,取决于分词器的分词规则。

代码示例

1、返回值中查看

# openai_01_base.py
print(response.usage)

prompt_tokens:是用户提交的问题 Token 数量

completion_tokens:是系统返回的答案 Token 数量

2、图形化界面

https://platform.openai.com/tokenizer

https://tiktokenizer.vercel.app/

3、Tiktoken

请求token数量

# openai_03_tiktoken.py
import tiktoken

# 需要留意模型名称跟业务模型对应
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)))}')

回复 Token 数量

from openai import OpenAI
client = OpenAI(api_key='replace with your openai api key')

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?"},
    ]
)

result = response.choices[0].message.content
print(f'Completion_Tokens: {len(encoding.encode(str(result)))}')
在实际项目当中,第一种方法更简单直接,用的最多,其实这个方法也是调用 tiktoken 包实现的,所以第三种方法,大家也需要了解。

本文链接:http://www.ichenhua.cn/edu/note/685

版权声明:本文为「陈华编程」原创课程讲义,请给与知识创作者起码的尊重,未经许可不得传播或转售!