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通过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, int toolMessageSize) 通过模型名称计算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 booleanisBlank(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
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
-
isBlank
-