From 4f0f9338dccf44c69811cff13e8ca0a0377bdb45 Mon Sep 17 00:00:00 2001 From: Petr Mironychev <9195189+Palm1r@users.noreply.github.com> Date: Sat, 31 Aug 2024 23:20:23 +0200 Subject: [PATCH] Add DeepSeekCoderV2 template --- CMakeLists.txt | 3 +- QodeAssist.json.in | 2 +- providers/OpenAICompatProvider.cpp | 2 +- ...patProvider.h => OpenAICompatProvider.hpp} | 0 qodeassist.cpp | 4 +- templates/DeepSeekCoderV2.hpp | 44 +++++++++++++++++++ 6 files changed, 51 insertions(+), 4 deletions(-) rename providers/{OpenAICompatProvider.h => OpenAICompatProvider.hpp} (100%) create mode 100644 templates/DeepSeekCoderV2.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index a269b24..9533a35 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,10 +35,11 @@ add_qtc_plugin(QodeAssist templates/CodeLLamaTemplate.hpp templates/StarCoder2Template.hpp templates/CodeQwenChat.hpp + templates/DeepSeekCoderV2.hpp providers/LLMProvider.hpp providers/OllamaProvider.hpp providers/OllamaProvider.cpp providers/LMStudioProvider.hpp providers/LMStudioProvider.cpp - providers/OpenAICompatProvider.h providers/OpenAICompatProvider.cpp + providers/OpenAICompatProvider.hpp providers/OpenAICompatProvider.cpp LLMProvidersManager.hpp LLMProvidersManager.cpp QodeAssistSettings.hpp QodeAssistSettings.cpp QodeAssist.qrc diff --git a/QodeAssist.json.in b/QodeAssist.json.in index 4cf3b12..264266e 100644 --- a/QodeAssist.json.in +++ b/QodeAssist.json.in @@ -1,6 +1,6 @@ { "Name" : "QodeAssist", - "Version" : "0.0.6", + "Version" : "0.0.7", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Vendor" : "Petr Mironychev", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} Petr Mironychev, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", diff --git a/providers/OpenAICompatProvider.cpp b/providers/OpenAICompatProvider.cpp index 9ec55b5..51fdc54 100644 --- a/providers/OpenAICompatProvider.cpp +++ b/providers/OpenAICompatProvider.cpp @@ -17,7 +17,7 @@ * along with QodeAssist. If not, see . */ -#include "OpenAICompatProvider.h" +#include "OpenAICompatProvider.hpp" #include #include diff --git a/providers/OpenAICompatProvider.h b/providers/OpenAICompatProvider.hpp similarity index 100% rename from providers/OpenAICompatProvider.h rename to providers/OpenAICompatProvider.hpp diff --git a/qodeassist.cpp b/qodeassist.cpp index 90fd069..ffcd0f6 100644 --- a/qodeassist.cpp +++ b/qodeassist.cpp @@ -43,9 +43,10 @@ #include "QodeAssistClient.hpp" #include "providers/LMStudioProvider.hpp" #include "providers/OllamaProvider.hpp" -#include "providers/OpenAICompatProvider.h" +#include "providers/OpenAICompatProvider.hpp" #include "templates/CodeLLamaTemplate.hpp" #include "templates/CodeQwenChat.hpp" +#include "templates/DeepSeekCoderV2.hpp" #include "templates/StarCoder2Template.hpp" using namespace Utils; @@ -80,6 +81,7 @@ public: templateManager.registerTemplate(); templateManager.registerTemplate(); templateManager.registerTemplate(); + templateManager.registerTemplate(); Utils::Icon QCODEASSIST_ICON( {{":/resources/images/qoderassist-icon.png", Utils::Theme::IconsBaseColor}}); diff --git a/templates/DeepSeekCoderV2.hpp b/templates/DeepSeekCoderV2.hpp new file mode 100644 index 0000000..2c60f4b --- /dev/null +++ b/templates/DeepSeekCoderV2.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 DeepSeekCoderV2Template : public PromptTemplate +{ +public: + QString name() const override { return "DeepSeekCoderV2"; } + QString promptTemplate() const override + { + return "<|fim▁begin|>%1<|fim▁hole|>%2<|fim▁end|>"; + } + QStringList stopWords() const override { return QStringList(); } + void prepareRequest(QJsonObject &request, + const QString &prefix, + const QString &suffix) const override + { + QString formattedPrompt = promptTemplate().arg(prefix, suffix); + request["prompt"] = formattedPrompt; + } +}; + +} // namespace QodeAssist::Templates