langfuse_client
Единый инстанс Langfuse-клиента для observability бота.
Ключи берутся из окружения (LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY, LANGFUSE_HOST). Использование одного экземпляра обязательно: несколько инстансов ломают трассировку (@observe работает через глобальный клиент SDK).
1""" 2Единый инстанс Langfuse-клиента для observability бота. 3 4Ключи берутся из окружения (LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY, 5LANGFUSE_HOST). Использование одного экземпляра обязательно: несколько 6инстансов ломают трассировку (@observe работает через глобальный клиент SDK). 7""" 8 9from __future__ import annotations 10 11import os 12from typing import Optional 13 14from langfuse import Langfuse 15 16_instance: Optional[Langfuse] = None 17 18 19def get_langfuse() -> Langfuse: 20 """ 21 Возвращает экземпляр Langfuse-клиента (синглтон). 22 23 При первом вызове создаёт клиент с учётом переменных окружения 24 LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY и LANGFUSE_HOST. 25 26 Returns: 27 Langfuse: Экземпляр Langfuse-клиента 28 """ 29 global _instance 30 if _instance is None: 31 _instance = Langfuse( 32 public_key=os.getenv("LANGFUSE_PUBLIC_KEY"), 33 secret_key=os.getenv("LANGFUSE_SECRET_KEY"), 34 host=os.getenv("LANGFUSE_HOST"), 35 ) 36 return _instance
def
get_langfuse() -> langfuse._client.client.Langfuse:
20def get_langfuse() -> Langfuse: 21 """ 22 Возвращает экземпляр Langfuse-клиента (синглтон). 23 24 При первом вызове создаёт клиент с учётом переменных окружения 25 LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY и LANGFUSE_HOST. 26 27 Returns: 28 Langfuse: Экземпляр Langfuse-клиента 29 """ 30 global _instance 31 if _instance is None: 32 _instance = Langfuse( 33 public_key=os.getenv("LANGFUSE_PUBLIC_KEY"), 34 secret_key=os.getenv("LANGFUSE_SECRET_KEY"), 35 host=os.getenv("LANGFUSE_HOST"), 36 ) 37 return _instance
Возвращает экземпляр Langfuse-клиента (синглтон).
При первом вызове создаёт клиент с учётом переменных окружения LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY и LANGFUSE_HOST.
Returns: Langfuse: Экземпляр Langfuse-клиента