Package xyz.felh.openai.jtokkit.utils
Class TikTokenUtils
java.lang.Object
xyz.felh.openai.jtokkit.utils.TikTokenUtils
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String通过模型名称和encoded编码数组,反推字符串文本static String通过Encoding和encoded数组反推text信息static Stringdecode(EncodingType encodingType, List<Integer> encoded) 通过EncodingType和encoded编码数组,反推字符串文本获取encode的编码数组,通过模型名称通过Encoding和text获取编码数组encode(EncodingType encodingType, String text) 获取encode的编码数组static int计算request的token数量static intestimateTokensInMessage(String modelName, ChatMessage message) 通过模型名称计算messages获取编码数组 参考官方的处理逻辑:https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynbstatic intestimateTokensInMessages(String modelName, List<ChatMessage> messages) static intestimateTokensInMessages(String modelName, List<ChatMessage> messages, List<Tool> tools) static intestimateTokensInTools(String modelName, List<Tool> tools) static EncodinggetEncoding(String modelName) 获取一个Encoding对象,通过模型名称static EncodinggetEncoding(EncodingType encodingType) 获取一个Encoding对象,通过Encoding类型static ModelTypegetModelTypeByName(String name) 获取modelTypestatic booleanisBlank(CharSequence str) static booleanisBlankChar(char c) static booleanisBlankChar(int c) static booleanisNotBlank(CharSequence str) static intstatic int通过模型名称, 计算指定字符串的tokensstatic int通过Encoding计算text信息的tokensstatic inttokens(EncodingType encodingType, String text) 计算指定字符串的tokens,通过EncodingType
-
Constructor Details
-
TikTokenUtils
public TikTokenUtils()
-
-
Method Details
-
encode
通过Encoding和text获取编码数组- Parameters:
enc- Encoding类型text- 文本信息- Returns:
- 编码数组
-
tokens
通过Encoding计算text信息的tokens- Parameters:
enc- Encoding类型text- 文本信息- Returns:
- tokens数量
-
decode
通过Encoding和encoded数组反推text信息- Parameters:
enc- Encodingencoded- 编码数组- Returns:
- 编码数组对应的文本信息
-
getEncoding
获取一个Encoding对象,通过Encoding类型- Parameters:
encodingType- encodingType- Returns:
- Encoding
-
encode
获取encode的编码数组- Parameters:
text- 文本信息- Returns:
- 编码数组
-
tokens
计算指定字符串的tokens,通过EncodingType- Parameters:
encodingType- encodingTypetext- 文本信息- Returns:
- tokens数量
-
decode
通过EncodingType和encoded编码数组,反推字符串文本- Parameters:
encodingType- encodingTypeencoded- 编码数组- Returns:
- 编码数组对应的字符串
-
getEncoding
获取一个Encoding对象,通过模型名称- Parameters:
modelName- 模型名称- Returns:
- Encoding
-
encode
获取encode的编码数组,通过模型名称- Parameters:
text- 文本信息- Returns:
- 编码数组
-
tokens
通过模型名称, 计算指定字符串的tokens- Parameters:
modelName- 模型名称text- 文本信息- Returns:
- tokens数量
-
estimateTokens
计算request的token数量- Parameters:
request- CreateChatCompletionRequest- Returns:
- tokens count
-
estimateTokensInTools
-
estimateTokensInMessages
-
estimateTokensInMessages
public static int estimateTokensInMessages(String modelName, List<ChatMessage> messages, List<Tool> tools) -
estimateTokensInMessage
通过模型名称计算messages获取编码数组 参考官方的处理逻辑:https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb- Parameters:
modelName- 模型名称message- 消息体- Returns:
- tokens数量
-
tokens
-
decode
通过模型名称和encoded编码数组,反推字符串文本- Parameters:
modelName-encoded-- Returns:
-
getModelTypeByName
获取modelType- Parameters:
name-- Returns:
-
isBlankChar
public static boolean isBlankChar(int c) -
isBlankChar
public static boolean isBlankChar(char c) -
isNotBlank
-
isBlank
-