diff --git a/providers/LLMProvider.hpp b/providers/LLMProvider.hpp index f02e639..27286b4 100644 --- a/providers/LLMProvider.hpp +++ b/providers/LLMProvider.hpp @@ -39,7 +39,7 @@ public: virtual void prepareRequest(QJsonObject &request) = 0; virtual bool handleResponse(QNetworkReply *reply, QString &accumulatedResponse) = 0; - virtual QList getInstalledModels(const Utils::Environment &env) = 0; + virtual QList getInstalledModels(const Utils::Environment &env, const QString &url) = 0; }; } // namespace QodeAssist::Providers diff --git a/providers/LMStudioProvider.cpp b/providers/LMStudioProvider.cpp index 705d90c..75afce1 100644 --- a/providers/LMStudioProvider.cpp +++ b/providers/LMStudioProvider.cpp @@ -25,7 +25,6 @@ #include #include -#include "PromptTemplateManager.hpp" #include "QodeAssistUtils.hpp" #include "settings/PresetPromptsSettings.hpp" @@ -115,11 +114,12 @@ bool LMStudioProvider::handleResponse(QNetworkReply *reply, QString &accumulated return isComplete; } -QList LMStudioProvider::getInstalledModels(const Utils::Environment &env) +QList LMStudioProvider::getInstalledModels(const Utils::Environment &env, + const QString &url) { QList models; QNetworkAccessManager manager; - QNetworkRequest request(QUrl(url() + "/v1/models")); + QNetworkRequest request(QString("%1%2").arg(url, "/v1/models")); QNetworkReply *reply = manager.get(request); diff --git a/providers/LMStudioProvider.hpp b/providers/LMStudioProvider.hpp index 1cfc2a9..0bcf56b 100644 --- a/providers/LMStudioProvider.hpp +++ b/providers/LMStudioProvider.hpp @@ -34,7 +34,7 @@ public: QString chatEndpoint() const override; void prepareRequest(QJsonObject &request) override; bool handleResponse(QNetworkReply *reply, QString &accumulatedResponse) override; - QList getInstalledModels(const Utils::Environment &env) override; + QList getInstalledModels(const Utils::Environment &env, const QString &url) override; }; } // namespace QodeAssist::Providers diff --git a/providers/OllamaProvider.cpp b/providers/OllamaProvider.cpp index 091d24f..661f944 100644 --- a/providers/OllamaProvider.cpp +++ b/providers/OllamaProvider.cpp @@ -123,11 +123,11 @@ bool OllamaProvider::handleResponse(QNetworkReply *reply, QString &accumulatedRe return isComplete; } -QList OllamaProvider::getInstalledModels(const Utils::Environment &env) +QList OllamaProvider::getInstalledModels(const Utils::Environment &env, const QString &url) { QList models; QNetworkAccessManager manager; - QNetworkRequest request(QUrl(url() + "/api/tags")); + QNetworkRequest request(QString("%1%2").arg(url, "/api/tags")); QNetworkReply *reply = manager.get(request); QEventLoop loop; diff --git a/providers/OllamaProvider.hpp b/providers/OllamaProvider.hpp index c78f8f3..f4290e4 100644 --- a/providers/OllamaProvider.hpp +++ b/providers/OllamaProvider.hpp @@ -34,7 +34,7 @@ public: QString chatEndpoint() const override; void prepareRequest(QJsonObject &request) override; bool handleResponse(QNetworkReply *reply, QString &accumulatedResponse) override; - QList getInstalledModels(const Utils::Environment &env) override; + QList getInstalledModels(const Utils::Environment &env, const QString &url) override; }; } // namespace QodeAssist::Providers diff --git a/providers/OpenAICompatProvider.cpp b/providers/OpenAICompatProvider.cpp index a366ed4..36960f6 100644 --- a/providers/OpenAICompatProvider.cpp +++ b/providers/OpenAICompatProvider.cpp @@ -118,7 +118,8 @@ bool OpenAICompatProvider::handleResponse(QNetworkReply *reply, QString &accumul return isComplete; } -QList OpenAICompatProvider::getInstalledModels(const Utils::Environment &env) +QList OpenAICompatProvider::getInstalledModels(const Utils::Environment &env, + const QString &url) { return QStringList(); } diff --git a/providers/OpenAICompatProvider.hpp b/providers/OpenAICompatProvider.hpp index 417c643..4d7b8ec 100644 --- a/providers/OpenAICompatProvider.hpp +++ b/providers/OpenAICompatProvider.hpp @@ -34,7 +34,7 @@ public: QString chatEndpoint() const override; void prepareRequest(QJsonObject &request) override; bool handleResponse(QNetworkReply *reply, QString &accumulatedResponse) override; - QList getInstalledModels(const Utils::Environment &env) override; + QList getInstalledModels(const Utils::Environment &env, const QString &url) override; }; } // namespace QodeAssist::Providers diff --git a/settings/GeneralSettings.cpp b/settings/GeneralSettings.cpp index be28fb1..631080e 100644 --- a/settings/GeneralSettings.cpp +++ b/settings/GeneralSettings.cpp @@ -237,9 +237,10 @@ void GeneralSettings::showModelSelectionDialog(Utils::StringAspect *modelNameObj Providers::LLMProvider *provider) { Utils::Environment env = Utils::Environment::systemEnvironment(); + QString providerUrl = (modelNameObj == &modelName) ? url() : chatUrl(); if (provider) { - QStringList models = provider->getInstalledModels(env); + QStringList models = provider->getInstalledModels(env, providerUrl); bool ok; QString selectedModel = QInputDialog::getItem(Core::ICore::dialogParent(), Tr::tr("Select LLM Model"),