# Test Cases para o Orquestrador ## Testes Manuais ### Setup ```bash # Terminal 1: Iniciar servidor uvicorn app.main:app --reload # Terminal 2: Rodar testes bash test-local.sh http://localhost:8000 ``` Ou com Docker Compose: ```bash docker-compose up bash test-local.sh http://localhost:8000 ``` ## Casos de Teste ### 1. Chat Simples (Sem Tool) ```bash 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 ```bash 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 ```bash 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 ```bash 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 ```bash 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 ```bash 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 ```bash # Terminal com logs uvicorn app.main:app --reload --log-level debug ``` ### Testar Mockaroo direto ```bash 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.