aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/azure/ai/inference/prompts/_renderers.py
blob: 0d682a7fe151f20d5fa2aa6e37abbbcf7087f7c5 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# ------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# ------------------------------------
# mypy: disable-error-code="union-attr,assignment,arg-type"
from pathlib import Path
from ._core import Prompty
from ._invoker import Invoker, InvokerFactory
from ._mustache import render


@InvokerFactory.register_renderer("mustache")
class MustacheRenderer(Invoker):
    """Render a mustache template."""

    def __init__(self, prompty: Prompty) -> None:
        super().__init__(prompty)
        self.templates = {}
        cur_prompt = self.prompty
        while cur_prompt:
            self.templates[Path(cur_prompt.file).name] = cur_prompt.content
            cur_prompt = cur_prompt.basePrompty
        self.name = Path(self.prompty.file).name

    def invoke(self, data: str) -> str:
        generated = render(self.prompty.content, data)  # type: ignore
        return generated

    async def invoke_async(self, data: str) -> str:
        return self.invoke(data)