Files
AI/참고/guardrails-main/guardrails/formatters/base_formatter.py
2026-05-12 19:40:31 +09:00

33 lines
909 B
Python

from abc import ABC, abstractmethod
from guardrails.llm_providers import (
ArbitraryCallable,
AsyncPromptCallableBase,
PromptCallableBase,
)
class BaseFormatter(ABC):
"""A Formatter takes an LLM Callable and wraps the method into an abstract
callable.
Used to perform manipulations of the input or the output, like JSON
constrained- decoding.
"""
@abstractmethod
def wrap_callable(self, llm_callable: PromptCallableBase) -> ArbitraryCallable: ...
@abstractmethod
def wrap_async_callable(
self, llm_callable: PromptCallableBase
) -> AsyncPromptCallableBase: ...
class PassthroughFormatter(BaseFormatter):
def wrap_callable(self, llm_callable: PromptCallableBase): # type: ignore
return llm_callable # Noop
def wrap_async_callable(self, llm_callable: PromptCallableBase): # type: ignore
return llm_callable # Noop