Версии промптов¶
Метод create принимает label или version. Без обоих действует label фабрики, а без него —
метка production.
staging = LangfuseChainFactory(langfuse, models=models, label="staging")
chain = staging.create("support-reply") # label "staging"
live = staging.create("support-reply", label="production")
pinned = staging.create("support-reply", version=12) # the factory label does not apply
Все остальные именованные аргументы create — cache_ttl_seconds, max_retries,
fetch_timeout_seconds и прочие — передаются в client.get_prompt как есть:
chain = factory.create("support-reply", cache_ttl_seconds=30)
Кеш и реплики¶
SDK кеширует каждый промпт и обновляет его в фоне по истечении cache_ttl_seconds, по умолчанию
60 секунд. Перенос метки доходит до работающего сервиса в пределах этого времени, а до тех пор
реплики могут работать с разными версиями. При cache_ttl_seconds=0 промпт запрашивается на каждый
вызов.
Прогрев¶
Первый вызов цепочки получает промпт по HTTP и собирает template | model. Параллельные первые
вызовы запрашивают промпт один раз. Чтобы снять это с первого запроса, прогрейте цепочку при
запуске:
chain.get_input_schema() # fetches the prompt and builds the chain
Холодный старт при недоступном Langfuse выбрасывает PromptFetchError; про локальную запасную
цепочку см. раздел Обработка ошибок.