You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
orquestrador/TEST_CASES.md

3.0 KiB

Test Cases para o Orquestrador

Testes Manuais

Setup

# Terminal 1: Iniciar servidor
uvicorn app.main:app --reload

# Terminal 2: Rodar testes
bash test-local.sh http://localhost:8000

Ou com Docker Compose:

docker-compose up
bash test-local.sh http://localhost:8000

Casos de Teste

1. Chat Simples (Sem Tool)

curl -X POST http://localhost:8000/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Olá, como você funciona?",
    "user_id": "user-123"
  }'

Esperado: Resposta direta do modelo, sem chamada de tool


2. Consultar Estoque

curl -X POST http://localhost:8000/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Quero um carro de até 50000 reais",
    "user_id": "user-123"
  }'

Esperado: Modelo chama consultar_estoque com preco_max=50000


3. Validar Cliente Venda

curl -X POST http://localhost:8000/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Meu CPF é 12345678900. Posso financiar um carro de 45000 reais?",
    "user_id": "user-123"
  }'

Esperado: Modelo chama validar_cliente_venda


4. Avaliar Veículo para Troca

curl -X POST http://localhost:8000/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Tenho um Toyota Corolla 2015 com 120000 km para dar de entrada. Quanto vale?",
    "user_id": "user-123"
  }'

Esperado: Modelo chama avaliar_veiculo_troca


5. Agendar Revisão

curl -X POST http://localhost:8000/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Quero agendar uma revisão para meu carro com placa ABC1234 no dia 25 de fevereiro às 10 da manhã",
    "user_id": "user-123"
  }'

Esperado: Modelo chama agendar_revisao


6. Cancelar Pedido

curl -X POST http://localhost:8000/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Gostaria de cancelar meu pedido número 12345 porque mudei de ideia",
    "user_id": "user-123"
  }'

Esperado: Modelo chama cancelar_pedido


Swagger UI

Acesse: http://localhost:8000/docs

Todos os endpoints estão documentados lá para testar interativamente.

Checklist de Testes

  • Chat simples sem tool funciona
  • Consultar estoque retorna veículos
  • Validar cliente retorna aprovação/rejeição
  • Avaliar veículo retorna valor estimado
  • Agendar revisão retorna agendamento
  • Cancelar pedido retorna cancelamento
  • Modelo é assertivo (chama tools quando apropriado)
  • Modelo não chama tools desnecessariamente
  • Respostas são formatadas corretamente
  • Sem erros 500 na API

Debugging

Ver logs detalhados

# Terminal com logs
uvicorn app.main:app --reload --log-level debug

Testar Mockaroo direto

curl -X POST http://localhost:8000/mock/consultar-estoque \
  -H "Content-Type: application/json" \
  -d '{"preco_max": 50000}'

Ver resposta do Vertex AI

Adicione console.log nos handlers para ver o que o Vertex retorna.