Skip to content

Commit 0c5bf22

Browse files
feat: Use the new PHP Jinja template engine
1 parent a6d7fd5 commit 0c5bf22

5 files changed

Lines changed: 8 additions & 454 deletions

File tree

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"ankane/onnxruntime": "^0.2.0",
1919
"ext-gd": "*",
2020
"rindow/rindow-math-matrix": "^1.2",
21-
"spatie/fork": "^1.2"
21+
"spatie/fork": "^1.2",
22+
"codewithkyrian/jinja-php": "^1.0"
2223
},
2324
"require-dev": {
2425
"pestphp/pest": "^2.31",

examples/tokenizers/apply-chat-template.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
require_once './bootstrap.php';
88

9-
//$tokenizer = AutoTokenizer::fromPretrained('mistralai/Mistral-7B-Instruct-v0.1');
10-
$tokenizer = AutoTokenizer::fromPretrained('facebook/blenderbot-400M-distill');
9+
$tokenizer = AutoTokenizer::fromPretrained('mistralai/Mistral-7B-Instruct-v0.1');
10+
//$tokenizer = AutoTokenizer::fromPretrained('facebook/blenderbot-400M-distill');
1111
$messages = [
1212
['role' => 'user', 'content' => 'Hello!'],
1313
['role' => 'assistant', 'content' => 'Hi! How are you?'],

src/Pipelines/TextGenerationPipeline.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public function __invoke(array|string $texts, ...$args): array
6767
$generationConfig = new GenerationConfig($snakeCasedArgs);
6868

6969
$isBatched = is_array($texts);
70+
7071
if (!$isBatched) {
7172
$texts = [$texts];
7273
}

src/PretrainedTokenizers/PretrainedTokenizer.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,14 @@
55

66
namespace Codewithkyrian\Transformers\PretrainedTokenizers;
77

8-
use ByJG\JinjaPhp\Template;
9-
use ByJG\JinjaPhp\Undefined\DebugUndefined;
8+
use Codewithkyrian\Jinja\Template;
109
use Codewithkyrian\Transformers\Decoders\Decoder;
1110
use Codewithkyrian\Transformers\Normalizers\Normalizer;
1211
use Codewithkyrian\Transformers\PostProcessors\PostProcessedOutput;
1312
use Codewithkyrian\Transformers\PostProcessors\PostProcessor;
1413
use Codewithkyrian\Transformers\PreTokenizers\PreTokenizer;
1514
use Codewithkyrian\Transformers\Tokenizers\AddedToken;
1615
use Codewithkyrian\Transformers\Tokenizers\Tokenizer;
17-
use Codewithkyrian\Transformers\Utils\JinjaTemplate;
1816
use Codewithkyrian\Transformers\Utils\Tensor;
1917

2018
class PretrainedTokenizer
@@ -671,8 +669,7 @@ public function applyChatTemplate(
671669

672670
if ($compiledTemplate === null) {
673671
// TODO: Use Jinja to compile the template
674-
$compiledTemplate = new JinjaTemplate($chatTemplate);
675-
// $compiledTemplate->withUndefined(new DebugUndefined());
672+
$compiledTemplate = new Template($chatTemplate);
676673
$this->compiledTemplateCache[$chatTemplate] = $compiledTemplate;
677674
}
678675

@@ -684,6 +681,7 @@ public function applyChatTemplate(
684681
}
685682
}
686683

684+
687685
$rendered = $compiledTemplate->render(array_merge([
688686
'messages' => $conversation,
689687
'add_generation_prompt' => $addGenerationPrompt,

0 commit comments

Comments
 (0)