You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
langchain/libs/partners/prompty/langchain_prompty/renderers.py

15 lines
453 B
Python

from langchain_core.utils import mustache
from pydantic import BaseModel
from .core import Invoker, Prompty, SimpleModel
class MustacheRenderer(Invoker):
def __init__(self, prompty: Prompty) -> None:
self.prompty = prompty
def invoke(self, data: BaseModel) -> BaseModel:
assert isinstance(data, SimpleModel)
generated = mustache.render(self.prompty.content, data.item)
return SimpleModel[str](item=generated)