Class TikTokenUtils

java.lang.Object
xyz.felh.openai.jtokkit.utils.TikTokenUtils

public class TikTokenUtils extends Object
  • Constructor Details

    • TikTokenUtils

      public TikTokenUtils()
  • Method Details

    • encode

      public static List<Integer> encode(Encoding enc, String text)
      通过Encoding和text获取编码数组
      Parameters:
      enc - Encoding类型
      text - 文本信息
      Returns:
      编码数组
    • tokens

      public static int tokens(Encoding enc, String text)
      通过Encoding计算text信息的tokens
      Parameters:
      enc - Encoding类型
      text - 文本信息
      Returns:
      tokens数量
    • decode

      public static String decode(Encoding enc, List<Integer> encoded)
      通过Encoding和encoded数组反推text信息
      Parameters:
      enc - Encoding
      encoded - 编码数组
      Returns:
      编码数组对应的文本信息
    • getEncoding

      public static Encoding getEncoding(EncodingType encodingType)
      获取一个Encoding对象,通过Encoding类型
      Parameters:
      encodingType - encodingType
      Returns:
      Encoding
    • encode

      public static List<Integer> encode(EncodingType encodingType, String text)
      获取encode的编码数组
      Parameters:
      text - 文本信息
      Returns:
      编码数组
    • tokens

      public static int tokens(EncodingType encodingType, String text)
      计算指定字符串的tokens,通过EncodingType
      Parameters:
      encodingType - encodingType
      text - 文本信息
      Returns:
      tokens数量
    • decode

      public static String decode(EncodingType encodingType, List<Integer> encoded)
      通过EncodingType和encoded编码数组,反推字符串文本
      Parameters:
      encodingType - encodingType
      encoded - 编码数组
      Returns:
      编码数组对应的字符串
    • getEncoding

      public static Encoding getEncoding(String modelName)
      获取一个Encoding对象,通过模型名称
      Parameters:
      modelName - 模型名称
      Returns:
      Encoding
    • encode

      public static List<Integer> encode(String modelName, String text)
      获取encode的编码数组,通过模型名称
      Parameters:
      text - 文本信息
      Returns:
      编码数组
    • tokens

      public static int tokens(String modelName, String text)
      通过模型名称, 计算指定字符串的tokens
      Parameters:
      modelName - 模型名称
      text - 文本信息
      Returns:
      tokens数量
    • estimateTokens

      public static int estimateTokens(CreateChatCompletionRequest request)
      计算request的token数量
      Parameters:
      request - CreateChatCompletionRequest
      Returns:
      tokens count
    • estimateTokensInTools

      public static int estimateTokensInTools(String modelName, List<Tool> tools)
    • estimateTokensInMessages

      public static int estimateTokensInMessages(String modelName, List<ChatMessage> messages)
    • estimateTokensInMessages

      public static int estimateTokensInMessages(String modelName, List<ChatMessage> messages, List<Tool> tools)
    • estimateTokensInMessage

      public static int estimateTokensInMessage(String modelName, ChatMessage message, int toolMessageSize)
      通过模型名称计算messages获取编码数组 参考官方的处理逻辑:https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb
      Parameters:
      modelName - 模型名称
      message - 消息体
      Returns:
      tokens数量
    • tokens

      public static int tokens(String modelName, Object functionCall, List<Tool> tools)
    • isBlank

      public static boolean isBlank(CharSequence str)