Imobiliária IA é uma plataforma completa e robusta para automação do atendimento de imobiliárias através do WhatsApp. Utilizando uma arquitetura de microsserviços e Inteligência Artificial de ponta, este sistema é capaz de capturar, gerenciar e atender leads de forma totalmente autônoma.
O coração do projeto é um assistente de IA que não apenas responde a perguntas comuns, mas utiliza RAG (Retrieval-Augmented Generation) para fornecer informações precisas consultando uma base de conhecimento personalizada e um banco de dados de imóveis sempre atualizado por um web crawler.
- 🤖 Atendimento via WhatsApp: Integração total com o WhatsApp através da Evolution API para envio e recebimento de mensagens.
- 🗣️ Comunicação Multimodal: Suporte para interação por mensagens de texto e áudio, com transcrição (Speech-to-Text) e síntese de voz (Text-to-Speech).
- 🧠 Inteligência Artificial com RAG: O assistente de IA responde a perguntas específicas sobre a imobiliária (corretores, endereço, etc.) consultando uma base de dados vetorial com informações personalizadas.
- 🕷️ Web Crawler de Imóveis: Um crawler automatizado, construído com Playwright e BeautifulSoup, que varre portais imobiliários para manter o banco de dados de imóveis sempre atualizado.
- ⚙️ Orquestração com n8n: Fluxos de trabalho complexos que gerenciam a lógica do atendimento, desde o recebimento da mensagem até a resposta final da IA.
- 🗃️ Banco de Dados Robusto: Utiliza PostgreSQL para armazenar dados de imóveis, clientes e histórico de conversas, além de servir como um Vector Store com a extensão
pgvector. - 🐳 Arquitetura de Microsserviços: Todo o sistema é containerizado com Docker, garantindo escalabilidade, resiliência e facilidade de implantação.
O projeto é composto por um ecossistema de serviços que trabalham em conjunto, orquestrados pelo Traefik e gerenciados via Docker Compose.
| Serviço | Tecnologia | Função |
|---|---|---|
| Orquestração | n8n | Cérebro da automação, executa os workflows de atendimento. |
| WhatsApp API | Evolution API | Ponte de comunicação com o WhatsApp. |
| Banco de Dados | PostgreSQL + pgvector | Armazena dados relacionais (imóveis, chats) e vetoriais (para RAG). |
| Web Crawler | Python, Playwright | Coleta dados de imóveis de portais web. |
| Armazenamento | Minio | Armazena arquivos e mídias, como mensagens de áudio. |
| Cache & Fila | Redis | Gerencia a fila de execuções do n8n e cache. |
| Reverse Proxy | Traefik | Roteia o tráfego externo para os serviços internos e gerencia SSL. |
| Voz (TTS) | ElevenLabs | Converte as respostas de texto da IA em áudio. |
| IA (LLM) | OpenAI | Utilizada para o agente de IA, transcrição de áudio e embeddings. |
Para executar este projeto, é recomendado ter um ambiente Linux (VPS) com Docker e Docker Compose instalados. Você também precisará de um domínio e subdomínios configurados para os diferentes serviços.
- Docker e Docker Compose: Instruções de Instalação.
- Git: Para clonar o repositório.
- Domínio: Um domínio configurado para apontar para o IP do seu servidor.
- Chaves de API:
- OpenAI
- ElevenLabs (Opcional, para respostas em áudio)
-
Clone o repositório:
git clone [https://github.com/seu-usuario/imobiliaria-ia.git](https://github.com/seu-usuario/imobiliaria-ia.git) cd imobiliaria-ia -
Configure as Variáveis de Ambiente: Este projeto utiliza variáveis de ambiente para gerenciar todas as chaves e senhas. Nunca grave dados sensíveis diretamente nos arquivos de configuração.
- Copie o arquivo de exemplo:
cp .env.example .env
- Edite o arquivo
.enve preencha todas as variáveis com suas próprias credenciais e configurações:# .env # DOMÍNIOS E E-MAIL (Usado pelo Traefik para SSL) DOMAIN=zapoferta.com.br TRAEFIK_EMAIL[email protected] # CREDENCIAIS N8N N8N_ENCRYPTION_KEY=gere_uma_chave_segura_aqui # CREDENCIAIS POSTGRES POSTGRES_PASSWORD=sua_senha_forte_aqui # CREDENCIAIS MINIO MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=sua_senha_forte_para_minio # CREDENCIAIS EVOLUTION API EVOLUTION_API_KEY=sua_chave_da_evolution_api # CREDENCIAIS DE SERVIÇOS DE IA OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx ELEVENLABS_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxx # ... e outras variáveis conforme o .env.example
- Copie o arquivo de exemplo:
-
Execute os Serviços com Docker Compose: O projeto é dividido em múltiplos arquivos
docker-compose. Você pode iniciá-los como stacks no Portainer ou diretamente via linha de comando.# Exemplo para iniciar a stack principal docker-compose -f ./Docker/docker-compose.yml up -d # Exemplo para iniciar o crawler docker-compose -f ./crawler/docker-compose.yml up -d
- Base de Conhecimento (RAG): Para alterar as informações que a IA sabe sobre a imobiliária, simplesmente edite o arquivo
RAG/conhecimento_imobiliaria.txt. Após a alteração, você precisará executar o fluxo de "carga" no n8n para reindexar os dados no banco vetorial. - Fluxos de Atendimento: Toda a lógica de atendimento pode ser customizada diretamente na interface do n8n. Os arquivos de workflow estão na pasta
/Workflows. - Coleta de Imóveis: O script do crawler está em
/crawler/scripts/main.py. Você pode adaptá-lo para coletar dados de outros portais ou extrair informações diferentes.
Este é um projeto complexo com muitas partes móveis. Se você encontrar problemas na configuração, tiver dúvidas sobre a arquitetura ou precisar de ajuda para adaptar o projeto às suas necessidades, não hesite em entrar em contato!
- E-mail:
[email protected] - Whatsapp:
https://bit.ly/dbltecnologia - Abra uma Issue: Se encontrar um bug ou tiver uma sugestão, abra uma issue aqui no GitHub.
Ficarei feliz em ajudar!
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.