7#include "ollamaconfigurewidget.h"
8#include "ollamacomboboxwidget.h"
9#include "ollamamanager.h"
10#include "ollamasettings.h"
12#include <KLineEditEventHandler>
13#include <KLocalizedString>
14#include <KMessageWidget>
17#include <QPlainTextEdit>
19OllamaConfigureWidget::OllamaConfigureWidget(
QWidget *parent)
23 , mModelComboBoxWidget(new OllamaComboBoxWidget(this))
27 mainLayout->setObjectName(QStringLiteral(
"mainLayout"));
28 mainLayout->setContentsMargins({});
30 mMessageWidget->setObjectName(QStringLiteral(
"mMessageWidget"));
31 mainLayout->addWidget(mMessageWidget);
32 mMessageWidget->setVisible(
false);
33 mMessageWidget->setMessageType(KMessageWidget::MessageType::Error);
35 mServerUrl->setObjectName(QStringLiteral(
"mServerUrl"));
37 mainLayout->addRow(
i18n(
"Server Url:"), mServerUrl);
38 mServerUrl->setPlaceholderText(QStringLiteral(
"http://127.0.0.1:11434"));
40 mModelComboBoxWidget->setObjectName(QStringLiteral(
"mModelComboBoxWidget"));
41 mainLayout->addRow(
i18n(
"Model:"), mModelComboBoxWidget);
43 mPrompt->setObjectName(QStringLiteral(
"mPrompt"));
44 mainLayout->addRow(
i18n(
"Prompt:"), mPrompt);
45 mPrompt->setPlaceholderText(
i18n(
"No system prompt"));
47 connect(mModelComboBoxWidget, &OllamaComboBoxWidget::reloadModel,
this, &OllamaConfigureWidget::fillModels);
51OllamaConfigureWidget::~OllamaConfigureWidget() =
default;
53void OllamaConfigureWidget::loadSettings()
55 mServerUrl->setText(OllamaSettings::serverUrl().
toString());
56 mPrompt->setPlainText(OllamaSettings::systemPrompt());
57 mModelComboBoxWidget->setCurrentModel(OllamaSettings::model());
60void OllamaConfigureWidget::saveSettings()
62 OllamaSettings::setSystemPrompt(mPrompt->toPlainText());
63 OllamaSettings::setServerUrl(QUrl(mServerUrl->text()));
64 OllamaSettings::setModel(mModelComboBoxWidget->currentModel());
65 OllamaSettings::self()->save();
68void OllamaConfigureWidget::fillModels()
70 mMessageWidget->animatedHide();
71 connect(OllamaManager::self(), &OllamaManager::modelsLoadDone,
this, [
this](
const OllamaManager::ModelsInfo &modelinfo) {
72 qDebug() <<
" OllamaConfigureWidget::fillModels() " << modelinfo;
73 if (modelinfo.hasError) {
74 mMessageWidget->setText(modelinfo.errorOccured);
75 mMessageWidget->animatedShow();
77 mModelComboBoxWidget->setModels(modelinfo.models);
81 OllamaManager::self()->loadModels();
84#include "moc_ollamaconfigurewidget.cpp"
QString i18n(const char *text, const TYPE &arg...)
char * toString(const EngineQuery &query)
void catchReturnKey(QObject *lineEdit)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
QFuture< ArgsType< Signal > > connect(Sender *sender, Signal signal)