mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-12 05:51:28 +00:00
You API integration (#203)
* Ability to configure custom service * Add example preset templates, rename module * Custom service client impl * Add YOU API integration * Remove/ignore generated antlr classes * Remove text completion models(deprecated) * Remove unused code, fix settings state sync * Display model name/icon in the tool window * Update chat history UI * Fix model/service sync * Clear plugin state * Fix minor bugs, add settings sync tests * UI changes * Separate model configuration * Add support for overriding the completion path * Update Find Bugs prompt
This commit is contained in:
parent
a860054360
commit
37af74ebdf
125 changed files with 1673 additions and 1537 deletions
|
|
@ -5,28 +5,23 @@ import com.intellij.openapi.components.Service;
|
|||
import com.knuddels.jtokkit.Encodings;
|
||||
import com.knuddels.jtokkit.api.Encoding;
|
||||
import com.knuddels.jtokkit.api.EncodingRegistry;
|
||||
import ee.carlrobert.codegpt.settings.state.ModelSettingsState;
|
||||
import ee.carlrobert.openai.client.completion.chat.request.ChatCompletionMessage;
|
||||
import com.knuddels.jtokkit.api.EncodingType;
|
||||
import ee.carlrobert.llm.client.openai.completion.chat.request.OpenAIChatCompletionMessage;
|
||||
|
||||
@Service
|
||||
public final class EncodingManager {
|
||||
|
||||
private final EncodingRegistry registry = Encodings.newDefaultEncodingRegistry();
|
||||
private Encoding encoding;
|
||||
private final Encoding encoding = registry.getEncoding(EncodingType.CL100K_BASE);
|
||||
|
||||
private EncodingManager() {
|
||||
setEncoding(ModelSettingsState.getInstance().getCompletionModel());
|
||||
}
|
||||
|
||||
public static EncodingManager getInstance() {
|
||||
return ApplicationManager.getApplication().getService(EncodingManager.class);
|
||||
}
|
||||
|
||||
public void setEncoding(String modelName) {
|
||||
this.encoding = registry.getEncodingForModel(modelName).orElseThrow();
|
||||
}
|
||||
|
||||
public int countMessageTokens(ChatCompletionMessage message) {
|
||||
public int countMessageTokens(OpenAIChatCompletionMessage 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