Pede AI
Chatbot de pedidos com IA para lanchonetes. O sistema usa NLP e LLMs para entender mensagens de clientes, classificar intenções, extrair itens do cardápio e gerenciar um fluxo conversacional de pedidos.
Arquitetura
O fluxo de conversação é construído com LangGraph:
verificar_etapa— verifica o estado atual da conversarouter— classifica a intenção via cadeia: Lookup (tokens exatos) → RAG (embeddings + votação) → LLM (fallback)extrator— extrai itens do cardápio via spaCy + fuzzy matching (apenas para intent='pedir')handlers— executa a ação correspondente à intençãoclarificacao— se item tem variantes pendentes, pergunta qual o usuário quer
A extração de entidades usa spaCy EntityRuler com patterns gerados do cardápio YAML, com fallback de fuzzy matching (rapidfuzz).
A persistência do estado usa SQLite via LangGraph Checkpointer.
A observabilidade é feita via CSV loggers com consultas DuckDB.
Stack
- Python 3.12+ · FastAPI · LangChain · LangGraph
- Ollama (
qwen3.5:2b) · Groq (llama-3.1-8b-instant) - spaCy (
pt_core_news_sm) · rapidfuzz · sentence-transformers - Pydantic · DuckDB · Uvicorn · Typer · uv
Referência da API
- Config — Loaders de configuração com cache
- Extratores — Extração NLP modular (spaCy + fuzzy)
- Graph — Grafo LangGraph (builder, state, nodes)
- Handlers — Handlers por intenção (SRP)
- Observabilidade — Logger CSV + consultas DuckDB
- Roteador — Classificação de intenções (Lookup → RAG → LLM)
- Infra — Providers de LLM e Embedding
- Scripts — Scripts utilitários