mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-16 02:39:13 +00:00
Initialize EncodingManager with select model encoding, Code refactoring (#68)
This commit is contained in:
parent
f4be55b213
commit
cc66ed9f74
21 changed files with 91 additions and 116 deletions
32
src/main/java/ee/carlrobert/codegpt/EncodingManager.java
Normal file
32
src/main/java/ee/carlrobert/codegpt/EncodingManager.java
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
package ee.carlrobert.codegpt;
|
||||
|
||||
import com.knuddels.jtokkit.Encodings;
|
||||
import com.knuddels.jtokkit.api.Encoding;
|
||||
import com.knuddels.jtokkit.api.EncodingRegistry;
|
||||
import ee.carlrobert.codegpt.state.settings.SettingsState;
|
||||
import ee.carlrobert.openai.client.completion.chat.request.ChatCompletionMessage;
|
||||
|
||||
public class EncodingManager {
|
||||
|
||||
private static final EncodingManager instance = new EncodingManager();
|
||||
private final EncodingRegistry registry = Encodings.newDefaultEncodingRegistry();
|
||||
private Encoding encoding;
|
||||
|
||||
private EncodingManager() {
|
||||
var settings = SettingsState.getInstance();
|
||||
setEncoding(settings.isChatCompletionOptionSelected ? settings.chatCompletionBaseModel : settings.textCompletionBaseModel);
|
||||
}
|
||||
|
||||
public static EncodingManager getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void setEncoding(String modelName) {
|
||||
this.encoding = registry.getEncodingForModel(modelName).orElseThrow();
|
||||
}
|
||||
|
||||
public int countMessageTokens(ChatCompletionMessage message) {
|
||||
var tokensPerMessage = 4; // every message follows <|start|>{role/name}\n{content}<|end|>\n
|
||||
return encoding.countTokens(message.getRole() + message.getContent()) + tokensPerMessage;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue