Обработка ошибок¶
Все исключения библиотеки наследуются от HotswapError.
PromptFetchError¶
Промпт не удалось получить, а кеш SDK оказался пуст: например, холодный старт во время сбоя или промпт был удалён. Если цепочка уже собрана, она продолжает обслуживать запросы, а ошибка записывается в журнал один раз — до первого успешного получения промпта. Если собранной цепочки нет, исключение выбрасывается.
Восстановление остаётся на стороне приложения — например, запасная локальная цепочка:
from langfuse_hotswap import PromptFetchError
chain = factory.create("support-reply").with_fallbacks([local_chain], exceptions_to_handle=(PromptFetchError,))
ChainBuildError¶
Промпт получен, но собрать цепочку не удалось: provider указывает на модель, которой нет у
фабрики, или отсутствует при нескольких моделях; конструктор модели отклонил значение из
конфигурации; хук выбросил исключение; не установлен пакет для формата шаблона.
Если цепочка уже собрана, ошибка записывается в журнал один раз, цепочка продолжает работать, а сборка повторяется, когда промпт изменится. Если собранной цепочки нет, исключение выбрасывается, и каждый вызов получает ту же ошибку без повторной сборки, пока промпт не изменится — так неисправный промпт при холодном старте не создаёт модель на каждый вызов.
Пакетная обработка¶
batch, abatch, batch_as_completed и abatch_as_completed — унаследованные методы LangChain:
они вызывают invoke для каждого элемента, а при return_exceptions=True возвращают ошибку для
каждого элемента вместо выброса исключения.
Схемы¶
get_input_schema возвращает переменные промпта, когда Langfuse доступен, и разрешающую схему в
противном случае. get_output_schema в случае ошибки возвращает схему по умолчанию.