【GPT入门】第35课 代码视角下的中文 TOKEN 剖析:从运行到输出的全面观察

【GPT入门】第35课 代码视角下的中文 TOKEN 剖析:从运行到输出的全面观察

概述

想用代码方式,观察一个中文token代表中文的什么内容,下面以代码的方式实战给大家看。

1. 代码

import os
from langchain_openai import ChatOpenAI
from langchain.callbacks.base import BaseCallbackHandler


# 自定义回调处理器
class CustomCallbackHandler(BaseCallbackHandler):
    def on_llm_new_token(self, token: str, **kwargs) -> None:
        print('token: ', token)


# 设置 OpenAI API 密钥
# os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

# 创建一个带有自定义回调的 ChatOpenAI 实例
llm = ChatOpenAI(
    streaming=True,
    callbacks=[CustomCallbackHandler()],
    temperature=0
)

# 输入提示
# prompt = "请描述一下未来的城市交通。"
prompt = "中国的首都是哪里?"

# 调用语言模型并打印每个 token
response = llm.invoke(prompt)
print("-------response start-------")
print(response)

2. 输出

token:  
token:  中国
token:  的
token:  首
token:  都
token:  是
token:  北京
token:  。
token:  
-------response start-------
content='中国的首都是北京。' additional_kwargs={} response_metadata={'finish_reason': 'stop', 'model_name': 'gpt-3.5-turbo-0125', 'system_fingerprint': 'fp_0165350fbb'} id='run-6d6b3902-47da-44b7-89a1-2b8f53699cd3-0' usage_metadata={'input_tokens': 0, 'output_tokens': 0, 'total_tokens': 0, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0}}
C:\ProgramData\anaconda3\envs\gptLearning\python.exe E:\workspace\gptLearning\gptLearning\ls02\lessson7_token.py 
token:  
token:  未
token:  来
token:  的
token:  城
token:  市
token:  交
token:  通
token:  将
token:  更
token:  加
token:  智
token:  能
token:  化
token:  、
token:  高
token:  效
token:  化
token:  和
token:  环
token:  保
token:  。
token:  首
token:  先
token:  ,
token:  自
token:  动
token:  驾
token:  驶
token:  技
token:  术
token:  将
token:  得
token:  到
token:  广
token:  泛
token:  应
token:  用
token:  ,
token:  车
token:  辆
token:  之
token:  间
token:  可以
token:  实
token:  现
token:  无
token:  缝
token:  通
token:  信
token:  和
token:  协
token:  同
token:  驾
token:  驶
token:  ,
token:  大
token:  大
token:  减
token:  少
token:  交
token:  通
token:  事
token:  故
token:  的
token:  发
token:  生
token:  。
token:  其
token:  次
token:  ,
token:  共
token:  享
token:  出
token:  行
token:  模
token:  式
token:  将
token:  更
token:  加
token:  普
token:  及
token:  ,
token:  人
token:  们
token:  可以
token:  通过
token:  手机
token:  APP
token:  实
token:  时
token:  查
token:  找
token:  最
token:  优
token:  出
token:  行
token:  方
token:  案
token:  ,
token:  包
token:  括
token:  共
token:  享
token:  单
token:  车
token:  、
token:  共
token:  享
token:  汽
token:  车
token:  、
token:  公
token:  共
token:  交
token:  通
token:  等
token:  ,
token:  减
token:  少
token:  私
token:  家
token:  车
token:  使用
token:  ,
token:  缓
token:  解
token:  交
token:  通
token:  拥
token:  堵
token:  问题
token:  。
token:  再
token:  者
token:  ,
token:  电
token:  动
token:  汽
token:  车
token:  将
token:  成
token:  为
token:  主
token:  流
token:  ,
token:  减
token:  少
token:  尾
token:  气
token:  排
token:  放
token:  ,
token:  改
token:  善
token:  空
token:  气
token:  质
token:  量
token:  。
token:  此
token:  外
token:  ,
token:  城
token:  市
token:  将
token:  建
token:  设
token:  更
token:  多
token:  的
token:  自
token:  行
token:  车
token:  道
token:  和
token:  步
token:  行
token:  街
token:  ,
token:  鼓
token:  励
token:  人
token:  们
token:  选择
token:  环
token:  保
token:  的
token:  出
token:  行
token:  方式
token:  ,
token:  减
token:  少
token:  对
token:  环
token:  境
token:  的
token:  影
token:  响
token:  。
token:  总
token:  的
token:  来
token:  说
token:  ,
token:  未
token:  来
token:  的
token:  城
token:  市
token:  交
token:  通
token:  将
token:  更
token:  加
token:  便
token:  捷
token:  、
token:  舒
token:  适
token:  、
token:  安
token:  全
token:  和
token:  环
token:  保
token:  。
token:  
-------response start-------
content='未来的城市交通将更加智能化、高效化和环保。首先,自动驾驶技术将得到广泛应用,车辆之间可以实现无缝通信和协同驾驶,大大减少交通事故的发生。其次,共享出行模式将更加普及,人们可以通过手机APP实时查找最优出行方案,包括共享单车、共享汽车、公共交通等,减少私家车使用,缓解交通拥堵问题。再者,电动汽车将成为主流,减少尾气排放,改善空气质量。此外,城市将建设更多的自行车道和步行街,鼓励人们选择环保的出行方式,减少对环境的影响。总的来说,未来的城市交通将更加便捷、舒适、安全和环保。' additional_kwargs={} response_metadata={'finish_reason': 'stop', 'model_name': 'gpt-3.5-turbo-0125', 'system_fingerprint': 'fp_0165350fbb'} id='run-2a010e18-70de-40cf-95f3-422cab82db4e-0' usage_metadata={'input_tokens': 0, 'output_tokens': 0, 'total_tokens': 0, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0}}

Process finished with exit code 0