🐛 fix: Move api key from request json to config

This commit is contained in:
Petr Mironychev 2024-11-26 10:52:47 +01:00
parent 30964d90d5
commit bfdbc755e3
6 changed files with 9 additions and 13 deletions

View File

@ -126,6 +126,7 @@ void ClientInterface::sendMessage(const QString &message, bool includeCurrentFil
config.url = QString("%1%2").arg(Settings::generalSettings().caUrl(), provider->chatEndpoint()); config.url = QString("%1%2").arg(Settings::generalSettings().caUrl(), provider->chatEndpoint());
config.providerRequest = providerRequest; config.providerRequest = providerRequest;
config.multiLineCompletion = false; config.multiLineCompletion = false;
config.apiKey = Settings::chatAssistantSettings().apiKey();
QJsonObject request; QJsonObject request;
request["id"] = QUuid::createUuid().toString(); request["id"] = QUuid::createUuid().toString();

View File

@ -172,6 +172,7 @@ void LLMClientInterface::handleCompletion(const QJsonObject &request)
config.promptTemplate = promptTemplate; config.promptTemplate = promptTemplate;
config.url = QUrl( config.url = QUrl(
QString("%1%2").arg(Settings::generalSettings().ccUrl(), provider->completionEndpoint())); 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", true}};

View File

@ -35,6 +35,7 @@ struct LLMConfig
QJsonObject providerRequest; QJsonObject providerRequest;
RequestType requestType; RequestType requestType;
bool multiLineCompletion; bool multiLineCompletion;
QString apiKey;
}; };
} // namespace QodeAssist::LLMCore } // namespace QodeAssist::LLMCore

View File

@ -38,7 +38,8 @@ void RequestHandler::sendLLMRequest(const LLMConfig &config, const QJsonObject &
QJsonDocument(config.providerRequest).toJson(QJsonDocument::Indented)))); QJsonDocument(config.providerRequest).toJson(QJsonDocument::Indented))));
QNetworkRequest networkRequest(config.url); QNetworkRequest networkRequest(config.url);
prepareNetworkRequest(networkRequest, config.providerRequest); if (!config.apiKey.isEmpty())
prepareNetworkRequest(networkRequest, config.apiKey);
QNetworkReply *reply = m_manager->post(networkRequest, QNetworkReply *reply = m_manager->post(networkRequest,
QJsonDocument(config.providerRequest).toJson()); QJsonDocument(config.providerRequest).toJson());
@ -107,15 +108,11 @@ bool RequestHandler::cancelRequest(const QString &id)
return false; return false;
} }
void RequestHandler::prepareNetworkRequest(QNetworkRequest &networkRequest, void RequestHandler::prepareNetworkRequest(
const QJsonObject &providerRequest) QNetworkRequest &networkRequest, const QString &apiKey) const
{ {
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
if (providerRequest.contains("api_key")) {
QString apiKey = providerRequest["api_key"].toString();
networkRequest.setRawHeader("Authorization", QString("Bearer %1").arg(apiKey).toUtf8()); networkRequest.setRawHeader("Authorization", QString("Bearer %1").arg(apiKey).toUtf8());
}
} }
bool RequestHandler::processSingleLineCompletion(QNetworkReply *reply, bool RequestHandler::processSingleLineCompletion(QNetworkReply *reply,

View File

@ -52,7 +52,7 @@ private:
QMap<QString, QNetworkReply *> m_activeRequests; QMap<QString, QNetworkReply *> m_activeRequests;
QMap<QNetworkReply *, QString> m_accumulatedResponses; QMap<QNetworkReply *, QString> m_accumulatedResponses;
void prepareNetworkRequest(QNetworkRequest &networkRequest, const QJsonObject &providerRequest); void prepareNetworkRequest(QNetworkRequest &networkRequest, const QString &apiKey) const;
bool processSingleLineCompletion(QNetworkReply *reply, bool processSingleLineCompletion(QNetworkReply *reply,
const QJsonObject &request, const QJsonObject &request,
const QString &accumulatedResponse, const QString &accumulatedResponse,

View File

@ -82,10 +82,6 @@ void OpenAICompatProvider::prepareRequest(QJsonObject &request, LLMCore::Request
request["frequency_penalty"] = settings.frequencyPenalty(); request["frequency_penalty"] = settings.frequencyPenalty();
if (settings.usePresencePenalty()) if (settings.usePresencePenalty())
request["presence_penalty"] = settings.presencePenalty(); request["presence_penalty"] = settings.presencePenalty();
const QString &apiKey = settings.apiKey();
if (!apiKey.isEmpty()) {
request["api_key"] = apiKey;
}
}; };
QJsonArray messages = prepareMessages(request); QJsonArray messages = prepareMessages(request);