From 9beb48ee975e65fd7d5f3d9268debe59a6c96ed9 Mon Sep 17 00:00:00 2001 From: Petr Mironychev <9195189+Palm1r@users.noreply.github.com> Date: Thu, 29 Aug 2024 22:28:18 +0200 Subject: [PATCH] Add CodeQwenChat template --- CMakeLists.txt | 1 + qodeassist.cpp | 2 ++ templates/CodeQwenChat.hpp | 44 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 templates/CodeQwenChat.hpp 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