👁️ Por que Observabilidade
Observabilidade em AI e a capacidade de entender o que acontece dentro de sistemas complexos - essencial para debug, otimizacao e confianca.
Desafios Unicos de AI
- •Non-determinismo: Mesma entrada pode gerar saidas diferentes
- •Caixa preta: Dificil entender por que um output foi gerado
- •Custos variaveis: Token usage pode variar dramaticamente
- •Latencia imprevisivel: Tempo de resposta flutuante
🦜 LangSmith
LangSmith e a plataforma da LangChain para observabilidade e avaliacao de LLM applications. Captura traces, permite debug e avaliacao sistematica.
Configurando LangSmith
# Environment variables
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=lsv2_xxx
export LANGCHAIN_PROJECT="my-project"
# Codigo automaticamente envia traces
from langchain_openai import ChatOpenAI
model = ChatOpenAI()
model.invoke("Hello") # Trace enviado automaticamente
Funcionalidades
- • Trace visualization
- • Prompt playground
- • Dataset management
- • Evaluation runs
Alternativas
- • Phoenix (Arize)
- • Weights & Biases
- • Helicone
- • Portkey
🔍 Tracing Distribuido
Tracing permite seguir uma requisicao atraves de todas as etapas: prompt, LLM call, tool execution, RAG retrieval, etc.
Anatomia de um Trace
💡 Debug com Traces
Traces mostram exatamente onde algo falhou: prompt mal formatado? LLM retornou erro? Tool timeout? Resposta truncada?
📈 Metricas e KPIs
Metricas quantificam performance e custos. KPIs bem definidos guiam otimizacao e detectam regressoes.
Latency
1.2s
Latency
3.8s
Per request
2.4k avg
Rate
0.3%
KPIs Essenciais
- Latencia: P50, P95, P99 por endpoint
- Custo: $ por request, $ por usuario, $ diario
- Qualidade: User satisfaction, task completion rate
- Erros: Taxa de falha, tipos de erro mais comuns
✅ Avaliacao de Qualidade
Evaluation mede qualidade de outputs de forma sistematica. Pode usar LLMs como juizes ou metricas automaticas.
LLM as Judge
from langsmith.evaluation import evaluate
def correctness(run, example):
"""Avalia se resposta e correta."""
prompt = f"""
Pergunta: {example.inputs['question']}
Resposta esperada: {example.outputs['answer']}
Resposta gerada: {run.outputs['output']}
A resposta gerada esta correta? (0-1)
"""
score = llm.invoke(prompt)
return {"score": float(score)}
evaluate(chain, data="my-dataset", evaluators=[correctness])
Metricas Automaticas
- • BLEU, ROUGE (texto)
- • Embedding similarity
- • Regex match
- • JSON validity
LLM Evaluators
- • Correctness
- • Helpfulness
- • Harmlessness
- • Relevance
🔧 Observabilidade em Skills
Skills em producao precisam de logging estruturado e metricas para debug e manutencao.
Skill com Logging
---
name: observable-skill
description: Skill com observabilidade integrada.
allowed-tools: Bash(python:*)
---
# Observable Skill
Ao executar, sempre logar:
```bash
python scripts/task.py --log-level INFO 2>&1 | tee -a ~/.logs/skill.log
```
## Metricas a capturar
- Tempo de execucao
- Tokens usados (se aplicavel)
- Sucesso/falha
- Erros especificos
🎯 Proximo Passo
No ultimo modulo da trilha, exploramos Arquiteturas de Producao - deploy, scaling, custos e seguranca para AI em escala.
📚 Resumo do Modulo
Proximo Modulo:
4.8 - Arquiteturas de Producao