Este projeto implementa um sistema de RAG (Retrieval-Augmented Generation), a arquitetura moderna para construir chatbots que respondem a perguntas baseadas em documentos especĆficos, mitigando o problema central de alucinação em LLMs.
O sistema utiliza o artigo tƩcnico "Attention Is All You Need" (o paper original dos Transformers) como base de conhecimento.
- Python 3.9+
- LangChain: Framework de orquestração de IA para construir a cadeia RAG.
- Google Gemini 1.5 Flash: O Large Language Model (LLM) de alta performance responsÔvel pela Geração Aumentada das respostas.
- FAISS (Meta): Banco de dados de vetores ultrarrÔpido para persitência e busca (
Retrieval) dos embeddings. - Google Generative AI Embeddings: Modelo de embedding para vetorização do texto.
- Boas PrƔticas: Uso de
python-dotenv,venve.gitignorepara seguranƧa e reprodutibilidade.
A lógica RAG garante que a resposta seja factualmente precisa, seguindo três etapas orquestradas:
- Ingestão/Pipeline de Dados: O script
ingest.pycarrega o PDF, divide o texto em chunks e cria embeddings vetoriais armazenados localmente via FAISS. - Recuperação (Retrieval): Ao receber uma pergunta, o sistema busca os 4 trechos (top-k) mais relevantes no Vector Store (FAISS).
- Geração Aumentada (Generation): O contexto recuperado + a pergunta sĆ£o enviados ao Gemini, instruĆdo via Prompt Engineering a responder estritamente baseado nos dados fornecidos.
- Clone o repositório:
git clone [https://github.com/SEU_USUARIO/Portfolio-RAG-Chatbot-Gemini.git](https://github.com/SEU_USUARIO/Portfolio-RAG-Chatbot-Gemini.git) cd Portfolio-RAG-Chatbot-Gemini - Configuração de Segurança: Crie um arquivo
.envna raiz com sua chave da API do Google:GOOGLE_API_KEY="SUA_CHAVE_AQUI" - Instale as dependĆŖncias:
pip install -r requirements.txt
- Execute a Ingestão de Dados (Criação do Vector Store):
python ingest.py
- Inicie o Chatbot:
python rag_chat.py
| Pergunta | Resultado Esperado | Valor Demonstrado |
|---|---|---|
| "O que Ć© Scaled Dot-Product Attention?" | Explicação tĆ©cnica baseada no artigo. | ā PrecisĆ£o e Uso do Contexto |
| "Quais sĆ£o os autores?" | Lista dos autores do paper. | ā Extração de Fato |
| "Qual a capital da FranƧa?" | "NĆ£o encontrei a informação no documento." | š Prova de Mitigação de AlucinaƧƵes |
Projeto desenvolvido para fins de estudo em Engenharia de IA e LLMs.