refactor: Decouple prompt template manager from their users (#115)

This makes it possible to test the user classes
This commit is contained in:
Povilas Kanapickas
2025-03-10 03:13:10 +02:00
committed by GitHub
parent b6f36d61ae
commit 98e1047bf1
13 changed files with 179 additions and 20 deletions

View File

@ -40,10 +40,12 @@ namespace QodeAssist {
LLMClientInterface::LLMClientInterface(
const Settings::GeneralSettings &generalSettings,
const Settings::CodeCompletionSettings &completeSettings)
const Settings::CodeCompletionSettings &completeSettings,
LLMCore::IPromptProvider *promptProvider)
: m_requestHandler(this)
, m_generalSettings(generalSettings)
, m_completeSettings(completeSettings)
, m_promptProvider(promptProvider)
{
connect(
&m_requestHandler,
@ -175,8 +177,7 @@ void LLMClientInterface::handleCompletion(const QJsonObject &request)
auto templateName = !isPreset1Active ? m_generalSettings.ccTemplate()
: m_generalSettings.ccPreset1Template();
auto promptTemplate = LLMCore::PromptTemplateManager::instance().getFimTemplateByName(
templateName);
auto promptTemplate = m_promptProvider->getTemplateByName(templateName);
if (!promptTemplate) {
LOG_MESSAGE(QString("No template found with name: %1").arg(templateName));
@ -281,8 +282,7 @@ void LLMClientInterface::sendCompletionToClient(
auto templateName = !isPreset1Active ? m_generalSettings.ccTemplate()
: m_generalSettings.ccPreset1Template();
auto promptTemplate = LLMCore::PromptTemplateManager::instance().getFimTemplateByName(
templateName);
auto promptTemplate = m_promptProvider->getTemplateByName(templateName);
QJsonObject position = request["params"].toObject()["doc"].toObject()["position"].toObject();