mirror of
				https://github.com/Palm1r/QodeAssist.git
				synced 2025-11-03 16:54:48 -05:00 
			
		
		
		
	Add StarCoder2 instruct support
This commit is contained in:
		@ -42,6 +42,7 @@ add_qtc_plugin(QodeAssist
 | 
			
		||||
    templates/DeepSeekCoderChat.hpp
 | 
			
		||||
    templates/CodeLlamaChat.hpp
 | 
			
		||||
    templates/QwenChat.hpp
 | 
			
		||||
    templates/StarCoderChat.hpp
 | 
			
		||||
    providers/OllamaProvider.hpp providers/OllamaProvider.cpp
 | 
			
		||||
    providers/LMStudioProvider.hpp providers/LMStudioProvider.cpp
 | 
			
		||||
    providers/OpenAICompatProvider.hpp providers/OpenAICompatProvider.cpp
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
    "Name" : "QodeAssist",
 | 
			
		||||
    "Version" : "0.3.1",
 | 
			
		||||
    "Version" : "0.3.2",
 | 
			
		||||
    "CompatVersion" : "${IDE_VERSION_COMPAT}",
 | 
			
		||||
    "Vendor" : "Petr Mironychev",
 | 
			
		||||
    "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} Petr Mironychev, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd",
 | 
			
		||||
 | 
			
		||||
@ -55,6 +55,7 @@
 | 
			
		||||
#include "templates/DeepSeekCoderFim.hpp"
 | 
			
		||||
#include "templates/QwenChat.hpp"
 | 
			
		||||
#include "templates/StarCoder2Fim.hpp"
 | 
			
		||||
#include "templates/StarCoderChat.hpp"
 | 
			
		||||
 | 
			
		||||
using namespace Utils;
 | 
			
		||||
using namespace Core;
 | 
			
		||||
@ -95,6 +96,7 @@ public:
 | 
			
		||||
        templateManager.registerTemplate<Templates::CodeLlamaChat>();
 | 
			
		||||
        templateManager.registerTemplate<Templates::QwenChat>();
 | 
			
		||||
        templateManager.registerTemplate<Templates::LlamaChat>();
 | 
			
		||||
        templateManager.registerTemplate<Templates::StarCoderChat>();
 | 
			
		||||
 | 
			
		||||
        Utils::Icon QCODEASSIST_ICON(
 | 
			
		||||
            {{":/resources/images/qoderassist-icon.png", Utils::Theme::IconsBaseColor}});
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										51
									
								
								templates/StarCoderChat.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								templates/StarCoderChat.hpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
			
		||||
/* 
 | 
			
		||||
 * 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 <https://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QJsonArray>
 | 
			
		||||
#include "llmcore/PromptTemplate.hpp"
 | 
			
		||||
 | 
			
		||||
namespace QodeAssist::Templates {
 | 
			
		||||
 | 
			
		||||
class StarCoderChat : public LLMCore::PromptTemplate
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    QString name() const override { return "StarCoder Chat"; }
 | 
			
		||||
    LLMCore::TemplateType type() const override { return LLMCore::TemplateType::Chat; }
 | 
			
		||||
    QString promptTemplate() const override { return "### Instruction:\n%1\n### Response:\n"; }
 | 
			
		||||
    QStringList stopWords() const override
 | 
			
		||||
    {
 | 
			
		||||
        return QStringList() << "###"
 | 
			
		||||
                             << "<|endoftext|>" << "<file_sep>";
 | 
			
		||||
    }
 | 
			
		||||
    void prepareRequest(QJsonObject &request, const LLMCore::ContextData &context) const override
 | 
			
		||||
    {
 | 
			
		||||
        QString formattedPrompt = promptTemplate().arg(context.prefix);
 | 
			
		||||
        QJsonArray messages = request["messages"].toArray();
 | 
			
		||||
 | 
			
		||||
        QJsonObject newMessage;
 | 
			
		||||
        newMessage["role"] = "user";
 | 
			
		||||
        newMessage["content"] = formattedPrompt;
 | 
			
		||||
        messages.append(newMessage);
 | 
			
		||||
 | 
			
		||||
        request["messages"] = messages;
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
} // namespace QodeAssist::Templates
 | 
			
		||||
		Reference in New Issue
	
	Block a user