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数量
    • tokens

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

      public static int tokens(String modelName, Object functionCall, List<Function> functions)
    • decode

      public static String decode(String modelName, List<Integer> encoded)
      通过模型名称和encoded编码数组,反推字符串文本
      Parameters:
      modelName -
      encoded -
      Returns:
    • getModelTypeByName

      public static ModelType getModelTypeByName(String name)
      获取modelType
      Parameters:
      name -
      Returns: