diff --git a/ChatView/ClientInterface.cpp b/ChatView/ClientInterface.cpp index 93602c1..139daae 100644 --- a/ChatView/ClientInterface.cpp +++ b/ChatView/ClientInterface.cpp @@ -106,7 +106,7 @@ void ClientInterface::sendMessage(const QString &message, bool includeCurrentFil QJsonObject providerRequest; providerRequest["model"] = Settings::generalSettings().caModel(); - providerRequest["stream"] = true; + providerRequest["stream"] = chatAssistantSettings.stream(); providerRequest["messages"] = m_chatModel->prepareMessagesForRequest(systemPrompt); if (promptTemplate) diff --git a/LLMClientInterface.cpp b/LLMClientInterface.cpp index 3b56e21..329070b 100644 --- a/LLMClientInterface.cpp +++ b/LLMClientInterface.cpp @@ -174,7 +174,9 @@ void LLMClientInterface::handleCompletion(const QJsonObject &request) QString("%1%2").arg(Settings::generalSettings().ccUrl(), provider->completionEndpoint())); config.apiKey = Settings::codeCompletionSettings().apiKey(); - config.providerRequest = {{"model", Settings::generalSettings().ccModel()}, {"stream", true}}; + config.providerRequest + = {{"model", Settings::generalSettings().ccModel()}, + {"stream", Settings::codeCompletionSettings().stream()}}; config.multiLineCompletion = completeSettings.multiLineCompletion(); diff --git a/settings/ChatAssistantSettings.cpp b/settings/ChatAssistantSettings.cpp index 0e3ae0f..7fad551 100644 --- a/settings/ChatAssistantSettings.cpp +++ b/settings/ChatAssistantSettings.cpp @@ -54,6 +54,10 @@ ChatAssistantSettings::ChatAssistantSettings() sharingCurrentFile.setLabelText(Tr::tr("Share Current File With Assistant by Default")); sharingCurrentFile.setDefaultValue(true); + stream.setSettingsKey(Constants::CA_STREAM); + stream.setDefaultValue(true); + stream.setLabelText(Tr::tr("Enable stream option")); + // General Parameters Settings temperature.setSettingsKey(Constants::CA_TEMPERATURE); temperature.setLabelText(Tr::tr("Temperature:")); @@ -158,28 +162,30 @@ ChatAssistantSettings::ChatAssistantSettings() ollamaGrid.addRow({ollamaLivetime}); ollamaGrid.addRow({contextWindow}); - return Column{Row{Stretch{1}, resetToDefaults}, - Space{8}, - Group{title(Tr::tr("Chat Settings")), - Column{Row{chatTokensThreshold, Stretch{1}}, sharingCurrentFile}}, - Space{8}, - Group{ - title(Tr::tr("General Parameters")), - Row{genGrid, Stretch{1}}, - }, - Space{8}, - Group{title(Tr::tr("Advanced Parameters")), - Column{Row{advancedGrid, Stretch{1}}}}, - Space{8}, - Group{title(Tr::tr("Context Settings")), - Column{ - Row{useSystemPrompt, Stretch{1}}, - systemPrompt, - }}, - Group{title(Tr::tr("Ollama Settings")), Column{Row{ollamaGrid, Stretch{1}}}}, - Space{8}, - Group{title(Tr::tr("API Configuration")), Column{apiKey}}, - Stretch{1}}; + return Column{ + Row{Stretch{1}, resetToDefaults}, + Space{8}, + Group{ + title(Tr::tr("Chat Settings")), + Column{Row{chatTokensThreshold, Stretch{1}}, sharingCurrentFile, stream}}, + Space{8}, + Group{ + title(Tr::tr("General Parameters")), + Row{genGrid, Stretch{1}}, + }, + Space{8}, + Group{title(Tr::tr("Advanced Parameters")), Column{Row{advancedGrid, Stretch{1}}}}, + Space{8}, + Group{ + title(Tr::tr("Context Settings")), + Column{ + Row{useSystemPrompt, Stretch{1}}, + systemPrompt, + }}, + Group{title(Tr::tr("Ollama Settings")), Column{Row{ollamaGrid, Stretch{1}}}}, + Space{8}, + Group{title(Tr::tr("API Configuration")), Column{apiKey}}, + Stretch{1}}; }); } @@ -201,6 +207,7 @@ void ChatAssistantSettings::resetSettingsToDefaults() QMessageBox::Yes | QMessageBox::No); if (reply == QMessageBox::Yes) { + resetAspect(stream); resetAspect(chatTokensThreshold); resetAspect(temperature); resetAspect(maxTokens); diff --git a/settings/ChatAssistantSettings.hpp b/settings/ChatAssistantSettings.hpp index 303d068..a62cc8e 100644 --- a/settings/ChatAssistantSettings.hpp +++ b/settings/ChatAssistantSettings.hpp @@ -35,6 +35,7 @@ public: // Chat settings Utils::IntegerAspect chatTokensThreshold{this}; Utils::BoolAspect sharingCurrentFile{this}; + Utils::BoolAspect stream{this}; // General Parameters Settings Utils::DoubleAspect temperature{this}; diff --git a/settings/CodeCompletionSettings.cpp b/settings/CodeCompletionSettings.cpp index 53919ec..927ebc9 100644 --- a/settings/CodeCompletionSettings.cpp +++ b/settings/CodeCompletionSettings.cpp @@ -51,6 +51,10 @@ CodeCompletionSettings::CodeCompletionSettings() multiLineCompletion.setDefaultValue(false); multiLineCompletion.setLabelText(Tr::tr("Enable Multiline Completion(experimental)")); + stream.setSettingsKey(Constants::CC_STREAM); + stream.setDefaultValue(true); + stream.setLabelText(Tr::tr("Enable stream option")); + startSuggestionTimer.setSettingsKey(Constants::СС_START_SUGGESTION_TIMER); startSuggestionTimer.setLabelText(Tr::tr("with delay(ms)")); startSuggestionTimer.setRange(10, 10000); @@ -213,31 +217,35 @@ CodeCompletionSettings::CodeCompletionSettings() 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, - Row{autoCompletionCharThreshold, - autoCompletionTypingInterval, - startSuggestionTimer, - Stretch{1}}}}, - Space{8}, - Group{title(Tr::tr("General Parameters")), - Column{ - Row{genGrid, Stretch{1}}, - }}, - Space{8}, - Group{title(Tr::tr("Advanced Parameters")), - Column{Row{advancedGrid, Stretch{1}}}}, - Space{8}, - Group{title(Tr::tr("Context Settings")), contextItem}, - Space{8}, - Group{title(Tr::tr("Ollama Settings")), Column{Row{ollamaGrid, Stretch{1}}}}, - Space{8}, - Group{title(Tr::tr("API Configuration")), Column{apiKey}}, - Stretch{1}}; + return Column{ + Row{Stretch{1}, resetToDefaults}, + Space{8}, + Group{ + title(TrConstants::AUTO_COMPLETION_SETTINGS), + Column{ + autoCompletion, + Space{8}, + multiLineCompletion, + stream, + Row{autoCompletionCharThreshold, + autoCompletionTypingInterval, + startSuggestionTimer, + Stretch{1}}}}, + Space{8}, + Group{ + title(Tr::tr("General Parameters")), + Column{ + Row{genGrid, Stretch{1}}, + }}, + Space{8}, + Group{title(Tr::tr("Advanced Parameters")), Column{Row{advancedGrid, Stretch{1}}}}, + Space{8}, + Group{title(Tr::tr("Context Settings")), contextItem}, + Space{8}, + Group{title(Tr::tr("Ollama Settings")), Column{Row{ollamaGrid, Stretch{1}}}}, + Space{8}, + Group{title(Tr::tr("API Configuration")), Column{apiKey}}, + Stretch{1}}; }); } @@ -275,6 +283,7 @@ void CodeCompletionSettings::resetSettingsToDefaults() if (reply == QMessageBox::Yes) { resetAspect(autoCompletion); resetAspect(multiLineCompletion); + resetAspect(stream); resetAspect(temperature); resetAspect(maxTokens); resetAspect(useTopP); diff --git a/settings/CodeCompletionSettings.hpp b/settings/CodeCompletionSettings.hpp index c6b990c..310b1a3 100644 --- a/settings/CodeCompletionSettings.hpp +++ b/settings/CodeCompletionSettings.hpp @@ -35,6 +35,7 @@ public: // Auto Completion Settings Utils::BoolAspect autoCompletion{this}; Utils::BoolAspect multiLineCompletion{this}; + Utils::BoolAspect stream{this}; Utils::IntegerAspect startSuggestionTimer{this}; Utils::IntegerAspect autoCompletionCharThreshold{this}; diff --git a/settings/SettingsConstants.hpp b/settings/SettingsConstants.hpp index 124429b..3e33ccc 100644 --- a/settings/SettingsConstants.hpp +++ b/settings/SettingsConstants.hpp @@ -49,9 +49,11 @@ const char СС_AUTO_COMPLETION_CHAR_THRESHOLD[] = "QodeAssist.autoCompletionCha const char СС_AUTO_COMPLETION_TYPING_INTERVAL[] = "QodeAssist.autoCompletionTypingInterval"; const char MAX_FILE_THRESHOLD[] = "QodeAssist.maxFileThreshold"; const char CC_MULTILINE_COMPLETION[] = "QodeAssist.ccMultilineCompletion"; +const char CC_STREAM[] = "QodeAssist.ccStream"; const char CUSTOM_JSON_TEMPLATE[] = "QodeAssist.customJsonTemplate"; const char CA_TOKENS_THRESHOLD[] = "QodeAssist.caTokensThreshold"; const char CA_SHARING_CURRENT_FILE[] = "QodeAssist.caSharingCurrentFile"; +const char CA_STREAM[] = "QodeAssist.caStream"; const char QODE_ASSIST_GENERAL_OPTIONS_ID[] = "QodeAssist.GeneralOptions"; const char QODE_ASSIST_GENERAL_SETTINGS_PAGE_ID[] = "QodeAssist.1GeneralSettingsPageId"; diff --git a/settings/SettingsTr.hpp b/settings/SettingsTr.hpp index 1cf84ed..19e0a0e 100644 --- a/settings/SettingsTr.hpp +++ b/settings/SettingsTr.hpp @@ -79,6 +79,8 @@ inline const char PREDEFINED_URL[] inline const char CUSTOM_URL[] = QT_TRANSLATE_NOOP("QtC::QodeAssist", "Enter custom URL"); inline const char ENTER_MODEL_MANUALLY_BUTTON[] = QT_TRANSLATE_NOOP("QtC::QodeAssist", "Enter Model Name Manually"); +inline const char AUTO_COMPLETION_SETTINGS[] + = QT_TRANSLATE_NOOP("QtC::QodeAssist", "Auto Completion Settings"); } // namespace TrConstants