Налаштування 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 та самостійному хостингу.







