Como Criar uma API de Orçamentos Automotivos para WhatsApp com Python e IA

Como Criar uma API de Orçamentos Automotivos para WhatsApp com Python e IA

Conectar o WhatsApp da sua empresa a um modelo de linguagem (LLM) para responder clientes é um passo comum na modernização do atendimento. No entanto, no setor automotivo, a automação costuma esbarrar em um gargalo crítico: a geração precisa de preços. Um chatbot conversacional pode ser simpático e esclarecer dúvidas gerais, mas se ele não for capaz de calcular e enviar um orçamento exato de peças e mão de obra em tempo real, a equipe humana continua sobrecarregada.

Modelos de linguagem não devem calcular preços por inferência direta, pois o risco de alucinação e divergência de tabelas comerciais é alto. A abordagem recomendada consiste em desacoplar a conversação da regra de precificação, utilizando a inteligência artificial apenas para extrair os parâmetros do veículo e do serviço, repassando esses dados para uma API de orçamentos automotivos desenvolvida em Python.


A Arquitetura da Solução

Para que o fluxo funcione de ponta a ponta sem falhas de negócio, a arquitetura deve seguir três camadas bem definidas:

  1. Interface Conversacional (Meta/WhatsApp): Recebe o áudio ou texto do cliente (ex.: “Preciso trocar os amortecedores dianteiros e pastilhas de um Civic 2018 2.0”).
  2. Agente Orquestrador (LLM com Tool Calling): Identifica a intenção, valida os dados obrigatórios do veículo e aciona a ferramenta de orçamento via JSON estruturado.
  3. API de Precificação (FastAPI/Python): Consulta tabelas de peças, tempos padrão de mão de obra (tabela de horas técnicas) e calcula o valor final com base na margem e estoque.

Modelando a API com FastAPI e Pydantic

O framework FastAPI é a melhor escolha para esse cenário devido à alta performance assíncrona, documentação OpenAPI automática (essencial para definir tools de agentes de IA) e validação estrita com Pydantic.

Abaixo, estruturamos a base do microsserviço que recebe a requisição do agente de IA e retorna o orçamento detalhado:

python
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, Field
from typing import List

app = FastAPI(title=”API de Orçamentos Automotivos”)

class ItemServico(BaseModel):
codigoservico: str
descricao: str
horas
trabalho: float
valor_hora: float = 120.00

class ItemPeca(BaseModel):
codigopeca: str
descricao: str
quantidade: int
preco
unitario: float

class SolicitacaoOrcamento(BaseModel):
veiculomodelo: str = Field(…, description=”Modelo e ano do veículo”)
servicos
solicitados: List[str] incluir_pecas: bool = True

class ResumoOrcamento(BaseModel):
veiculo: str
totalmaodeobra: float
total
pecas: float
totalgeral: float
itens
detalhados: List[str]

Simulação de consulta ao banco de peças e regras de negócio

TABELAPRECOS = {
“amortecedor
dianteiro”: {“peca”: 450.00, “horas”: 1.5},
“pastilhafreiodianteira”: {“peca”: 180.00, “horas”: 0.8}
}

@app.post(“/api/v1/orcamento”, responsemodel=ResumoOrcamento)
async def gerar
orcamento(dados: SolicitacaoOrcamento):
totalpecas = 0.0
total
mo = 0.0
detalhes = []

for servico in dados.servicos_solicitados:
    chave = servico.lower().strip().replace(" ", "_")
    item = TABELA_PRECOS.get(chave)

    if not item:
        continue

    custo_mo = item["horas"] * 120.00
    total_mo += custo_mo

    if dados.incluir_pecas:
        total_pecas += item["peca"]
        detalhes.append(f"{servico.title()}: Peça R${item['peca']:.2f} + Mão de Obra R${custo_mo:.2f}")
    else:
        detalhes.append(f"{servico.title()}: Mão de Obra R${custo_mo:.2f}")

if not detalhes:
    raise HTTPException(status_code=404, detail="Nenhum serviço mapeado encontrado.")

return ResumoOrcamento(
    veiculo=dados.veiculo_modelo,
    total_mao_de_obra=round(total_mo, 2),
    total_pecas=round(total_pecas, 2),
    total_geral=round(total_mo + total_pecas, 2),
    itens_detalhados=detalhes
)

Integrando a API ao Fluxo da IA no WhatsApp

Como especialista em IA e engenharia de software, recomendo nunca instruir a IA a calcular o valor diretamente no prompt. A estratégia correta é fornecer a rota /api/v1/orcamento como uma Function ou Tool Call.

Quando o cliente escreve no WhatsApp, o fluxo ocorre da seguinte forma:

  1. Extração de Entidades: O modelo identifica o modelo do carro e os serviços mencionados.
  2. Chamada Determinística: O bot pausa a resposta textual, envia o payload JSON para a API Python e recebe o total validado.
  3. Formatação da Resposta: O bot recebe os dados oficiais e monta uma mensagem limpa para o cliente no WhatsApp, com a possibilidade de gerar um link de aprovação ou agendamento.

Isso garante que os valores apresentados correspondam exatamente às tabelas de estoque e precificação vigentes da oficina, sem surpresas no balcão.


Otimização e Segurança no Cenário Automotivo

Para colocar essa solução em produção com alto volume de mensagens:

  • Validação de Placa via API: Antes de orçar, consulte APIs de dados veiculares (como Renavam/FIPE) para confirmar a motorização exata do veículo com base na placa digitada pelo cliente.
  • Cache com Redis: Preços de peças de alta rotatividade e tabelas de tempo de serviço devem ser armazenados em cache para que a resposta da API ocorra em menos de 100ms.
  • Fallback Humano Inteligente: Se o serviço solicitado não constar no catálogo padrão (ex.: reparo estrutural complexo), a API deve sinalizar o chatbot para transferir o atendimento a um consultor técnico com o resumo do que já foi coletado.

Conclusão e Próximos Passos

A integração de canais como WhatsApp a agentes de IA só gera retorno real sobre o investimento quando conectada a sistemas transacionais robustos. Criar uma API de orçamentos automotivos em Python garante confiabilidade matemática, segurança operacional e escala para a sua operação comercial.

Se você já possui o canal de atendimento no WhatsApp conectado à IA e precisa desenvolver a camada de backend e integrações de API para gerar orçamentos dinâmicos e automatizados, entre em contato para uma consultoria técnica de engenharia de software e inteligência artificial.

Preencha o formulário abaixo para que eu consiga entrar em contato com você.