V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hxlgg01
V2EX  ›  问与答

Gemini API 的 token 到底是怎么计的?

  •  
  •   hxlgg01 · 7 天前 · 788 次点击

    最近在用 Gemini 的时候,发现它生成一段 7 行的小红书文案用了 4000 多个 token ,而我用它生成一段 20 行的数学题解析时,却只用了 1000 多个 token 。有没有人知道 Gemini 的 token 到底是怎么算的?

    4 条回复    2025-01-11 10:53:57 +08:00
    mumbler
        1
    mumbler  
       7 天前
    直接问 Gemini
    yinmin
        2
    yinmin  
       7 天前 via Android
    thinking 模型是会产生中间思考阶段的 token 的,总 token=input token+thinking token+output token
    pike0002
        3
    pike0002  
       7 天前
    基本的公式:统计分词后得到的所有 Token 的总数,包含:
    * 单词或子词
    * 空格(如果分词器将空格视为 Token )
    * 标点符号
    * 特殊控制标记(例如 <start>、<end> 等)
    对于中文的话,也是差不多,只是分词的规则不是太一样。比如基于单字的方式,那就是一个汉字,一个标点都算一个。还有基于单词(有意思的单词)。

    一般大家会用一些计算工具看一下它大概是多少。比如 Gemimi 就提供了接口可以本地计算。例子: https://www.pixelstech.net/article/1735013847-calculating-token-count-for-claude-api-using-go%3a-a-step-by-step-guide?lang=chinese

    也有现成的工具: https://www.pixelstech.net/application/tokencalculator
    pike0002
        4
    pike0002  
       7 天前
    @pike0002 给错例子了。应该是

    package gemini

    import (
    "context"
    "log"

    "cloud.google.com/go/vertexai/genai"
    "cloud.google.com/go/vertexai/genai/tokenizer"
    )

    // CalculateToken calculates the number of tokens in a given content using a specified encoding model.
    func CalculateToken(ctx context.Context, content string, encoding string) (int, error) {
    client, err := tokenizer.New(encoding)
    if err != nil {
    log.Printf("Failed to get encoding: %v", err)
    return 0, err
    }

    resp, err := client.CountTokens(genai.Text(content))
    if err != nil {
    log.Printf("Failed to count tokens: %v", err)
    return 0, err
    }
    return int(resp.TotalTokens), nil
    }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2633 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:59 · PVG 12:59 · LAX 20:59 · JFK 23:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.