Перейти к содержанию

Справочник API

Всё перечисленное импортируется из langfuse_hotswap.

LangfuseChainFactory

LangfuseChainFactory(
    client: Langfuse,
    models: Mapping[str, BaseChatModel],
    *,
    allowed_config_keys: Iterable[str] | Literal["any"] | None = None,
    label: str | None = None,
    template_format: Literal["langfuse", "f-string", "mustache", "jinja2"] = "langfuse",
    hooks: Iterable[Callable[..., Runnable]] | None = None,
)
Аргумент Значение
client Клиент Langfuse, обычно langfuse.get_client().
models Имя → чат-модель. Конфигурация промпта выбирает одну из них ключом provider. Не может быть пустым.
allowed_config_keys Ключи конфигурации, которым разрешено переопределять поля модели: None — ни одному, набор или "any". Строка, отличная от "any", вызывает TypeError.
label Метка промпта, которую create использует без своих label и version.
template_format Движок рендера для промптов, в конфигурации которых ключ template_format не задан или не разрешён.
hooks Хуки модели, которые применяются к каждой цепочке после её собственных хуков with_model. Одиночная функция вместо коллекции вызывает TypeError. См. раздел «Хуки для всех цепочек» на странице Настройка модели.

create

factory.create(prompt_name: str, *, label: str | None = None, version: int | None = None, **get_prompt_kwargs) -> LangfusePromptRunnable[BaseMessage]

label вместе с version вызывают ValueError, как и пустое имя. fallback вызывает TypeError. Все остальные именованные аргументы уходят в client.get_prompt.

LangfusePromptRunnable

Runnable[dict[str, Any], Output]. На вход — словарь переменных промпта; Output — BaseMessage, пока хук не изменит его.

Метод Возвращает
invoke, ainvoke, stream, astream, batch, abatch, astream_events, transform, ... Интерфейс Runnable LangChain. batch и его варианты унаследованы.
with_model(hook) Копию, в которой модель заменяется на hook(model) при каждой пересборке. Хук с параметром prompt получает также копию промпт-клиента.
with_structured_output(schema, **kwargs) Копию, разбирающую ответ через model.with_structured_output.
bind_tools(tools, **kwargs) Копию с инструментами, привязанными через model.bind_tools.
get_input_schema(), get_output_schema() Схему текущей цепочки или разрешающую, когда Langfuse недоступен. Получает промпт и собирает цепочку.
copy.copy, copy.deepcopy Копию, которая разделяет клиент и хуки и начинает с пустым кешем.

LangfusePromptTemplate

BaseChatPromptTemplate поверх сообщений промпта Langfuse. LangfusePromptTemplate.from_prompt(prompt, template_format="langfuse") собирает его и прикрепляет промпт как metadata["langfuse_prompt"]. См. раздел Шаблоны.

Ошибки

Класс Когда выбрасывается
HotswapError Базовый класс двух следующих.
PromptFetchError Промпт не удалось получить, а собранной цепочки нет. Ошибка SDK — в __cause__.
ChainBuildError Цепочку не удалось собрать, а предыдущей нет. Исходная ошибка — в __cause__.