mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2025-06-03 00:58:34 -04:00
Rework Code Completion Settings
This commit is contained in:
parent
b141e54e3e
commit
2acaef553d
@ -26,10 +26,12 @@
|
|||||||
#include <llmcore/RequestConfig.hpp>
|
#include <llmcore/RequestConfig.hpp>
|
||||||
#include <texteditor/textdocument.h>
|
#include <texteditor/textdocument.h>
|
||||||
|
|
||||||
|
#include "ConfigurationManager.hpp"
|
||||||
#include "DocumentContextReader.hpp"
|
#include "DocumentContextReader.hpp"
|
||||||
#include "logger/Logger.hpp"
|
|
||||||
#include "llmcore/PromptTemplateManager.hpp"
|
#include "llmcore/PromptTemplateManager.hpp"
|
||||||
#include "llmcore/ProvidersManager.hpp"
|
#include "llmcore/ProvidersManager.hpp"
|
||||||
|
#include "logger/Logger.hpp"
|
||||||
|
#include "settings/CodeCompletionSettings.hpp"
|
||||||
#include "settings/ContextSettings.hpp"
|
#include "settings/ContextSettings.hpp"
|
||||||
#include "settings/GeneralSettings.hpp"
|
#include "settings/GeneralSettings.hpp"
|
||||||
|
|
||||||
@ -146,28 +148,33 @@ void LLMClientInterface::handleExit(const QJsonObject &request)
|
|||||||
|
|
||||||
void LLMClientInterface::handleCompletion(const QJsonObject &request)
|
void LLMClientInterface::handleCompletion(const QJsonObject &request)
|
||||||
{
|
{
|
||||||
// auto updatedContext = prepareContext(request);
|
auto updatedContext = prepareContext(request);
|
||||||
|
auto &completeSettings = Settings::codeCompletionSettings();
|
||||||
|
|
||||||
// LLMCore::LLMConfig config;
|
auto &configManager = ConfigurationManager::instance();
|
||||||
// config.requestType = LLMCore::RequestType::Fim;
|
auto provider = configManager.getCurrentProvider();
|
||||||
// config.provider = LLMCore::ProvidersManager::instance().getCurrentFimProvider();
|
auto promptTemplate = configManager.getCurrentTemplate();
|
||||||
// config.promptTemplate = LLMCore::PromptTemplateManager::instance().getCurrentFimTemplate();
|
|
||||||
// config.url = QUrl(QString("%1%2").arg(Settings::generalSettings().url(),
|
|
||||||
// Settings::generalSettings().endPoint()));
|
|
||||||
|
|
||||||
// config.providerRequest = {{"model", Settings::generalSettings().modelName.value()},
|
LLMCore::LLMConfig config;
|
||||||
// {"stream", true},
|
config.requestType = LLMCore::RequestType::Fim;
|
||||||
// {"stop",
|
config.provider = provider;
|
||||||
// QJsonArray::fromStringList(config.promptTemplate->stopWords())}};
|
config.promptTemplate = promptTemplate;
|
||||||
// config.multiLineCompletion = Settings::generalSettings().multiLineCompletion();
|
config.url = QUrl(
|
||||||
|
QString("%1%2").arg(Settings::generalSettings().ccUrl(), provider->completionEndpoint()));
|
||||||
|
|
||||||
// if (Settings::contextSettings().useSystemPrompt())
|
config.providerRequest = {{"model", Settings::generalSettings().ccModel()},
|
||||||
// config.providerRequest["system"] = Settings::contextSettings().systemPrompt();
|
{"stream", true},
|
||||||
|
{"stop",
|
||||||
|
QJsonArray::fromStringList(config.promptTemplate->stopWords())}};
|
||||||
|
config.multiLineCompletion = completeSettings.multiLineCompletion();
|
||||||
|
|
||||||
// config.promptTemplate->prepareRequest(config.providerRequest, updatedContext);
|
if (completeSettings.useSystemPrompt())
|
||||||
// config.provider->prepareRequest(config.providerRequest, LLMCore::RequestType::Fim);
|
config.providerRequest["system"] = completeSettings.systemPrompt();
|
||||||
|
|
||||||
// m_requestHandler.sendLLMRequest(config, request);
|
config.promptTemplate->prepareRequest(config.providerRequest, updatedContext);
|
||||||
|
config.provider->prepareRequest(config.providerRequest, LLMCore::RequestType::Fim);
|
||||||
|
|
||||||
|
m_requestHandler.sendLLMRequest(config, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
LLMCore::ContextData LLMClientInterface::prepareContext(const QJsonObject &request,
|
LLMCore::ContextData LLMClientInterface::prepareContext(const QJsonObject &request,
|
||||||
|
@ -7,6 +7,7 @@ add_library(QodeAssistSettings STATIC
|
|||||||
SettingsConstants.hpp
|
SettingsConstants.hpp
|
||||||
ButtonAspect.hpp
|
ButtonAspect.hpp
|
||||||
SettingsTr.hpp
|
SettingsTr.hpp
|
||||||
|
CodeCompletionSettings.hpp CodeCompletionSettings.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(QodeAssistSettings
|
target_link_libraries(QodeAssistSettings
|
||||||
|
297
settings/CodeCompletionSettings.cpp
Normal file
297
settings/CodeCompletionSettings.cpp
Normal file
@ -0,0 +1,297 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2024 Petr Mironychev
|
||||||
|
*
|
||||||
|
* This file is part of QodeAssist.
|
||||||
|
*
|
||||||
|
* QodeAssist is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* QodeAssist is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with QodeAssist. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "CodeCompletionSettings.hpp"
|
||||||
|
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <coreplugin/dialogs/ioptionspage.h>
|
||||||
|
#include <coreplugin/icore.h>
|
||||||
|
#include <utils/layoutbuilder.h>
|
||||||
|
|
||||||
|
#include "SettingsConstants.hpp"
|
||||||
|
#include "SettingsTr.hpp"
|
||||||
|
#include "SettingsUtils.hpp"
|
||||||
|
|
||||||
|
namespace QodeAssist::Settings {
|
||||||
|
|
||||||
|
CodeCompletionSettings &codeCompletionSettings()
|
||||||
|
{
|
||||||
|
static CodeCompletionSettings settings;
|
||||||
|
return settings;
|
||||||
|
}
|
||||||
|
|
||||||
|
CodeCompletionSettings::CodeCompletionSettings()
|
||||||
|
{
|
||||||
|
setAutoApply(false);
|
||||||
|
|
||||||
|
setDisplayName(Tr::tr("Code Completion"));
|
||||||
|
|
||||||
|
// Auto Completion Settings
|
||||||
|
autoCompletion.setSettingsKey(Constants::CC_AUTO_COMPLETION);
|
||||||
|
autoCompletion.setLabelText(Tr::tr("Enable Auto Complete"));
|
||||||
|
autoCompletion.setDefaultValue(true);
|
||||||
|
|
||||||
|
multiLineCompletion.setSettingsKey(Constants::CC_MULTILINE_COMPLETION);
|
||||||
|
multiLineCompletion.setDefaultValue(false);
|
||||||
|
multiLineCompletion.setLabelText(Tr::tr("Enable Multiline Completion(experimental)"));
|
||||||
|
|
||||||
|
// General Parameters Settings
|
||||||
|
temperature.setSettingsKey(Constants::CC_TEMPERATURE);
|
||||||
|
temperature.setLabelText(Tr::tr("Temperature:"));
|
||||||
|
temperature.setDefaultValue(0.2);
|
||||||
|
temperature.setRange(0.0, 10.0);
|
||||||
|
temperature.setSingleStep(0.1);
|
||||||
|
|
||||||
|
maxTokens.setSettingsKey(Constants::CC_MAX_TOKENS);
|
||||||
|
maxTokens.setLabelText(Tr::tr("Max Tokens:"));
|
||||||
|
maxTokens.setRange(-1, 10000);
|
||||||
|
maxTokens.setDefaultValue(50);
|
||||||
|
|
||||||
|
useTopP.setSettingsKey(Constants::CC_USE_TOP_P);
|
||||||
|
useTopP.setDefaultValue(false);
|
||||||
|
useTopP.setLabelText(Tr::tr("Top P:"));
|
||||||
|
|
||||||
|
topP.setSettingsKey(Constants::CC_TOP_P);
|
||||||
|
topP.setDefaultValue(0.9);
|
||||||
|
topP.setRange(0.0, 1.0);
|
||||||
|
topP.setSingleStep(0.1);
|
||||||
|
|
||||||
|
useTopK.setSettingsKey(Constants::CC_USE_TOP_K);
|
||||||
|
useTopK.setDefaultValue(false);
|
||||||
|
useTopK.setLabelText(Tr::tr("Top K:"));
|
||||||
|
|
||||||
|
topK.setSettingsKey(Constants::CC_TOP_K);
|
||||||
|
topK.setDefaultValue(50);
|
||||||
|
topK.setRange(1, 1000);
|
||||||
|
|
||||||
|
// Advanced Parameters
|
||||||
|
usePresencePenalty.setSettingsKey(Constants::CC_USE_PRESENCE_PENALTY);
|
||||||
|
usePresencePenalty.setDefaultValue(false);
|
||||||
|
usePresencePenalty.setLabelText(Tr::tr("Presence Penalty:"));
|
||||||
|
|
||||||
|
presencePenalty.setSettingsKey(Constants::CC_PRESENCE_PENALTY);
|
||||||
|
presencePenalty.setDefaultValue(0.0);
|
||||||
|
presencePenalty.setRange(-2.0, 2.0);
|
||||||
|
presencePenalty.setSingleStep(0.1);
|
||||||
|
|
||||||
|
useFrequencyPenalty.setSettingsKey(Constants::CC_USE_FREQUENCY_PENALTY);
|
||||||
|
useFrequencyPenalty.setDefaultValue(false);
|
||||||
|
useFrequencyPenalty.setLabelText(Tr::tr("Frequency Penalty:"));
|
||||||
|
|
||||||
|
frequencyPenalty.setSettingsKey(Constants::CC_FREQUENCY_PENALTY);
|
||||||
|
frequencyPenalty.setDefaultValue(0.0);
|
||||||
|
frequencyPenalty.setRange(-2.0, 2.0);
|
||||||
|
frequencyPenalty.setSingleStep(0.1);
|
||||||
|
|
||||||
|
// Context Settings
|
||||||
|
readFullFile.setSettingsKey(Constants::CC_READ_FULL_FILE);
|
||||||
|
readFullFile.setLabelText(Tr::tr("Read Full File"));
|
||||||
|
readFullFile.setDefaultValue(false);
|
||||||
|
|
||||||
|
readFileParts.setLabelText(Tr::tr("Read Strings Before Cursor:"));
|
||||||
|
readFileParts.setDefaultValue(true);
|
||||||
|
|
||||||
|
readStringsBeforeCursor.setSettingsKey(Constants::CC_READ_STRINGS_BEFORE_CURSOR);
|
||||||
|
readStringsBeforeCursor.setRange(0, 10000);
|
||||||
|
readStringsBeforeCursor.setDefaultValue(50);
|
||||||
|
|
||||||
|
readStringsAfterCursor.setSettingsKey(Constants::CC_READ_STRINGS_AFTER_CURSOR);
|
||||||
|
readStringsAfterCursor.setLabelText(Tr::tr("Read Strings After Cursor:"));
|
||||||
|
readStringsAfterCursor.setRange(0, 10000);
|
||||||
|
readStringsAfterCursor.setDefaultValue(30);
|
||||||
|
|
||||||
|
useSystemPrompt.setSettingsKey(Constants::CC_USE_SYSTEM_PROMPT);
|
||||||
|
useSystemPrompt.setDefaultValue(true);
|
||||||
|
useSystemPrompt.setLabelText(Tr::tr("Use System Prompt"));
|
||||||
|
|
||||||
|
systemPrompt.setSettingsKey(Constants::CC_SYSTEM_PROMPT);
|
||||||
|
systemPrompt.setDisplayStyle(Utils::StringAspect::TextEditDisplay);
|
||||||
|
systemPrompt.setDefaultValue(
|
||||||
|
"You are an expert C++, Qt, and QML code completion AI. Your task is to provide accurate "
|
||||||
|
"and "
|
||||||
|
"contextually appropriate code suggestions. Focus on completing the code in a way that "
|
||||||
|
"follows best practices, is efficient, and matches the surrounding code style. Prioritize "
|
||||||
|
"Qt and QML-specific completions when appropriate. Avoid adding comments or explanations "
|
||||||
|
"in your completions.");
|
||||||
|
|
||||||
|
useFilePathInContext.setSettingsKey(Constants::CC_USE_FILE_PATH_IN_CONTEXT);
|
||||||
|
useFilePathInContext.setDefaultValue(false);
|
||||||
|
useFilePathInContext.setLabelText(Tr::tr("Use File Path in Context"));
|
||||||
|
|
||||||
|
useProjectChangesCache.setSettingsKey(Constants::CC_USE_PROJECT_CHANGES_CACHE);
|
||||||
|
useProjectChangesCache.setDefaultValue(true);
|
||||||
|
useProjectChangesCache.setLabelText(Tr::tr("Max Changes Cache Size:"));
|
||||||
|
|
||||||
|
maxChangesCacheSize.setSettingsKey(Constants::CC_MAX_CHANGES_CACHE_SIZE);
|
||||||
|
maxChangesCacheSize.setRange(2, 1000);
|
||||||
|
maxChangesCacheSize.setDefaultValue(20);
|
||||||
|
|
||||||
|
// Ollama Settings
|
||||||
|
ollamaLivetime.setSettingsKey(Constants::CC_OLLAMA_LIVETIME);
|
||||||
|
ollamaLivetime.setToolTip(
|
||||||
|
Tr::tr("Time to suspend Ollama after completion request (in minutes), "
|
||||||
|
"Only Ollama, -1 to disable"));
|
||||||
|
ollamaLivetime.setLabelText("Livetime:");
|
||||||
|
ollamaLivetime.setDefaultValue("5m");
|
||||||
|
ollamaLivetime.setDisplayStyle(Utils::StringAspect::LineEditDisplay);
|
||||||
|
|
||||||
|
contextWindow.setSettingsKey(Constants::CC_OLLAMA_CONTEXT_WINDOW);
|
||||||
|
contextWindow.setLabelText(Tr::tr("Context Window:"));
|
||||||
|
contextWindow.setRange(-1, 10000);
|
||||||
|
contextWindow.setDefaultValue(2048);
|
||||||
|
|
||||||
|
// API Configuration Settings
|
||||||
|
apiKey.setSettingsKey(Constants::CC_API_KEY);
|
||||||
|
apiKey.setLabelText(Tr::tr("API Key:"));
|
||||||
|
apiKey.setDisplayStyle(Utils::StringAspect::LineEditDisplay);
|
||||||
|
apiKey.setPlaceHolderText(Tr::tr("Enter your API key here"));
|
||||||
|
|
||||||
|
resetToDefaults.m_buttonText = Tr::tr("Reset Page to Defaults");
|
||||||
|
|
||||||
|
readSettings();
|
||||||
|
|
||||||
|
readFileParts.setValue(!readFullFile.value());
|
||||||
|
|
||||||
|
setupConnections();
|
||||||
|
|
||||||
|
setLayouter([this]() {
|
||||||
|
using namespace Layouting;
|
||||||
|
|
||||||
|
auto genGrid = Grid{};
|
||||||
|
genGrid.addRow({Row{temperature}});
|
||||||
|
genGrid.addRow({Row{maxTokens}});
|
||||||
|
|
||||||
|
auto advancedGrid = Grid{};
|
||||||
|
advancedGrid.addRow({useTopP, topP});
|
||||||
|
advancedGrid.addRow({useTopK, topK});
|
||||||
|
advancedGrid.addRow({usePresencePenalty, presencePenalty});
|
||||||
|
advancedGrid.addRow({useFrequencyPenalty, frequencyPenalty});
|
||||||
|
|
||||||
|
auto ollamaGrid = Grid{};
|
||||||
|
ollamaGrid.addRow({ollamaLivetime});
|
||||||
|
ollamaGrid.addRow({contextWindow});
|
||||||
|
|
||||||
|
auto contextGrid = Grid{};
|
||||||
|
contextGrid.addRow({Row{readFullFile}});
|
||||||
|
contextGrid.addRow({Row{readFileParts, readStringsBeforeCursor, readStringsAfterCursor}});
|
||||||
|
auto contextItem = Column{Row{contextGrid, Stretch{1}},
|
||||||
|
Row{useSystemPrompt, Stretch{1}},
|
||||||
|
systemPrompt,
|
||||||
|
Row{useFilePathInContext, Stretch{1}},
|
||||||
|
Row{useProjectChangesCache, maxChangesCacheSize, Stretch{1}}};
|
||||||
|
|
||||||
|
return Column{Row{Stretch{1}, resetToDefaults},
|
||||||
|
Space{8},
|
||||||
|
Group{title(Tr::tr("Auto Completion Settings")),
|
||||||
|
Column{
|
||||||
|
autoCompletion,
|
||||||
|
Space{8},
|
||||||
|
multiLineCompletion,
|
||||||
|
}},
|
||||||
|
Space{16},
|
||||||
|
Group{title(Tr::tr("General Parameters")),
|
||||||
|
Column{
|
||||||
|
Row{genGrid, Stretch{1}},
|
||||||
|
}},
|
||||||
|
Space{16},
|
||||||
|
Group{title(Tr::tr("Advanced Parameters")),
|
||||||
|
Column{Row{advancedGrid, Stretch{1}}}},
|
||||||
|
Space{16},
|
||||||
|
Group{title(Tr::tr("Context Settings")), contextItem},
|
||||||
|
Space{16},
|
||||||
|
Group{title(Tr::tr("Ollama Settings")), Column{Row{ollamaGrid, Stretch{1}}}},
|
||||||
|
Space{16},
|
||||||
|
Group{title(Tr::tr("API Configuration")), Column{apiKey}},
|
||||||
|
Stretch{1}};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void CodeCompletionSettings::setupConnections()
|
||||||
|
{
|
||||||
|
connect(&resetToDefaults,
|
||||||
|
&ButtonAspect::clicked,
|
||||||
|
this,
|
||||||
|
&CodeCompletionSettings::resetSettingsToDefaults);
|
||||||
|
|
||||||
|
connect(&readFullFile, &Utils::BoolAspect::volatileValueChanged, this, [this]() {
|
||||||
|
if (readFullFile.volatileValue()) {
|
||||||
|
readFileParts.setValue(false);
|
||||||
|
writeSettings();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(&readFileParts, &Utils::BoolAspect::volatileValueChanged, this, [this]() {
|
||||||
|
if (readFileParts.volatileValue()) {
|
||||||
|
readFullFile.setValue(false);
|
||||||
|
writeSettings();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void CodeCompletionSettings::resetSettingsToDefaults()
|
||||||
|
{
|
||||||
|
QMessageBox::StandardButton reply;
|
||||||
|
reply = QMessageBox::question(
|
||||||
|
Core::ICore::dialogParent(),
|
||||||
|
Tr::tr("Reset Settings"),
|
||||||
|
Tr::tr("Are you sure you want to reset all settings to default values?"),
|
||||||
|
QMessageBox::Yes | QMessageBox::No);
|
||||||
|
|
||||||
|
if (reply == QMessageBox::Yes) {
|
||||||
|
resetAspect(autoCompletion);
|
||||||
|
resetAspect(multiLineCompletion);
|
||||||
|
resetAspect(temperature);
|
||||||
|
resetAspect(maxTokens);
|
||||||
|
resetAspect(useTopP);
|
||||||
|
resetAspect(topP);
|
||||||
|
resetAspect(useTopK);
|
||||||
|
resetAspect(topK);
|
||||||
|
resetAspect(usePresencePenalty);
|
||||||
|
resetAspect(presencePenalty);
|
||||||
|
resetAspect(useFrequencyPenalty);
|
||||||
|
resetAspect(frequencyPenalty);
|
||||||
|
resetAspect(readFullFile);
|
||||||
|
resetAspect(readFileParts);
|
||||||
|
resetAspect(readStringsBeforeCursor);
|
||||||
|
resetAspect(readStringsAfterCursor);
|
||||||
|
resetAspect(useSystemPrompt);
|
||||||
|
resetAspect(systemPrompt);
|
||||||
|
resetAspect(useFilePathInContext);
|
||||||
|
resetAspect(useProjectChangesCache);
|
||||||
|
resetAspect(maxChangesCacheSize);
|
||||||
|
resetAspect(ollamaLivetime);
|
||||||
|
resetAspect(contextWindow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CodeCompletionSettingsPage : public Core::IOptionsPage
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CodeCompletionSettingsPage()
|
||||||
|
{
|
||||||
|
setId(Constants::QODE_ASSIST_CODE_COMPLETION_SETTINGS_PAGE_ID);
|
||||||
|
setDisplayName(Tr::tr("Code Completion"));
|
||||||
|
setCategory(Constants::QODE_ASSIST_GENERAL_OPTIONS_CATEGORY);
|
||||||
|
setSettingsProvider([] { return &codeCompletionSettings(); });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const CodeCompletionSettingsPage codeCompletionSettingsPage;
|
||||||
|
|
||||||
|
} // namespace QodeAssist::Settings
|
81
settings/CodeCompletionSettings.hpp
Normal file
81
settings/CodeCompletionSettings.hpp
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2024 Petr Mironychev
|
||||||
|
*
|
||||||
|
* This file is part of QodeAssist.
|
||||||
|
*
|
||||||
|
* QodeAssist is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* QodeAssist is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with QodeAssist. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <utils/aspects.h>
|
||||||
|
|
||||||
|
#include "ButtonAspect.hpp"
|
||||||
|
|
||||||
|
namespace QodeAssist::Settings {
|
||||||
|
|
||||||
|
class CodeCompletionSettings : public Utils::AspectContainer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CodeCompletionSettings();
|
||||||
|
|
||||||
|
ButtonAspect resetToDefaults{this};
|
||||||
|
|
||||||
|
// Auto Completion Settings
|
||||||
|
Utils::BoolAspect autoCompletion{this};
|
||||||
|
Utils::BoolAspect multiLineCompletion{this};
|
||||||
|
|
||||||
|
// General Parameters Settings
|
||||||
|
Utils::DoubleAspect temperature{this};
|
||||||
|
Utils::IntegerAspect maxTokens{this};
|
||||||
|
|
||||||
|
Utils::BoolAspect useTopP{this};
|
||||||
|
Utils::DoubleAspect topP{this};
|
||||||
|
|
||||||
|
Utils::BoolAspect useTopK{this};
|
||||||
|
Utils::IntegerAspect topK{this};
|
||||||
|
|
||||||
|
// Advanced Parameters
|
||||||
|
Utils::BoolAspect usePresencePenalty{this};
|
||||||
|
Utils::DoubleAspect presencePenalty{this};
|
||||||
|
|
||||||
|
Utils::BoolAspect useFrequencyPenalty{this};
|
||||||
|
Utils::DoubleAspect frequencyPenalty{this};
|
||||||
|
|
||||||
|
// Context Settings
|
||||||
|
Utils::BoolAspect readFullFile{this};
|
||||||
|
Utils::BoolAspect readFileParts{this};
|
||||||
|
Utils::IntegerAspect readStringsBeforeCursor{this};
|
||||||
|
Utils::IntegerAspect readStringsAfterCursor{this};
|
||||||
|
Utils::BoolAspect useSystemPrompt{this};
|
||||||
|
Utils::StringAspect systemPrompt{this};
|
||||||
|
Utils::BoolAspect useFilePathInContext{this};
|
||||||
|
Utils::BoolAspect useProjectChangesCache{this};
|
||||||
|
Utils::IntegerAspect maxChangesCacheSize{this};
|
||||||
|
|
||||||
|
// Ollama Settings
|
||||||
|
Utils::StringAspect ollamaLivetime{this};
|
||||||
|
Utils::IntegerAspect contextWindow{this};
|
||||||
|
|
||||||
|
// API Configuration Settings
|
||||||
|
Utils::StringAspect apiKey{this};
|
||||||
|
|
||||||
|
private:
|
||||||
|
void setupConnections();
|
||||||
|
void resetSettingsToDefaults();
|
||||||
|
};
|
||||||
|
|
||||||
|
CodeCompletionSettings &codeCompletionSettings();
|
||||||
|
|
||||||
|
} // namespace QodeAssist::Settings
|
@ -41,29 +41,29 @@ ContextSettings::ContextSettings()
|
|||||||
|
|
||||||
setDisplayName(Tr::tr("Context"));
|
setDisplayName(Tr::tr("Context"));
|
||||||
|
|
||||||
readFullFile.setSettingsKey(Constants::READ_FULL_FILE);
|
readFullFile.setSettingsKey(Constants::CC_READ_FULL_FILE);
|
||||||
readFullFile.setLabelText(Tr::tr("Read Full File"));
|
readFullFile.setLabelText(Tr::tr("Read Full File"));
|
||||||
readFullFile.setDefaultValue(false);
|
readFullFile.setDefaultValue(false);
|
||||||
|
|
||||||
readStringsBeforeCursor.setSettingsKey(Constants::READ_STRINGS_BEFORE_CURSOR);
|
readStringsBeforeCursor.setSettingsKey(Constants::CC_READ_STRINGS_BEFORE_CURSOR);
|
||||||
readStringsBeforeCursor.setLabelText(Tr::tr("Read Strings Before Cursor"));
|
readStringsBeforeCursor.setLabelText(Tr::tr("Read Strings Before Cursor"));
|
||||||
readStringsBeforeCursor.setRange(0, 10000);
|
readStringsBeforeCursor.setRange(0, 10000);
|
||||||
readStringsBeforeCursor.setDefaultValue(50);
|
readStringsBeforeCursor.setDefaultValue(50);
|
||||||
|
|
||||||
readStringsAfterCursor.setSettingsKey(Constants::READ_STRINGS_AFTER_CURSOR);
|
readStringsAfterCursor.setSettingsKey(Constants::CC_READ_STRINGS_AFTER_CURSOR);
|
||||||
readStringsAfterCursor.setLabelText(Tr::tr("Read Strings After Cursor"));
|
readStringsAfterCursor.setLabelText(Tr::tr("Read Strings After Cursor"));
|
||||||
readStringsAfterCursor.setRange(0, 10000);
|
readStringsAfterCursor.setRange(0, 10000);
|
||||||
readStringsAfterCursor.setDefaultValue(30);
|
readStringsAfterCursor.setDefaultValue(30);
|
||||||
|
|
||||||
useFilePathInContext.setSettingsKey(Constants::USE_FILE_PATH_IN_CONTEXT);
|
useFilePathInContext.setSettingsKey(Constants::CC_USE_FILE_PATH_IN_CONTEXT);
|
||||||
useFilePathInContext.setDefaultValue(false);
|
useFilePathInContext.setDefaultValue(false);
|
||||||
useFilePathInContext.setLabelText(Tr::tr("Use File Path in Context"));
|
useFilePathInContext.setLabelText(Tr::tr("Use File Path in Context"));
|
||||||
|
|
||||||
useSystemPrompt.setSettingsKey(Constants::USE_SYSTEM_PROMPT);
|
useSystemPrompt.setSettingsKey(Constants::CC_USE_SYSTEM_PROMPT);
|
||||||
useSystemPrompt.setDefaultValue(true);
|
useSystemPrompt.setDefaultValue(true);
|
||||||
useSystemPrompt.setLabelText(Tr::tr("Use System Prompt"));
|
useSystemPrompt.setLabelText(Tr::tr("Use System Prompt"));
|
||||||
|
|
||||||
systemPrompt.setSettingsKey(Constants::SYSTEM_PROMPT);
|
systemPrompt.setSettingsKey(Constants::CC_SYSTEM_PROMPT);
|
||||||
systemPrompt.setDisplayStyle(Utils::StringAspect::TextEditDisplay);
|
systemPrompt.setDisplayStyle(Utils::StringAspect::TextEditDisplay);
|
||||||
systemPrompt.setDefaultValue(
|
systemPrompt.setDefaultValue(
|
||||||
"You are an expert C++, Qt, and QML code completion AI. Your task is to provide accurate "
|
"You are an expert C++, Qt, and QML code completion AI. Your task is to provide accurate "
|
||||||
@ -93,11 +93,11 @@ ContextSettings::ContextSettings()
|
|||||||
|
|
||||||
resetToDefaults.m_buttonText = Tr::tr("Reset Page to Defaults");
|
resetToDefaults.m_buttonText = Tr::tr("Reset Page to Defaults");
|
||||||
|
|
||||||
useProjectChangesCache.setSettingsKey(Constants::USE_PROJECT_CHANGES_CACHE);
|
useProjectChangesCache.setSettingsKey(Constants::CC_USE_PROJECT_CHANGES_CACHE);
|
||||||
useProjectChangesCache.setDefaultValue(true);
|
useProjectChangesCache.setDefaultValue(true);
|
||||||
useProjectChangesCache.setLabelText(Tr::tr("Use Project Changes Cache"));
|
useProjectChangesCache.setLabelText(Tr::tr("Use Project Changes Cache"));
|
||||||
|
|
||||||
maxChangesCacheSize.setSettingsKey(Constants::MAX_CHANGES_CACHE_SIZE);
|
maxChangesCacheSize.setSettingsKey(Constants::CC_MAX_CHANGES_CACHE_SIZE);
|
||||||
maxChangesCacheSize.setLabelText(Tr::tr("Max Changes Cache Size"));
|
maxChangesCacheSize.setLabelText(Tr::tr("Max Changes Cache Size"));
|
||||||
maxChangesCacheSize.setRange(2, 1000);
|
maxChangesCacheSize.setRange(2, 1000);
|
||||||
maxChangesCacheSize.setDefaultValue(20);
|
maxChangesCacheSize.setDefaultValue(20);
|
||||||
|
@ -42,7 +42,7 @@ PresetPromptsSettings::PresetPromptsSettings()
|
|||||||
|
|
||||||
setDisplayName(Tr::tr("Preset Prompts Params"));
|
setDisplayName(Tr::tr("Preset Prompts Params"));
|
||||||
|
|
||||||
fimTemperature.setSettingsKey(Constants::FIM_TEMPERATURE);
|
fimTemperature.setSettingsKey(Constants::CC_TEMPERATURE);
|
||||||
fimTemperature.setLabelText(Tr::tr("Temperature:"));
|
fimTemperature.setLabelText(Tr::tr("Temperature:"));
|
||||||
fimTemperature.setDefaultValue(0.2);
|
fimTemperature.setDefaultValue(0.2);
|
||||||
fimTemperature.setRange(0.0, 10.0);
|
fimTemperature.setRange(0.0, 10.0);
|
||||||
@ -54,7 +54,7 @@ PresetPromptsSettings::PresetPromptsSettings()
|
|||||||
chatTemperature.setRange(0.0, 10.0);
|
chatTemperature.setRange(0.0, 10.0);
|
||||||
chatTemperature.setSingleStep(0.1);
|
chatTemperature.setSingleStep(0.1);
|
||||||
|
|
||||||
fimOllamaLivetime.setSettingsKey(Constants::FIM_OLLAMA_LIVETIME);
|
fimOllamaLivetime.setSettingsKey(Constants::CC_OLLAMA_LIVETIME);
|
||||||
fimOllamaLivetime.setLabelText(
|
fimOllamaLivetime.setLabelText(
|
||||||
Tr::tr("Time to suspend Ollama after completion request (in minutes), "
|
Tr::tr("Time to suspend Ollama after completion request (in minutes), "
|
||||||
"Only Ollama, -1 to disable"));
|
"Only Ollama, -1 to disable"));
|
||||||
@ -68,7 +68,7 @@ PresetPromptsSettings::PresetPromptsSettings()
|
|||||||
chatOllamaLivetime.setDefaultValue("5m");
|
chatOllamaLivetime.setDefaultValue("5m");
|
||||||
chatOllamaLivetime.setDisplayStyle(Utils::StringAspect::LineEditDisplay);
|
chatOllamaLivetime.setDisplayStyle(Utils::StringAspect::LineEditDisplay);
|
||||||
|
|
||||||
fimMaxTokens.setSettingsKey(Constants::FIM_MAX_TOKENS);
|
fimMaxTokens.setSettingsKey(Constants::CC_MAX_TOKENS);
|
||||||
fimMaxTokens.setLabelText(Tr::tr("Max Tokens"));
|
fimMaxTokens.setLabelText(Tr::tr("Max Tokens"));
|
||||||
fimMaxTokens.setRange(-1, 10000);
|
fimMaxTokens.setRange(-1, 10000);
|
||||||
fimMaxTokens.setDefaultValue(50);
|
fimMaxTokens.setDefaultValue(50);
|
||||||
@ -78,10 +78,10 @@ PresetPromptsSettings::PresetPromptsSettings()
|
|||||||
chatMaxTokens.setRange(-1, 10000);
|
chatMaxTokens.setRange(-1, 10000);
|
||||||
chatMaxTokens.setDefaultValue(2000);
|
chatMaxTokens.setDefaultValue(2000);
|
||||||
|
|
||||||
fimUseTopP.setSettingsKey(Constants::FIM_USE_TOP_P);
|
fimUseTopP.setSettingsKey(Constants::CC_USE_TOP_P);
|
||||||
fimUseTopP.setDefaultValue(false);
|
fimUseTopP.setDefaultValue(false);
|
||||||
|
|
||||||
fimTopP.setSettingsKey(Constants::FIM_TOP_P);
|
fimTopP.setSettingsKey(Constants::CC_TOP_P);
|
||||||
fimTopP.setLabelText(Tr::tr("use top_p"));
|
fimTopP.setLabelText(Tr::tr("use top_p"));
|
||||||
fimTopP.setDefaultValue(0.9);
|
fimTopP.setDefaultValue(0.9);
|
||||||
fimTopP.setRange(0.0, 1.0);
|
fimTopP.setRange(0.0, 1.0);
|
||||||
@ -96,10 +96,10 @@ PresetPromptsSettings::PresetPromptsSettings()
|
|||||||
chatTopP.setRange(0.0, 1.0);
|
chatTopP.setRange(0.0, 1.0);
|
||||||
chatTopP.setSingleStep(0.1);
|
chatTopP.setSingleStep(0.1);
|
||||||
|
|
||||||
fimUseTopK.setSettingsKey(Constants::FIM_USE_TOP_K);
|
fimUseTopK.setSettingsKey(Constants::CC_USE_TOP_K);
|
||||||
fimUseTopK.setDefaultValue(false);
|
fimUseTopK.setDefaultValue(false);
|
||||||
|
|
||||||
fimTopK.setSettingsKey(Constants::FIM_TOP_K);
|
fimTopK.setSettingsKey(Constants::CC_TOP_K);
|
||||||
fimTopK.setLabelText(Tr::tr("use top_k"));
|
fimTopK.setLabelText(Tr::tr("use top_k"));
|
||||||
fimTopK.setDefaultValue(50);
|
fimTopK.setDefaultValue(50);
|
||||||
fimTopK.setRange(1, 1000);
|
fimTopK.setRange(1, 1000);
|
||||||
@ -112,10 +112,10 @@ PresetPromptsSettings::PresetPromptsSettings()
|
|||||||
chatTopK.setDefaultValue(50);
|
chatTopK.setDefaultValue(50);
|
||||||
chatTopK.setRange(1, 1000);
|
chatTopK.setRange(1, 1000);
|
||||||
|
|
||||||
fimUsePresencePenalty.setSettingsKey(Constants::FIM_USE_PRESENCE_PENALTY);
|
fimUsePresencePenalty.setSettingsKey(Constants::CC_USE_PRESENCE_PENALTY);
|
||||||
fimUsePresencePenalty.setDefaultValue(false);
|
fimUsePresencePenalty.setDefaultValue(false);
|
||||||
|
|
||||||
fimPresencePenalty.setSettingsKey(Constants::FIM_PRESENCE_PENALTY);
|
fimPresencePenalty.setSettingsKey(Constants::CC_PRESENCE_PENALTY);
|
||||||
fimPresencePenalty.setLabelText(Tr::tr("use presence_penalty"));
|
fimPresencePenalty.setLabelText(Tr::tr("use presence_penalty"));
|
||||||
fimPresencePenalty.setDefaultValue(0.0);
|
fimPresencePenalty.setDefaultValue(0.0);
|
||||||
fimPresencePenalty.setRange(-2.0, 2.0);
|
fimPresencePenalty.setRange(-2.0, 2.0);
|
||||||
@ -130,10 +130,10 @@ PresetPromptsSettings::PresetPromptsSettings()
|
|||||||
chatPresencePenalty.setRange(-2.0, 2.0);
|
chatPresencePenalty.setRange(-2.0, 2.0);
|
||||||
chatPresencePenalty.setSingleStep(0.1);
|
chatPresencePenalty.setSingleStep(0.1);
|
||||||
|
|
||||||
fimUseFrequencyPenalty.setSettingsKey(Constants::FIM_USE_FREQUENCY_PENALTY);
|
fimUseFrequencyPenalty.setSettingsKey(Constants::CC_USE_FREQUENCY_PENALTY);
|
||||||
fimUseFrequencyPenalty.setDefaultValue(false);
|
fimUseFrequencyPenalty.setDefaultValue(false);
|
||||||
|
|
||||||
fimFrequencyPenalty.setSettingsKey(Constants::FIM_FREQUENCY_PENALTY);
|
fimFrequencyPenalty.setSettingsKey(Constants::CC_FREQUENCY_PENALTY);
|
||||||
fimFrequencyPenalty.setLabelText(Tr::tr("use frequency_penalty"));
|
fimFrequencyPenalty.setLabelText(Tr::tr("use frequency_penalty"));
|
||||||
fimFrequencyPenalty.setDefaultValue(0.0);
|
fimFrequencyPenalty.setDefaultValue(0.0);
|
||||||
fimFrequencyPenalty.setRange(-2.0, 2.0);
|
fimFrequencyPenalty.setRange(-2.0, 2.0);
|
||||||
@ -148,7 +148,7 @@ PresetPromptsSettings::PresetPromptsSettings()
|
|||||||
chatFrequencyPenalty.setRange(-2.0, 2.0);
|
chatFrequencyPenalty.setRange(-2.0, 2.0);
|
||||||
chatFrequencyPenalty.setSingleStep(0.1);
|
chatFrequencyPenalty.setSingleStep(0.1);
|
||||||
|
|
||||||
fimApiKey.setSettingsKey(Constants::FIM_API_KEY);
|
fimApiKey.setSettingsKey(Constants::CC_API_KEY);
|
||||||
fimApiKey.setLabelText(Tr::tr("API Key:"));
|
fimApiKey.setLabelText(Tr::tr("API Key:"));
|
||||||
fimApiKey.setDisplayStyle(Utils::StringAspect::LineEditDisplay);
|
fimApiKey.setDisplayStyle(Utils::StringAspect::LineEditDisplay);
|
||||||
fimApiKey.setPlaceHolderText(Tr::tr("Enter your API key here"));
|
fimApiKey.setPlaceHolderText(Tr::tr("Enter your API key here"));
|
||||||
|
@ -37,35 +37,25 @@ const char CA_URL[] = "QodeAssist.caUrl";
|
|||||||
|
|
||||||
// settings
|
// settings
|
||||||
const char ENABLE_QODE_ASSIST[] = "QodeAssist.enableQodeAssist";
|
const char ENABLE_QODE_ASSIST[] = "QodeAssist.enableQodeAssist";
|
||||||
const char ENABLE_AUTO_COMPLETE[] = "QodeAssist.enableAutoComplete";
|
const char CC_AUTO_COMPLETION[] = "QodeAssist.ccAutoCompletion";
|
||||||
const char ENABLE_LOGGING[] = "QodeAssist.enableLogging";
|
const char ENABLE_LOGGING[] = "QodeAssist.enableLogging";
|
||||||
const char LLM_PROVIDERS[] = "QodeAssist.llmProviders";
|
|
||||||
const char URL[] = "QodeAssist.url";
|
|
||||||
const char END_POINT[] = "QodeAssist.endPoint";
|
|
||||||
const char MODEL_NAME[] = "QodeAssist.modelName";
|
|
||||||
const char SELECT_MODELS[] = "QodeAssist.selectModels";
|
|
||||||
const char FIM_PROMPTS[] = "QodeAssist.fimPrompts";
|
|
||||||
const char PROVIDER_PATHS[] = "QodeAssist.providerPaths";
|
const char PROVIDER_PATHS[] = "QodeAssist.providerPaths";
|
||||||
const char START_SUGGESTION_TIMER[] = "QodeAssist.startSuggestionTimer";
|
const char START_SUGGESTION_TIMER[] = "QodeAssist.startSuggestionTimer";
|
||||||
const char AUTO_COMPLETION_CHAR_THRESHOLD[] = "QodeAssist.autoCompletionCharThreshold";
|
const char AUTO_COMPLETION_CHAR_THRESHOLD[] = "QodeAssist.autoCompletionCharThreshold";
|
||||||
const char AUTO_COMPLETION_TYPING_INTERVAL[] = "QodeAssist.autoCompletionTypingInterval";
|
const char AUTO_COMPLETION_TYPING_INTERVAL[] = "QodeAssist.autoCompletionTypingInterval";
|
||||||
const char MAX_FILE_THRESHOLD[] = "QodeAssist.maxFileThreshold";
|
const char MAX_FILE_THRESHOLD[] = "QodeAssist.maxFileThreshold";
|
||||||
const char MULTILINE_COMPLETION[] = "QodeAssist.multilineCompletion";
|
const char CC_MULTILINE_COMPLETION[] = "QodeAssist.ccMultilineCompletion";
|
||||||
const char CUSTOM_JSON_TEMPLATE[] = "QodeAssist.customJsonTemplate";
|
const char CUSTOM_JSON_TEMPLATE[] = "QodeAssist.customJsonTemplate";
|
||||||
const char CHAT_LLM_PROVIDERS[] = "QodeAssist.chatLlmProviders";
|
|
||||||
const char CHAT_URL[] = "QodeAssist.chatUrl";
|
|
||||||
const char CHAT_END_POINT[] = "QodeAssist.chatEndPoint";
|
|
||||||
const char CHAT_MODEL_NAME[] = "QodeAssist.chatModelName";
|
|
||||||
const char CHAT_SELECT_MODELS[] = "QodeAssist.chatSelectModels";
|
|
||||||
const char CHAT_PROMPTS[] = "QodeAssist.chatPrompts";
|
|
||||||
const char CHAT_TOKENS_THRESHOLD[] = "QodeAssist.chatTokensThreshold";
|
const char CHAT_TOKENS_THRESHOLD[] = "QodeAssist.chatTokensThreshold";
|
||||||
|
|
||||||
const char QODE_ASSIST_GENERAL_OPTIONS_ID[] = "QodeAssist.GeneralOptions";
|
const char QODE_ASSIST_GENERAL_OPTIONS_ID[] = "QodeAssist.GeneralOptions";
|
||||||
const char QODE_ASSIST_GENERAL_SETTINGS_PAGE_ID[] = "QodeAssist.1GeneralSettingsPageId";
|
const char QODE_ASSIST_GENERAL_SETTINGS_PAGE_ID[] = "QodeAssist.1GeneralSettingsPageId";
|
||||||
const char QODE_ASSIST_CONTEXT_SETTINGS_PAGE_ID[] = "QodeAssist.2ContextSettingsPageId";
|
const char QODE_ASSIST_CODE_COMPLETION_SETTINGS_PAGE_ID[]
|
||||||
|
= "QodeAssist.2CodeCompletionSettingsPageId";
|
||||||
|
const char QODE_ASSIST_CONTEXT_SETTINGS_PAGE_ID[] = "QodeAssist.3ContextSettingsPageId";
|
||||||
const char QODE_ASSIST_PRESET_PROMPTS_SETTINGS_PAGE_ID[]
|
const char QODE_ASSIST_PRESET_PROMPTS_SETTINGS_PAGE_ID[]
|
||||||
= "QodeAssist.3PresetPromptsSettingsPageId";
|
= "QodeAssist.4PresetPromptsSettingsPageId";
|
||||||
const char QODE_ASSIST_CUSTOM_PROMPT_SETTINGS_PAGE_ID[] = "QodeAssist.4CustomPromptSettingsPageId";
|
const char QODE_ASSIST_CUSTOM_PROMPT_SETTINGS_PAGE_ID[] = "QodeAssist.5CustomPromptSettingsPageId";
|
||||||
|
|
||||||
const char QODE_ASSIST_GENERAL_OPTIONS_CATEGORY[] = "QodeAssist.Category";
|
const char QODE_ASSIST_GENERAL_OPTIONS_CATEGORY[] = "QodeAssist.Category";
|
||||||
const char QODE_ASSIST_GENERAL_OPTIONS_DISPLAY_CATEGORY[] = "Qode Assist";
|
const char QODE_ASSIST_GENERAL_OPTIONS_DISPLAY_CATEGORY[] = "Qode Assist";
|
||||||
@ -73,30 +63,31 @@ const char QODE_ASSIST_GENERAL_OPTIONS_DISPLAY_CATEGORY[] = "Qode Assist";
|
|||||||
const char QODE_ASSIST_REQUEST_SUGGESTION[] = "QodeAssist.RequestSuggestion";
|
const char QODE_ASSIST_REQUEST_SUGGESTION[] = "QodeAssist.RequestSuggestion";
|
||||||
|
|
||||||
// context settings
|
// context settings
|
||||||
const char READ_FULL_FILE[] = "QodeAssist.readFullFile";
|
const char CC_READ_FULL_FILE[] = "QodeAssist.ccReadFullFile";
|
||||||
const char READ_STRINGS_BEFORE_CURSOR[] = "QodeAssist.readStringsBeforeCursor";
|
const char CC_READ_STRINGS_BEFORE_CURSOR[] = "QodeAssist.ccReadStringsBeforeCursor";
|
||||||
const char READ_STRINGS_AFTER_CURSOR[] = "QodeAssist.readStringsAfterCursor";
|
const char CC_READ_STRINGS_AFTER_CURSOR[] = "QodeAssist.ccReadStringsAfterCursor";
|
||||||
const char USE_SYSTEM_PROMPT[] = "QodeAssist.useSystemPrompt";
|
const char CC_USE_SYSTEM_PROMPT[] = "QodeAssist.ccUseSystemPrompt";
|
||||||
const char USE_FILE_PATH_IN_CONTEXT[] = "QodeAssist.useFilePathInContext";
|
const char CC_USE_FILE_PATH_IN_CONTEXT[] = "QodeAssist.ccUseFilePathInContext";
|
||||||
const char SYSTEM_PROMPT[] = "QodeAssist.systemPrompt";
|
const char CC_SYSTEM_PROMPT[] = "QodeAssist.ccSystemPrompt";
|
||||||
const char USE_PROJECT_CHANGES_CACHE[] = "QodeAssist.useProjectChangesCache";
|
const char CC_USE_PROJECT_CHANGES_CACHE[] = "QodeAssist.ccUseProjectChangesCache";
|
||||||
const char MAX_CHANGES_CACHE_SIZE[] = "QodeAssist.maxChangesCacheSize";
|
const char CC_MAX_CHANGES_CACHE_SIZE[] = "QodeAssist.ccMaxChangesCacheSize";
|
||||||
const char USE_CHAT_SYSTEM_PROMPT[] = "QodeAssist.useChatSystemPrompt";
|
const char USE_CHAT_SYSTEM_PROMPT[] = "QodeAssist.useChatSystemPrompt";
|
||||||
const char CHAT_SYSTEM_PROMPT[] = "QodeAssist.chatSystemPrompt";
|
const char CHAT_SYSTEM_PROMPT[] = "QodeAssist.chatSystemPrompt";
|
||||||
|
|
||||||
// preset prompt settings
|
// preset prompt settings
|
||||||
const char FIM_TEMPERATURE[] = "QodeAssist.fimTemperature";
|
const char CC_TEMPERATURE[] = "QodeAssist.ccTemperature";
|
||||||
const char FIM_MAX_TOKENS[] = "QodeAssist.fimMaxTokens";
|
const char CC_MAX_TOKENS[] = "QodeAssist.ccMaxTokens";
|
||||||
const char FIM_USE_TOP_P[] = "QodeAssist.fimUseTopP";
|
const char CC_USE_TOP_P[] = "QodeAssist.ccUseTopP";
|
||||||
const char FIM_TOP_P[] = "QodeAssist.fimTopP";
|
const char CC_TOP_P[] = "QodeAssist.ccTopP";
|
||||||
const char FIM_USE_TOP_K[] = "QodeAssist.fimUseTopK";
|
const char CC_USE_TOP_K[] = "QodeAssist.ccUseTopK";
|
||||||
const char FIM_TOP_K[] = "QodeAssist.fimTopK";
|
const char CC_TOP_K[] = "QodeAssist.ccTopK";
|
||||||
const char FIM_USE_PRESENCE_PENALTY[] = "QodeAssist.fimUsePresencePenalty";
|
const char CC_USE_PRESENCE_PENALTY[] = "QodeAssist.ccUsePresencePenalty";
|
||||||
const char FIM_PRESENCE_PENALTY[] = "QodeAssist.fimPresencePenalty";
|
const char CC_PRESENCE_PENALTY[] = "QodeAssist.ccPresencePenalty";
|
||||||
const char FIM_USE_FREQUENCY_PENALTY[] = "QodeAssist.fimUseFrequencyPenalty";
|
const char CC_USE_FREQUENCY_PENALTY[] = "QodeAssist.fimUseFrequencyPenalty";
|
||||||
const char FIM_FREQUENCY_PENALTY[] = "QodeAssist.fimFrequencyPenalty";
|
const char CC_FREQUENCY_PENALTY[] = "QodeAssist.fimFrequencyPenalty";
|
||||||
const char FIM_OLLAMA_LIVETIME[] = "QodeAssist.fimOllamaLivetime";
|
const char CC_OLLAMA_LIVETIME[] = "QodeAssist.fimOllamaLivetime";
|
||||||
const char FIM_API_KEY[] = "QodeAssist.apiKey";
|
const char CC_OLLAMA_CONTEXT_WINDOW[] = "QodeAssist.ccOllamaContextWindow";
|
||||||
|
const char CC_API_KEY[] = "QodeAssist.apiKey";
|
||||||
const char CHAT_TEMPERATURE[] = "QodeAssist.chatTemperature";
|
const char CHAT_TEMPERATURE[] = "QodeAssist.chatTemperature";
|
||||||
const char CHAT_MAX_TOKENS[] = "QodeAssist.chatMaxTokens";
|
const char CHAT_MAX_TOKENS[] = "QodeAssist.chatMaxTokens";
|
||||||
const char CHAT_USE_TOP_P[] = "QodeAssist.chatUseTopP";
|
const char CHAT_USE_TOP_P[] = "QodeAssist.chatUseTopP";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user