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-клиента