diff --git a/CMakeLists.txt b/CMakeLists.txt index 66fe792..1bef282 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,7 @@ add_qtc_plugin(QodeAssist templates/PromptTemplate.hpp templates/CodeLLamaTemplate.hpp templates/StarCoder2Template.hpp + templates/CodeQwenChat.hpp providers/LLMProvider.hpp providers/OllamaProvider.hpp providers/OllamaProvider.cpp providers/LMStudioProvider.hpp providers/LMStudioProvider.cpp diff --git a/qodeassist.cpp b/qodeassist.cpp index 9308730..86faf47 100644 --- a/qodeassist.cpp +++ b/qodeassist.cpp @@ -44,6 +44,7 @@ #include "providers/LMStudioProvider.hpp" #include "providers/OllamaProvider.hpp" #include "templates/CodeLLamaTemplate.hpp" +#include "templates/CodeQwenChat.hpp" #include "templates/StarCoder2Template.hpp" using namespace Utils; @@ -76,6 +77,7 @@ public: auto &templateManager = PromptTemplateManager::instance(); templateManager.registerTemplate(); templateManager.registerTemplate(); + templateManager.registerTemplate(); Utils::Icon QCODEASSIST_ICON( {{":/resources/images/qoderassist-icon.png", Utils::Theme::IconsBaseColor}}); diff --git a/templates/CodeQwenChat.hpp b/templates/CodeQwenChat.hpp new file mode 100644 index 0000000..380317e --- /dev/null +++ b/templates/CodeQwenChat.hpp @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2024 Petr Mironychev + * + * This file is part of QodeAssist. + * + * QodeAssist is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * QodeAssist is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with QodeAssist. If not, see . + */ + +#pragma once + +#include "PromptTemplate.hpp" + +namespace QodeAssist::Templates { + +class CodeQwenChatTemplate : public PromptTemplate +{ +public: + QString name() const override { return "CodeQwenChat"; } + QString promptTemplate() const override { return "\n### Instruction:%1%2 ### Response:\n"; } + QStringList stopWords() const override + { + return QStringList() << "### Instruction:" << "### Response:" << "\n\n### "; + } + void prepareRequest(QJsonObject &request, + const QString &prefix, + const QString &suffix) const override + { + QString formattedPrompt = promptTemplate().arg(prefix, suffix); + request["prompt"] = formattedPrompt; + } +}; + +} // namespace QodeAssist::Templates