Commit Graph

80 Commits (0e019824e6052adbce33419ba26762c7e6b53c9c)
 

Author SHA1 Message Date
Vitor Hugo Belorio Simão 0e019824e6 🚀 feat(runtime): alinhar operacao Telegram-first para bootstrap, deploy e documentacao
- atualiza docker-compose, Dockerfile e service do systemd para subir o bootstrap de banco e o Telegram satellite como runtime principal do projeto\n- revisa .env.example, README, TEST_CASES e guia de deploy para refletir a arquitetura atual com MySQL, Redis, Vertex AI e canal Telegram\n- endurece o parsing de configuracao com aliases controlados para DEBUG e normalizacao de ENVIRONMENT e CONVERSATION_STATE_BACKEND\n- centraliza a inicializacao legada do app HTTP em app.db.init_db e faz o bootstrap respeitar flags de seed e falhar explicitamente quando algum backend nao sobe\n- adiciona cobertura dedicada para parsing de settings e para o bootstrap de banco do runtime
4 weeks ago
Vitor Hugo Belorio Simão af30a81cef 🐛 fix(orchestration): blindar continuidade de contexto e fluxos estruturados de revisao e compra
- adiciona snapshots de fluxo, collected_slots e last_tool_result ao estado conversacional, incluindo persistencia no backend em memoria e no Redis\n- endurece o reaproveitamento de revisao, o reset imediato de contexto e a retomada incremental sem perder drafts apos respostas fracas do modelo\n- prioriza follow-ups operacionais de vendas antes do LLM para selecao de estoque, CPF, nova busca e continuidade de pedido/cancelamento\n- normaliza aliases de tools de compra, persiste selecoes pendentes de estoque e preserva sugestoes com budget_relaxed entre turnos\n- melhora a policy de troca de contexto para confirmacoes ambiguas, novos pedidos operacionais e onboarding orientado apos mudanca de dominio\n- amplia a cobertura de regressao para revisao, compra, cancelamento, reset global e execucao estruturada do orquestrador
1 month ago
Vitor Hugo Belorio Simão 3cf5bf863a 🚀 feat(ai): atualizar Gemini para 2.5 Pro e suportar respostas multipart do Vertex
- troca o modelo padrao do projeto para gemini-2.5-pro no settings e no .env.example\n- ajusta a cadeia de fallback para priorizar a linha 2.5 antes do 2.0 flash\n- trata respostas do Vertex com multiplos content.parts, combinando texto e function_call sem depender de response.text\n- adiciona cobertura dedicada para garantir o parse correto de respostas mistas do SDK
1 month ago
Vitor Hugo Belorio Simão 8a00b6a68e 🐛 fix(policy): corrigir troca explicita de contexto com fluxo aberto
- impede que uma compra explicita durante revisao aberta seja enfileirada cedo demais com prompt pendente do fluxo atual
- deixa a mudanca seguir para a confirmacao normal de context switch via pending_switch
- adiciona teste para garantir que a policy nao devolve resposta antecipada nem fila automatica nesse cenario
1 month ago
Vitor Hugo Belorio Simão b2e17d0c29 🐛 fix(flows): endurecer confirmacao de opcao unica e data relativa em revisao
- exige confirmacao explicita quando a busca de estoque retorna apenas 1 veiculo antes de avancar no pedido
- preserva confirmacao pendente da unica opcao e evita criacao implicita ao receber CPF ou texto livre
- captura data relativa parcial em drafts de revisao reaproveitados e passa a pedir apenas o horario faltante
- adiciona testes para opcao unica em pedidos e para reaproveitamento com data relativa seguida de horario
1 month ago
Vitor Hugo Belorio Simão 943dd57d4a 🐛 fix(review): aceitar data relativa parcial no reaproveitamento de revisao
- reconhece respostas como 'hoje' e 'amanha' no reuso do ultimo veiculo mesmo sem horario

- preserva a data-base relativa e permite completar o agendamento em uma segunda mensagem so com o horario

- adiciona teste para reaproveitamento com data relativa seguida de horario
1 month ago
Vitor Hugo Belorio Simão d4271aec91 🐛 fix(review): corrigir reaproveitamento de revisao com data parcial e resposta negativa
- preserva data sem horario no reuso do ultimo veiculo e pede apenas o horario faltante

- impede que a resposta 'nao' na confirmacao de reuso cancele o fluxo global de revisao

- abre um novo draft de agendamento quando o usuario recusa reutilizar os dados do ultimo veiculo

- adiciona testes para data parcial no reuso e para resposta negativa sem contaminar o fluxo
1 month ago
Vitor Hugo Belorio Simão 135718bc43 🐛 fix(orchestration): endurecer execucao de tools e retomada do fluxo de revisao
- saneia argumentos da tool no registry e converte erros de assinatura em falhas controladas

- normaliza argumentos de listagem de agendamentos e rebaixa call_tool incompleto de revisao mesmo com domain inconsistente

- limpa confirmacoes pendentes de revisao quando o usuario inicia um novo agendamento

- adiciona cobertura para listagem de revisoes com kwargs extras e para retomada segura do agendamento
1 month ago
Vitor Hugo Belorio Simão 95f3ed2f6b 🐛 fix(review): blindar agendamento e gestao de revisoes no fluxo estruturado
- prioriza o fluxo de agendamento e reuso do ultimo veiculo sobre respostas livres e remarcacao sem protocolo

- normaliza aliases de tools e argumentos de revisao e rebaixa call_tool incompleto para coleta incremental

- impede listagem de pedidos em mensagens de agendamentos e reforca respostas deterministicas de revisao

- extrai data/hora valida de frases longas e descarta ruido invalido em data_hora

- adiciona logs de progresso e amplia a cobertura de testes conversacionais e do contrato estruturado
1 month ago
Vitor Hugo Belorio Simão f5a7a720ed 🐛 fix(orchestration): blindar listagem e cancelamento de pedidos no fluxo estruturado 1 month ago
Vitor Hugo Belorio Simão 7a7a1f0af7 🐛 fix(state): persistir mutacoes do contexto conversacional no Redis
- adicionar save_user_context ao contrato do repositorio de estado para diferenciar leitura de persistencia explicita
- salvar o user_context apos mutacoes em memoria generica, fila, selecao pendente, troca de dominio e contexto de estoque
- alinhar o backend Redis ao comportamento do store local, evitando perder orcamento, cpf e selecoes entre turnos
- cobrir a persistencia do contexto com os harnesses de teste usados nos fluxos de venda e policy
1 month ago
Vitor Hugo Belorio Simão 64b4878cb2 🐛 fix(sales): recuperar cpf e orcamento tecnico no fluxo de compra
- extrair CPF diretamente da mensagem quando o llm falhar em preencher o draft de pedido
- extrair orcamento de formatos tecnicos como '70 mil', 'R$ 45000' e 'ate 50 mil' sem depender da decisao semantica do modelo
- relistar estoque em mensagens de continuidade quando o draft ja estiver aberto e o contexto de compra estiver suficiente
- cobrir com testes os cenarios de follow-up no Telegram em que o llm nao devolve cpf ou orcamento
1 month ago
Vitor Hugo Belorio Simão 21661e8306 🐛 fix(orchestration): priorizar fluxo de compra sobre resposta livre do modelo
- evitar que respostas answer_user ou ask_missing_fields do modelo interrompam compras ja caracterizadas
- manter o order_flow como caminho deterministico quando cpf, orcamento ou perfil ja permitem avancar
- preservar a arquitetura com o modelo decidindo o turno e o backend apenas coordenando a continuidade
- cobrir com teste de regressao o caso reproduzido no servidor para compra com orcamento e cpf
1 month ago
Vitor Hugo Belorio Simão 6fe92a0ae1 🐛 fix(orchestration): normalizar aliases do contrato de decisao do modelo
- aceitar aliases de intent retornados pelo Vertex como place_order e create_order
- converter aliases de campos faltantes como modelo_carro para vehicle_id no fluxo de compra
- redirecionar decisoes de compra quase-validas para collect_order_create em vez de cair no fallback
- cobrir com testes os formatos divergentes retornados localmente e no servidor
1 month ago
Vitor Hugo Belorio Simão e274dc9017 🧠 feat(orchestration): completar contexto de busca de compra com extracao estruturada
- adicionar uma extracao estruturada focada em orcamento e perfil de veiculo para fluxos de vendas
- acionar esse enriquecimento apenas quando o turno ja for de compra e os campos vierem vazios
- manter o backend alinhado ao contrato do modelo sem reintroduzir heuristicas locais
- cobrir o enriquecimento com teste de contrato para o fluxo de decisao
1 month ago
Vitor Hugo Belorio Simão 6d6b7291ea 🧠 feat(orchestration): reforcar extracao estruturada para pedidos de compra
- remover o fallback semantico local de orcamento e perfil do fluxo de vendas
- enriquecer o turno sempre com uma extracao dedicada de entidades apos a decisao estruturada
- endurecer os prompts para obrigar o modelo a preencher orcamento_max e perfil_veiculo em pedidos de compra
- manter o fluxo alinhado ao contrato do modelo sem reintroduzir regex conversacional
1 month ago
Vitor Hugo Belorio Simão 0eb56f1f0a 🐛 fix(sales): extrair orcamento do pedido sem depender do llm
- adicionar fallback tecnico para capturar orcamento diretamente da mensagem de compra
- inferir perfil de veiculo no fluxo de vendas quando a memoria generica vier incompleta
- garantir a listagem automatica de estoque mesmo quando o modelo nao preencher orcamento_max
- cobrir o cenario com teste focado de pedido sem hints estruturados do llm
1 month ago
Vitor Hugo Belorio Simão 5f229bd745 🐛 fix(sales): atualizar estoque pelo contexto e padronizar escolha por lista
- invalidar resultados antigos quando orcamento ou perfil de veiculo mudarem durante a compra
- relistar o estoque automaticamente ao iniciar um novo pedido com contexto atualizado
- preservar drafts de pedido em erros recuperaveis e limpar apenas o campo invalido
- remover IDs da vitrine de estoque e orientar a escolha pelo numero da opcao exibida
1 month ago
Vitor Hugo Belorio Simão 407727d80b 🧠 feat(orchestration): padronizar erros de tool e reduzir fallback deterministico
- normalizar HTTPException em um contrato estruturado com code, message, retryable e field
- preservar drafts de revisao em erros recuperaveis sem perder o restante do contexto
- delegar a resposta final de tools ao modelo com formatter deterministico apenas como fallback
- registrar request_id, conversation_id e tempos de llm/tool para rastrear cada turno
1 month ago
Vitor Hugo Belorio Simão 11ebde3127 ♻️ refactor(domain): extrair regras de negocio das tools mock
- mover regras de estoque, credito, pedidos e revisao para servicos de dominio dedicados
- manter handlers como camada fina de adaptacao para o ToolRegistry
- centralizar utilitarios compartilhados e o contrato estruturado de erro das tools
1 month ago
Vitor Hugo Belorio Simão 82fc846e01 🚗 feat(sales): listar estoque pelo contexto e reservar veiculos no pedido
Passa a aproveitar orcamento e perfil guardados na conversa para sugerir estoque quando a compra ainda nao tem veiculo definido, preservando a selecao na memoria e guiando o usuario ate o fechamento do pedido.

Tambem impede que veiculos reservados continuem aparecendo como disponiveis, devolve o status do veiculo na resposta deterministica do pedido e amplia os testes de regressao dos fluxos de compra e cancelamento.
1 month ago
Vitor Hugo Belorio Simão 8cf79174ee 🧠 feat(orquestrador): deixar o modelo decidir o turno e limitar regex a formalizacao tecnica
Introduz o contrato TurnDecision e a extracao estruturada por turno no planner para que intent, domain, action, selecao e resposta venham do modelo, com validacao Pydantic e fallback previsivel quando o JSON vier invalido.

Tambem extrai a normalizacao tecnica para um modulo dedicado e passa a usar regex apenas para formalizar CPF, placa, protocolos, datas e outros formatos estruturados, reduzindo heuristicas semanticas dentro do normalizador, da policy e dos fluxos de revisao.
1 month ago
Vitor Hugo Belorio Simão d27ebf798d 📝 docs(services): documentar responsabilidades internas do orquestrador
Adiciona comentarios objetivos nos servicos e componentes centrais para deixar explicitas as responsabilidades de integracao com LLM, estado conversacional, factories, registries e helpers de usuario.

A mudanca e apenas documental e segue a linha do projeto de explicar a arquitetura no proprio codigo sem alterar o comportamento em runtime.
1 month ago
Vitor Hugo Belorio Simão 134a5fef41 🚗 feat(sales): vincular pedido ao veiculo selecionado e endurecer fluxos conversacionais
Passa a criar pedidos de compra a partir de um veiculo concreto do estoque selecionado na conversa, reaproveitando a ultima consulta e exibindo o modelo escolhido na resposta final.

Tambem endurece a orquestracao contra vazamento de contexto entre compra, cancelamento e revisao, preserva o estado necessario no fluxo e adiciona testes de regressao para os cenarios validados no Telegram.
1 month ago
Vitor Hugo Belorio Simão 9316e3e495 feat(orchestration): adicionar infraestrutura de estado conversacional com Redis
Introduz a abstracao de repositorio de estado conversacional e a implementacao com Redis para suportar persistencia entre reinicios e execucao em multiplas instancias.

Tambem adiciona configuracoes de ambiente, dependencias e suporte local via Docker Compose para alternar entre backend em memoria e Redis de forma explicita.
1 month ago
Vitor Hugo Belorio Simão 6537808963 🐛 fix(flows): endurecer validacao e preservar drafts
Impede que consultas de estoque caiam no fluxo de compra, evita reaproveitamento implícito de CPF para criar pedidos e mantém drafts quando a execução da tool falha.

Também preserva corretamente o estado de revisão, limpando o draft apenas quando a operação conclui com sucesso ou quando a confirmação pendente passa a ser o estado principal.
1 month ago
Vitor Hugo Belorio Simão 14778fac0b ♻️ refactor(orchestration): extrair componentes do orquestrador
Move a normalização, o planejamento de mensagens, a política conversacional e a execução de tools para módulos dedicados.

Reduz o acoplamento do OrquestradorService e prepara a base para evoluções futuras com menos risco de regressão.
1 month ago
Vitor Hugo Belorio Simão c52707deb1 🧹 refactor(api): remover camada de rotas HTTP nao utilizada
- remove as rotas de chat, tools e mock que nao participam do fluxo atual via Telegram
- elimina dependencias auxiliares associadas a essas rotas
- simplifica o startup da aplicacao para operar sem registradores HTTP do orquestrador
1 month ago
Vitor Hugo Belorio Simão e21fc69926 📝 docs(test): reestruturar cenarios manuais para fluxos multiassunto
- reorganiza os testes por objetivos de validacao do orquestrador
- adiciona roteiros para fila de pedidos, troca de contexto, controle de conversa e conflitos de revisao
- amplia cobertura manual para parsing de datas, protocolos e regressao de memoria curta
1 month ago
Vitor Hugo Belorio Simão 57dc824242 🧠 feat(orquestrador): ampliar controle conversacional e hidratar cliente mock por CPF
- adiciona tools de orquestracao para limpar contexto, descartar fila, cancelar fluxo e continuar pedidos pendentes
- prioriza a decisao do LLM para comandos globais antes dos slot fillings ativos
- melhora selecao entre pedidos concorrentes e resposta deterministica das tools de orquestracao
- estrutura conflitos de horario de revisao para facilitar confirmacao posterior
- reaproveita CPF da memoria/perfil do usuario no fluxo de compra
- cria servico mock para hidratar customer e vincular users.cpf ao informar um CPF valido
1 month ago
Vitor Hugo Belorio Simão e955d64306 📝 docs(readme): alinhar documentacao com a arquitetura atual do orquestrador
Reescreve o README para refletir o estado real do projeto, incluindo stack atual, estrutura reorganizada de services, fluxo conversacional do /chat, tools implementadas, bancos utilizados, endpoints disponiveis e integracao com Telegram.

Tambem documenta limitacoes atuais do sistema, como memoria conversacional volatil e ausencia de persistencia de historico entre reinicializacoes, mantendo a documentacao coerente com a implementacao atual.
1 month ago
Vitor Hugo Belorio Simão a412f9c674 🧹 cleanup(services): reorganiza estrutura interna em subpastas por responsabilidade
Redistribui os arquivos de app/services em modulos mais claros, separando orchestration, flows, ai, tools e user sem alterar a logica de negocio ou o comportamento funcional do sistema.

Ajusta os imports afetados em rotas, startup da aplicacao e integracao com Telegram para refletir a nova organizacao interna e manter o fluxo atual intacto.

Objetivos da limpeza:

- reduzir a sensacao de pasta deposito em app/services

- tornar o papel de cada modulo mais explicito

- melhorar manutencao e navegacao do projeto

- preparar o codigo para crescimento futuro com menor acoplamento estrutural
1 month ago
Vitor Hugo Belorio Simão a6f1358c28 🧠 feat(orquestrador): fortalecer contexto multiassunto e gestão de revisão
- unifica plano de mensagem via LLM (roteamento + entidades por pedido)
- adiciona fallback de extração separada apenas quando o plano vier sem dados úteis
- reduz reprocessamento no mesmo turno com fila explícita e avanço por 'continuar'
- melhora UX de fila com aviso determinístico de pedidos enfileirados
- amplia intents de revisão: listagem, cancelamento e remarcação
- adiciona campos dedicados para gestão de revisão (protocolo, nova_data_hora, motivo)
- implementa slot filling para cancelar/remarcar revisão com prompts de faltantes
- reforça regras de troca de contexto quando há fluxo de revisão aberto
- adiciona memória curta do último pacote de revisão com TTL (20 min)
- implementa confirmação de reuso de pacote para novo agendamento
- quando reuso confirmado, coleta apenas data/hora e mantém demais dados
- preserva arquitetura: LLM decide e extrai; sistema normaliza, valida, mantém estado e executa tools

 Benefícios:
- maior robustez em cenários ambíguos de revisão
- melhor continuidade entre assuntos sem perder contexto
- menor atrito no reagendamento de revisões semelhantes
1 month ago
Vitor Hugo Belorio Simão 3bc23e63d1 perf(llm): reduzir latência com warmup, cache e execução não bloqueante
- inicializa Vertex AI uma única vez por processo
- adiciona cache de modelos GenerativeModel por nome
- adiciona cache da conversão de tools para formato Vertex
- executa send_message em asyncio.to_thread para não bloquear o loop async
- adiciona método warmup no LLMService (best effort)
- executa warmup no startup da API FastAPI
- executa warmup no startup do Telegram Satellite

🎯 Resultado esperado:
- menor latência no primeiro request (cold start)
- menor overhead por requisição subsequente
- melhor throughput em cenários concorrentes
1 month ago
Vitor Hugo Belorio Simão e79be95264 ♻️ refactor(orquestrador): migrar decisoes para LLM e isolar memoria por assunto
- centraliza configuracoes do orquestrador em orchestrator_config.py (TTLs, campos obrigatorios, respostas deterministicas e low-value)

- migra extracao de entidades e intents para o modelo, mantendo no codigo apenas normalizacao/validacao e execucao

- troca heuristicas locais de intencao/roteamento por contratos de intents e roteamento multiassunto via LLM

- melhora observabilidade da extracao com logs para payload vazio/invalido e falhas do extrator

- corrige continuidade de contexto no slot-filling de revisao e normaliza datas relativas (hoje/amanha)

- adiciona fluxos incrementais para criar/cancelar pedido e integra com fila de assuntos

- implementa memoria compartilhada + memoria de trabalho por assunto (estilo nova aba) para reduzir contaminacao entre contextos
1 month ago
Vitor Hugo Belorio Simão 29faec5464 ♻️ refactor(orquestrador): consolidar contexto multiassunto com continuidade automática
- evita interromper fluxo ativo ao receber mensagem com dois assuntos

- enfileira assuntos secundarios e avanca automaticamente apos concluir o atual

- remove metodos legados sem uso no orquestrador (roteamento antigo por regex)

- remove metodo sem uso em UserRepository para reduzir codigo morto
1 month ago
Vitor Hugo Belorio Simão af513f5583 🐛 fix(orquestrador): interromper cadastro de revisao ao trocar de intencao 1 month ago
Vitor Hugo Belorio Simão f09081150f feat(review-api): adicionar fluxos de listar, cancelar e remarcar revisao 1 month ago
Vitor Hugo Belorio Simão f818258fec ♻️ chore: remove artefatos legados de deploy no Google Cloud e limpa documentacao de infraestrutura antiga
- remove arquivos nao utilizados no modelo atual de hospedagem: app.yaml, cloudbuild.yaml, deploy.sh, setup-gcp.sh, setup-database.sh e .gcloudignore
- remove documentacoes antigas de infraestrutura GCP/Cloud SQL (GUIA_COMPLETO_CONFIGURE_E_DEPLOY.md e CLOUD_SQL_PROXY.md)
- atualiza README para refletir o fluxo vigente em servidor da empresa, removendo referencias a Cloud Run/Cloud Build
- limpa .env.example removendo blocos de configuracao legados de Cloud SQL/Cloud Run
- ajusta comentario legado em app/core/settings.py, mantendo compatibilidade sem vincular a Cloud Run
- preserva configuracoes e orientacoes relacionadas ao Vertex AI
1 month ago
Vitor Hugo Belorio Simão 63040d472c feat: aprimora fluxo de agendamento de revisao com memoria de contexto, validacao de conflitos e sugestao inteligente de horarios
- adiciona coleta incremental de dados (slot filling) por usuario para placa, data/hora, modelo, ano, km e historico de revisao, evitando perda de contexto entre mensagens
- implementa extracao auxiliar por regex para interpretar respostas curtas e completar o payload de revisao sem depender totalmente do modelo
- passa a bloquear conflito global de agenda no mesmo horario (independente de usuario/veiculo) e sugerir proximo horario disponivel
- adiciona confirmacao de sugestao pendente (ex.: "pode") e remarca??o quando o cliente recusa o horario sugerido (incluindo casos com apenas novo horario)
- amplia a tool de agendar revisao com novos campos obrigatorios e calculo de valor estimado da revisao com base em modelo, ano, km e fidelidade de revisoes anteriores
- atualiza schemas e rota mock para refletir o novo contrato de agendamento
- endurece o satelite do Telegram com prevencao de instancia duplicada e descarte de backlog no startup para reduzir respostas repetidas
1 month ago
Vitor Hugo Belorio Simão f061657ad3 ♻️ refactor(api-routes): reorganizar rotas em pacote app/api/routes 1 month ago
Vitor Hugo Belorio Simão 5a5d7f547e feat(users): vincular operacoes ao usuario com user_id e ownership 1 month ago
Vitor Hugo Belorio Simão 0225ecb2dd ♻️ refactor(db-models): reorganizar models em pacote por entidade 1 month ago
Vitor Hugo Belorio Simão 31916bacc3 🐛 fix(telegram): tratar erros de dominio e melhorar respostas operacionais 1 month ago
Vitor Hugo Belorio Simão e6ce076785 📝 docs(comments): documentar fluxos, rotas e configuracoes do servico 1 month ago
Vitor Hugo Belorio Simão 8e35d33fd3 📝 docs(deploy): adicionar guia de deploy no servidor e service systemd 1 month ago
Vitor Hugo Belorio Simão 0f548a3e1a 🔧 chore(deploy): ajustar leitura de variaveis para .env.prod 1 month ago
Vitor Hugo Belorio Simão 78dc4de656 ♻️ refactor(db): migrar tools para MySQL e ajustar inicializacao 1 month ago
Vitor Hugo Belorio Simão 3f1024d342 chore: removendo arquivos de cache Python do versionamento 2 months ago
Vitor Hugo Belorio Simão c1974d8379 docs: atualizando documentacao para arquitetura Postgres + MySQL 2 months ago