首页 > 其他分享 >tiktoken计算chatgpt-token

tiktoken计算chatgpt-token

时间:2023-05-06 20:56:52浏览次数:27  
标签:__ self tiktoken token tk chatgpt root model

强迫症表示必须要看到token数量,所以自己用GPT写一个玩


import tkinter as tk
import pyperclip
import tiktoken


class TokenCounter:
    def __init__(self):
        # GUI Setup
        self.root = tk.Tk()
        self.root.geometry("300x200")
        self.root.title("Token Counter")

        self.btn = tk.Button(self.root, text="Get Token Count", command=self.count_tokens)
        self.btn.pack(pady=10, padx=10)

        self.textbox = tk.Text(self.root, height=2)
        self.textbox.pack(pady=10, padx=10)

        # Tokenizer Setup
        self.token_encoders = {
            "gpt-4": tiktoken.encoding_for_model("gpt-4"),
            "gpt-3.5": tiktoken.encoding_for_model("gpt-3.5-turbo"),
        }

        # Bind FocusIn event to window
        self.root.bind("<FocusIn>", lambda event: self.count_tokens())

        # Initialize
        self.root.mainloop()

    def count_tokens(self):
        # Get message from clipboard
        message = pyperclip.paste()

        # Check if message is empty
        if not message:
            self.textbox.delete("1.0", tk.END)
            self.textbox.insert(tk.END, "Clipboard is empty!")
            return

        # Get model encodings and token counts
        token_counts = {}
        for model, encoder in self.token_encoders.items():
            token_counts[model] = str(len(encoder.encode(message)))

        # Display token counts
        self.textbox.delete("1.0", tk.END)
        for model, count in token_counts.items():
            display_string = f"{model}: {count}\n"
            self.textbox.insert(tk.END, display_string)


if __name__ == "__main__":
    TokenCounter()

双击后,有一个小窗口,点击按钮/获取焦点 时自动读取 剪切板 上的文字,并计算token

(gpt-3.5-turbo和gpt-4计算的token是一样的)
"库"占一个token,"啊"占两个token,

标签:__,self,tiktoken,token,tk,chatgpt,root,model
From: https://www.cnblogs.com/aminor/p/17378436.html

相关文章

  • 《花雕学AI》WeTab+ChatGPT:让浏览器变成你的智能助手
    引言:浏览器是我们日常使用的最重要的工具之一,它可以帮助我们获取信息、娱乐、学习、工作等。但是,传统的浏览器往往不能满足我们的个性化需求,也不能给我们提供智能化的服务。那么,有没有一种浏览器可以让我们的体验更加高效、有趣、个性化呢?答案是肯定的。WeTab和ChatGPT就是这样......
  • 零代码基础,一分钟教你快速搭建微信ChatGPT机器人!
    本教程收集于:ChatGPT聊天机器人搭建全攻略汇总:精心整理Github登录账号后,先Forck下仓库:https://github.com/zhayujie/chatgpt-on-wechat功能介绍:多端部署:有多种部署方式可选择且功能完备,目前已支持个人微信,微信公众号和企业微信应用等部署方式基础对话:私聊及群聊的消息智能......
  • UDP广播相关知识,chatGPT回答的
    1路由器和交换机哪个成环会引起广播风暴路由器和交换机都可能引起广播风暴,但是在成环的情况下,交换机更容易引起广播风暴。当交换机形成环路时,广播帧会在网络中不断循环,并且不断地复制并增加它们的数量,最终导致网络拥塞甚至崩溃。为了避免这种情况,网络管理员应该采取措施,例如使用S......
  • 面向开发者的ChatGPT提示工程-1引言
    简介作者吴恩达教授欢迎来到本课程,我们将为开发人员介绍ChatGPT提示工程。本课程由IsaFulford教授和我一起授课。IsaFulford是OpenAI的技术团队成员,曾开发过受欢迎的ChatGPT检索插件,并且在教授人们如何在产品中使用LLM或LLM技术方面做出了很大贡献。她还参与......
  • 与chatGPT谈TyptScript接口问题
    与chatGPT谈TyptScript接口问题问1:能给我说说c#中的inteface与typescript中的inteface的不同与相同吗?答1:C#中的Interface和TypeScript中的Interface有一些相似之处,但也有一些不同之处。相同点:Interface都是用来定义对象的结构和行为的。都支持继承和多态的概念。......
  • ChatGPT 调教日记(一):Markdown 解析器
    我最近打算写个Markdown解析器来普及Makrdown的扩展标准。在自己思考之前,我打算首先问ChatGPT,然后先问它几个简单的问题来了解它是否真的知道这个标记语言。我觉得Markdown是全世界用的第二多的标记语言(仅次于HTML),它不可能不知道。ROUND0x01由于正则表达式等价于正则文......
  • NLP 中 Embedding(词嵌入) 和 Tokenizer(分词器) 分别是什么?
    NLP中Embedding(词嵌入)和Tokenizer(分词器)分别是什么?Embedding(词嵌入)和Tokenizer(分词器)是在自然语言处理中常用的两种技术,用于将文本转换为计算机可以处理的数字表示。Tokenizer(分词器)是将文本转换为单词或子词序列的过程。在自然语言处理中,文本通常是由一系列单词或子词组......
  • ChatGPT最全提示词Prompts总结,看这一篇就够了!
    以下几乎涵盖了各类人群想要使用ChatGPT的所有提示词,需要的朋友可以直接复制粘贴使用。从翻译到整理耗费超过2个小时,如果内容对大家有帮助,请不要吝啬你们的喜欢、点赞、关注~​如何正确的提问?担任创业技术律师我将要求您准备一页纸的设计合作伙伴协议草案,该协议是一家拥有I......
  • 微信公众平台开发——如何保证access_token长期有效?
    【编者按】由CSDN和《程序员》杂志联合主办的 2014年微信开发者大会将于8月23日在北京举行。内容涵盖企业服务号开发和高级应用、企业号开发、业务系统对接、高级接口运用、微信支付、智能客服与LBS、HTML5社交应用、微信电商、微信广告自助平台等多方面。作为一线微信开发商云......
  • ChatGPT背后的打工人:你不干,有的是AI干
    AI“出圈”如今,数字技术发展速度惊人,AI提高了社会生产效率,更真切地冲击到原有的生产秩序。年初AI技术的爆发,让国内看到了进一步降本增效的希望。国内多家互联网企业相继推出类ChatGPT产品,复旦大学邱锡鹏教授团队发布国内第一个对话式大型语言模型MOSS,度推出类ChatGPT产品“文心一......