Skip to content
Snippets Groups Projects
Commit d829bca3 authored by Mateusz Charytoniuk's avatar Mateusz Charytoniuk
Browse files

chore: extract string prompt upgrade

parent 130a1508
No related branches found
No related tags found
No related merge requests found
<?php
declare(strict_types=1);
namespace Distantmagic\Resonance\SingletonProvider;
use Distantmagic\Resonance\Attribute\Singleton;
use Distantmagic\Resonance\LlamaCppConfiguration;
use Distantmagic\Resonance\LlmChatMessageRenderer\ChatMLMessageRenderer;
use Distantmagic\Resonance\LlmChatMessageRenderer\MistralInstructMessageRenderer;
use Distantmagic\Resonance\LlmChatMessageRendererInterface;
use Distantmagic\Resonance\LlmChatTemplateType;
use Distantmagic\Resonance\PHPProjectFiles;
use Distantmagic\Resonance\SingletonContainer;
use Distantmagic\Resonance\SingletonProvider;
use Nette\PhpGenerator\Printer;
use RuntimeException;
/**
* @template-extends SingletonProvider<Printer>
*/
#[Singleton(provides: LlmChatMessageRendererInterface::class)]
final readonly class LlmChatMessageRendererProvider extends SingletonProvider
{
public function __construct(
private ChatMLMessageRenderer $chatMLMessageRenderer,
private LlamaCppConfiguration $llamaCppConfiguration,
private MistralInstructMessageRenderer $mistralInstructMessageRenderer,
) {}
public function provide(SingletonContainer $singletons, PHPProjectFiles $phpProjectFiles): LlmChatMessageRendererInterface
{
return match ($this->llamaCppConfiguration->llmChatTemplate) {
LlmChatTemplateType::ChatML => $this->chatMLMessageRenderer,
LlmChatTemplateType::MistralInstruct => $this->mistralInstructMessageRenderer,
default => throw new RuntimeException('Unsupported llm chat message format: '.$this->llamaCppConfiguration->llmChatTemplate->value),
};
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment