Настройка AI-наблюдаемости через LangSmith и Langfuse
LangSmith (LangChain) и Langfuse — специализированные платформы для observability LLM-приложений: трассировка цепочек вызовов, стоимость запросов, оценка качества, регрессионное тестирование промптов.
LangSmith Setup
pip install langchain langsmith
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=ls__xxx
export LANGCHAIN_PROJECT=my-llm-app
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
# Трассировка включается автоматически через env переменные
llm = ChatOpenAI(model="gpt-4o")
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant"),
("user", "{question}")
])
chain = prompt | llm
# Все вызовы автоматически логируются в LangSmith
result = chain.invoke({"question": "What is RAG?"})
Что видно в LangSmith: полный trace дерево вызовов, каждый LLM-вызов с prompt/response, latency каждого шага, стоимость (токены × цена), ошибки с full stack trace.
Langfuse Setup (self-hosted)
# Docker Compose для self-hosted
docker compose up -d # из langfuse/langfuse репозитория
from langfuse import Langfuse
from langfuse.decorators import observe, langfuse_context
langfuse = Langfuse(
public_key="pk-xxx",
secret_key="sk-xxx",
host="http://localhost:3000" # self-hosted
)
@observe() # автоматически создаёт trace
def process_user_query(query: str) -> str:
# Каждая вложенная @observe функция — span внутри trace
context = retrieve_context(query)
response = generate_response(query, context)
# Оценка качества прямо в коде
langfuse_context.score_current_trace(
name="relevance",
value=0.9,
comment="Context was relevant"
)
return response
@observe(name="retrieve_context")
def retrieve_context(query: str) -> str:
# ... vector search
pass
Мониторинг стоимости
Обе платформы автоматически считают стоимость по модели и числу токенов. Алерты: дневной бюджет превышен, стоимость на запрос выросла > 2x, аномальный рост потребления токенов.
Сравнение платформ
| Параметр | LangSmith | Langfuse |
|---|---|---|
| Self-hosted | Нет (SaaS) | Да (Open Source) |
| Интеграция с LangChain | Нативная | Через callback |
| Стоимость | $0–50+/мес | Бесплатно (self-hosted) |
| Prompt testing | Да | Да |
| Datasets & evals | Да | Да |
Langfuse предпочтителен при требованиях к data residency и самостоятельном хостинге.







