Skip to content

Commit

Permalink
#3026 add: start implementing AI backend selector in main menu
Browse files Browse the repository at this point in the history
  • Loading branch information
pbek committed May 21, 2024
1 parent 8a1f02d commit 5b41574
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# QOwnNotes Changelog

## 24.5.5
- Try to fix build on very old build systems again (for [#3026](https://github.com/pbek/QOwnNotes/issues/3026))
- The scripting command `script.inputDialogGetItem` will now return an empty
string, if `Cancel` was clicked or `Escape` was pressed
- For more information please take a look at
Expand Down
30 changes: 28 additions & 2 deletions src/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10344,13 +10344,36 @@ void MainWindow::onAiBackendComboBoxCurrentIndexChanged(int index) {
void MainWindow::generateAiBackendComboBox() {
_aiBackendComboBox->blockSignals(true);
_aiBackendComboBox->clear();
_aiBackendComboBox->addItem(QStringLiteral("OpenAI"), QStringLiteral("openai"));
_aiBackendComboBox->addItem(QStringLiteral("Groq"), QStringLiteral("groq"));
auto backendNames = OpenAiService::instance()->getBackendNames();

for (const auto& key : backendNames.keys()) {
const QString&name = backendNames.value(key);
_aiBackendComboBox->addItem(name, key);
}

Utils::Gui::setComboBoxIndexByUserData(_aiBackendComboBox,
OpenAiService::instance()->getBackendId());
_aiBackendComboBox->blockSignals(false);
}

/**
* Puts items into the AI backend main menu group
* TODO: Implement MainWindow::generateAiBackendMainMenuGroup
*/
void MainWindow::generateAiBackendMainMenuGroup() {
// _aiBackendGroup->clear();
auto backendNames = OpenAiService::instance()->getBackendNames();

for (const auto& key : backendNames.keys()) {
const QString&name = backendNames.value(key);
// _aiBackendGroup->addItem(name, key);
}

// Utils::Gui::setComboBoxIndexByUserData(_aiBackendComboBox,
// OpenAiService::instance()->getBackendId());
// _aiBackendComboBox->blockSignals(false);
}

/**
* Sets the AI model when the AI model combo box index has changed
*/
Expand Down Expand Up @@ -11925,6 +11948,9 @@ void MainWindow::buildAiToolbarAndActions() {
aiModelWidgetAction->setObjectName(QStringLiteral("actionAiModelComboBox"));
aiModelWidgetAction->setText(tr("AI model selector"));
_aiToolbar->addAction(aiModelWidgetAction);


// _aiBackendGroup
}

void MainWindow::on_actionEnable_AI_toggled(bool arg1) {
Expand Down
1 change: 1 addition & 0 deletions src/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -1129,4 +1129,5 @@ class MainWindow : public QMainWindow {
void buildAiToolbarAndActions();
void generateAiBackendComboBox();
void generateAiModelComboBox();
void generateAiBackendMainMenuGroup();
};
7 changes: 7 additions & 0 deletions src/services/openaiservice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,19 @@ void OpenAiService::initializeBackends() {
QStringLiteral("https://api.openai.com/v1/chat/completions");
_backendApiBaseUrls[QStringLiteral("groq")] =
QStringLiteral("https://api.groq.com/openai/v1/chat/completions");

_backendNames[QStringLiteral("groq")] = QStringLiteral("Groq");
_backendNames[QStringLiteral("openai")] = QStringLiteral("OpenAI");
}

QStringList OpenAiService::getModelsForCurrentBackend() {
return getModelsForBackend(getBackendId());
}

QMap<QString, QString> OpenAiService::getBackendNames() {
return _backendNames;
}

QString OpenAiService::getApiBaseUrlForCurrentBackend() {
auto backendId = getBackendId();

Expand Down
2 changes: 2 additions & 0 deletions src/services/openaiservice.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,12 @@ class OpenAiService : public QObject {
static bool getEnabled();
QString complete(const QString& prompt);
void setApiKeyForCurrentBackend();
QMap<QString, QString> getBackendNames();

private:
QMap<QString, QStringList> _backendModels;
QMap<QString, QString> _backendApiBaseUrls;
QMap<QString, QString> _backendNames;
void initializeBackends();
static OpenAiService* createInstance(QObject* parent);
QString _backendId;
Expand Down

0 comments on commit 5b41574

Please sign in to comment.