mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2025-06-04 01:28:58 -04:00
✨ feat: Add stream option to settings
This commit is contained in:
parent
c070fd5cfd
commit
16b77a5722
@ -106,7 +106,7 @@ void ClientInterface::sendMessage(const QString &message, bool includeCurrentFil
|
|||||||
|
|
||||||
QJsonObject providerRequest;
|
QJsonObject providerRequest;
|
||||||
providerRequest["model"] = Settings::generalSettings().caModel();
|
providerRequest["model"] = Settings::generalSettings().caModel();
|
||||||
providerRequest["stream"] = true;
|
providerRequest["stream"] = chatAssistantSettings.stream();
|
||||||
providerRequest["messages"] = m_chatModel->prepareMessagesForRequest(systemPrompt);
|
providerRequest["messages"] = m_chatModel->prepareMessagesForRequest(systemPrompt);
|
||||||
|
|
||||||
if (promptTemplate)
|
if (promptTemplate)
|
||||||
|
@ -174,7 +174,9 @@ void LLMClientInterface::handleCompletion(const QJsonObject &request)
|
|||||||
QString("%1%2").arg(Settings::generalSettings().ccUrl(), provider->completionEndpoint()));
|
QString("%1%2").arg(Settings::generalSettings().ccUrl(), provider->completionEndpoint()));
|
||||||
config.apiKey = Settings::codeCompletionSettings().apiKey();
|
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();
|
config.multiLineCompletion = completeSettings.multiLineCompletion();
|
||||||
|
|
||||||
|
@ -54,6 +54,10 @@ ChatAssistantSettings::ChatAssistantSettings()
|
|||||||
sharingCurrentFile.setLabelText(Tr::tr("Share Current File With Assistant by Default"));
|
sharingCurrentFile.setLabelText(Tr::tr("Share Current File With Assistant by Default"));
|
||||||
sharingCurrentFile.setDefaultValue(true);
|
sharingCurrentFile.setDefaultValue(true);
|
||||||
|
|
||||||
|
stream.setSettingsKey(Constants::CA_STREAM);
|
||||||
|
stream.setDefaultValue(true);
|
||||||
|
stream.setLabelText(Tr::tr("Enable stream option"));
|
||||||
|
|
||||||
// General Parameters Settings
|
// General Parameters Settings
|
||||||
temperature.setSettingsKey(Constants::CA_TEMPERATURE);
|
temperature.setSettingsKey(Constants::CA_TEMPERATURE);
|
||||||
temperature.setLabelText(Tr::tr("Temperature:"));
|
temperature.setLabelText(Tr::tr("Temperature:"));
|
||||||
@ -158,28 +162,30 @@ ChatAssistantSettings::ChatAssistantSettings()
|
|||||||
ollamaGrid.addRow({ollamaLivetime});
|
ollamaGrid.addRow({ollamaLivetime});
|
||||||
ollamaGrid.addRow({contextWindow});
|
ollamaGrid.addRow({contextWindow});
|
||||||
|
|
||||||
return Column{Row{Stretch{1}, resetToDefaults},
|
return Column{
|
||||||
Space{8},
|
Row{Stretch{1}, resetToDefaults},
|
||||||
Group{title(Tr::tr("Chat Settings")),
|
Space{8},
|
||||||
Column{Row{chatTokensThreshold, Stretch{1}}, sharingCurrentFile}},
|
Group{
|
||||||
Space{8},
|
title(Tr::tr("Chat Settings")),
|
||||||
Group{
|
Column{Row{chatTokensThreshold, Stretch{1}}, sharingCurrentFile, stream}},
|
||||||
title(Tr::tr("General Parameters")),
|
Space{8},
|
||||||
Row{genGrid, Stretch{1}},
|
Group{
|
||||||
},
|
title(Tr::tr("General Parameters")),
|
||||||
Space{8},
|
Row{genGrid, Stretch{1}},
|
||||||
Group{title(Tr::tr("Advanced Parameters")),
|
},
|
||||||
Column{Row{advancedGrid, Stretch{1}}}},
|
Space{8},
|
||||||
Space{8},
|
Group{title(Tr::tr("Advanced Parameters")), Column{Row{advancedGrid, Stretch{1}}}},
|
||||||
Group{title(Tr::tr("Context Settings")),
|
Space{8},
|
||||||
Column{
|
Group{
|
||||||
Row{useSystemPrompt, Stretch{1}},
|
title(Tr::tr("Context Settings")),
|
||||||
systemPrompt,
|
Column{
|
||||||
}},
|
Row{useSystemPrompt, Stretch{1}},
|
||||||
Group{title(Tr::tr("Ollama Settings")), Column{Row{ollamaGrid, Stretch{1}}}},
|
systemPrompt,
|
||||||
Space{8},
|
}},
|
||||||
Group{title(Tr::tr("API Configuration")), Column{apiKey}},
|
Group{title(Tr::tr("Ollama Settings")), Column{Row{ollamaGrid, Stretch{1}}}},
|
||||||
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);
|
QMessageBox::Yes | QMessageBox::No);
|
||||||
|
|
||||||
if (reply == QMessageBox::Yes) {
|
if (reply == QMessageBox::Yes) {
|
||||||
|
resetAspect(stream);
|
||||||
resetAspect(chatTokensThreshold);
|
resetAspect(chatTokensThreshold);
|
||||||
resetAspect(temperature);
|
resetAspect(temperature);
|
||||||
resetAspect(maxTokens);
|
resetAspect(maxTokens);
|
||||||
|
@ -35,6 +35,7 @@ public:
|
|||||||
// Chat settings
|
// Chat settings
|
||||||
Utils::IntegerAspect chatTokensThreshold{this};
|
Utils::IntegerAspect chatTokensThreshold{this};
|
||||||
Utils::BoolAspect sharingCurrentFile{this};
|
Utils::BoolAspect sharingCurrentFile{this};
|
||||||
|
Utils::BoolAspect stream{this};
|
||||||
|
|
||||||
// General Parameters Settings
|
// General Parameters Settings
|
||||||
Utils::DoubleAspect temperature{this};
|
Utils::DoubleAspect temperature{this};
|
||||||
|
@ -51,6 +51,10 @@ CodeCompletionSettings::CodeCompletionSettings()
|
|||||||
multiLineCompletion.setDefaultValue(false);
|
multiLineCompletion.setDefaultValue(false);
|
||||||
multiLineCompletion.setLabelText(Tr::tr("Enable Multiline Completion(experimental)"));
|
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.setSettingsKey(Constants::СС_START_SUGGESTION_TIMER);
|
||||||
startSuggestionTimer.setLabelText(Tr::tr("with delay(ms)"));
|
startSuggestionTimer.setLabelText(Tr::tr("with delay(ms)"));
|
||||||
startSuggestionTimer.setRange(10, 10000);
|
startSuggestionTimer.setRange(10, 10000);
|
||||||
@ -213,31 +217,35 @@ CodeCompletionSettings::CodeCompletionSettings()
|
|||||||
Row{useFilePathInContext, Stretch{1}},
|
Row{useFilePathInContext, Stretch{1}},
|
||||||
Row{useProjectChangesCache, maxChangesCacheSize, Stretch{1}}};
|
Row{useProjectChangesCache, maxChangesCacheSize, Stretch{1}}};
|
||||||
|
|
||||||
return Column{Row{Stretch{1}, resetToDefaults},
|
return Column{
|
||||||
Space{8},
|
Row{Stretch{1}, resetToDefaults},
|
||||||
Group{title(Tr::tr("Auto Completion Settings")),
|
Space{8},
|
||||||
Column{autoCompletion,
|
Group{
|
||||||
Space{8},
|
title(TrConstants::AUTO_COMPLETION_SETTINGS),
|
||||||
multiLineCompletion,
|
Column{
|
||||||
Row{autoCompletionCharThreshold,
|
autoCompletion,
|
||||||
autoCompletionTypingInterval,
|
Space{8},
|
||||||
startSuggestionTimer,
|
multiLineCompletion,
|
||||||
Stretch{1}}}},
|
stream,
|
||||||
Space{8},
|
Row{autoCompletionCharThreshold,
|
||||||
Group{title(Tr::tr("General Parameters")),
|
autoCompletionTypingInterval,
|
||||||
Column{
|
startSuggestionTimer,
|
||||||
Row{genGrid, Stretch{1}},
|
Stretch{1}}}},
|
||||||
}},
|
Space{8},
|
||||||
Space{8},
|
Group{
|
||||||
Group{title(Tr::tr("Advanced Parameters")),
|
title(Tr::tr("General Parameters")),
|
||||||
Column{Row{advancedGrid, Stretch{1}}}},
|
Column{
|
||||||
Space{8},
|
Row{genGrid, Stretch{1}},
|
||||||
Group{title(Tr::tr("Context Settings")), contextItem},
|
}},
|
||||||
Space{8},
|
Space{8},
|
||||||
Group{title(Tr::tr("Ollama Settings")), Column{Row{ollamaGrid, Stretch{1}}}},
|
Group{title(Tr::tr("Advanced Parameters")), Column{Row{advancedGrid, Stretch{1}}}},
|
||||||
Space{8},
|
Space{8},
|
||||||
Group{title(Tr::tr("API Configuration")), Column{apiKey}},
|
Group{title(Tr::tr("Context Settings")), contextItem},
|
||||||
Stretch{1}};
|
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) {
|
if (reply == QMessageBox::Yes) {
|
||||||
resetAspect(autoCompletion);
|
resetAspect(autoCompletion);
|
||||||
resetAspect(multiLineCompletion);
|
resetAspect(multiLineCompletion);
|
||||||
|
resetAspect(stream);
|
||||||
resetAspect(temperature);
|
resetAspect(temperature);
|
||||||
resetAspect(maxTokens);
|
resetAspect(maxTokens);
|
||||||
resetAspect(useTopP);
|
resetAspect(useTopP);
|
||||||
|
@ -35,6 +35,7 @@ public:
|
|||||||
// Auto Completion Settings
|
// Auto Completion Settings
|
||||||
Utils::BoolAspect autoCompletion{this};
|
Utils::BoolAspect autoCompletion{this};
|
||||||
Utils::BoolAspect multiLineCompletion{this};
|
Utils::BoolAspect multiLineCompletion{this};
|
||||||
|
Utils::BoolAspect stream{this};
|
||||||
|
|
||||||
Utils::IntegerAspect startSuggestionTimer{this};
|
Utils::IntegerAspect startSuggestionTimer{this};
|
||||||
Utils::IntegerAspect autoCompletionCharThreshold{this};
|
Utils::IntegerAspect autoCompletionCharThreshold{this};
|
||||||
|
@ -49,9 +49,11 @@ const char СС_AUTO_COMPLETION_CHAR_THRESHOLD[] = "QodeAssist.autoCompletionCha
|
|||||||
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 CC_MULTILINE_COMPLETION[] = "QodeAssist.ccMultilineCompletion";
|
const char CC_MULTILINE_COMPLETION[] = "QodeAssist.ccMultilineCompletion";
|
||||||
|
const char CC_STREAM[] = "QodeAssist.ccStream";
|
||||||
const char CUSTOM_JSON_TEMPLATE[] = "QodeAssist.customJsonTemplate";
|
const char CUSTOM_JSON_TEMPLATE[] = "QodeAssist.customJsonTemplate";
|
||||||
const char CA_TOKENS_THRESHOLD[] = "QodeAssist.caTokensThreshold";
|
const char CA_TOKENS_THRESHOLD[] = "QodeAssist.caTokensThreshold";
|
||||||
const char CA_SHARING_CURRENT_FILE[] = "QodeAssist.caSharingCurrentFile";
|
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_OPTIONS_ID[] = "QodeAssist.GeneralOptions";
|
||||||
const char QODE_ASSIST_GENERAL_SETTINGS_PAGE_ID[] = "QodeAssist.1GeneralSettingsPageId";
|
const char QODE_ASSIST_GENERAL_SETTINGS_PAGE_ID[] = "QodeAssist.1GeneralSettingsPageId";
|
||||||
|
@ -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 CUSTOM_URL[] = QT_TRANSLATE_NOOP("QtC::QodeAssist", "Enter custom URL");
|
||||||
inline const char ENTER_MODEL_MANUALLY_BUTTON[]
|
inline const char ENTER_MODEL_MANUALLY_BUTTON[]
|
||||||
= QT_TRANSLATE_NOOP("QtC::QodeAssist", "Enter Model Name Manually");
|
= 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
|
} // namespace TrConstants
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user