Pipeline RAG (scraping → embeddings → ChromaDB) para responder perguntas sobre produtos a partir do site do fornecedor.
Sistema de chat WhatsApp com LLM e RAG (Retrieval-Augmented Generation) para produtos da Óleos da Terra.
Este projeto realiza web scraping do site Óleos da Terra, processa os dados dos produtos e os armazena em um banco de dados vetorial (ChromaDB) para uso em um sistema RAG. O objetivo é criar um assistente inteligente capaz de responder perguntas sobre os produtos usando informações atualizadas.
- Web Scraping: Coleta automática de dados de produtos do site Óleos da Terra
- Processamento de Dados: Extração e formatação de informações relevantes dos produtos
- Geração de Embeddings: Criação de representações vetoriais dos produtos usando Ollama
- Armazenamento Vetorial: Indexação dos produtos no ChromaDB para busca semântica eficiente
- Sistema RAG: Preparado para integração com LLMs para respostas contextualizadas
- Clone o repositório:
git clone https://github.com/seu-usuario/chatoleos.git
cd chatoleos- Instale as dependências:
pip install -r requirements.txt- Instale e configure o Ollama:
- Baixe o Ollama de ollama.ai
- Execute:
ollama pull mxbai-embed-large
O arquivo ingest_to_rag.py contém as seguintes configurações principais:
PRODUCTS_FILE = "products_data.json" # Arquivo de dados dos produtos
CHROMA_DB_PATH = "chroma_db_store" # Pasta do banco vetorial
EMBEDDING_MODEL_NAME = "mxbai-embed-large" # Modelo de embeddings
SCRAPER_MAX_PRODUCTS = 200 # Máximo de produtos para coletarpython ingest_to_rag.pyEste comando irá:
- Verificar se existe um arquivo de produtos
- Executar o scraper se necessário
- Gerar embeddings para cada produto
- Armazenar tudo no ChromaDB
Cada produto contém:
- title: Nome do produto
- description: Descrição detalhada
- price: Preço
- category: Categoria
- url: Link do produto
- images: URLs das imagens
- extra_info: Informações adicionais
Chatoleos/
├── README.md # Este arquivo
├── requirements.txt # Dependências do projeto
├── scraper.py # Módulo de web scraping
├── ingest_to_rag.py # Script principal de ingestão
├── products_data.json # Dados coletados (gerado)
└── chroma_db_store/ # Banco de dados vetorial (gerado)
Se receber erro ao conectar com Ollama:
- Verifique se o Ollama está rodando:
ollama list - Confirme se o modelo está instalado:
ollama pull mxbai-embed-large - Verifique se a API está acessível em
http://localhost:11434
Se houver problemas com o ChromaDB:
- Delete a pasta
chroma_db_storee execute novamente - Verifique a versão:
pip show chromadb
Contribuições são bem-vindas! Por favor:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
