Projeto desenvolvido para o Challenger Alura, com o objetivo de construir um agente inteligente capaz de responder dúvidas de colaboradores de uma empresa com base em documentos internos.
A aplicação utiliza a técnica de RAG (Retrieval-Augmented Generation) para consultar documentos corporativos, recuperar os trechos mais relevantes e gerar respostas contextualizadas, reduzindo o risco de respostas sem base documental.
O agente foi desenvolvido para auxiliar colaboradores em dúvidas relacionadas a documentos internos da empresa, como:
- Políticas de Recursos Humanos;
- Política de Reembolso;
- FAQ de Benefícios;
- Procedimentos e regras internas.
Além de responder às perguntas, o agente apresenta as fontes utilizadas na resposta, permitindo que o usuário consulte o documento de origem.
O funcionamento da aplicação pode ser dividido em cinco etapas principais:
Os documentos PDF disponíveis na pasta ./data são carregados utilizando o PyPDFLoader.
Os documentos são divididos em pequenos blocos de texto utilizando o RecursiveCharacterTextSplitter.
Essa etapa facilita a recuperação de trechos específicos durante a consulta.
Os trechos são transformados em vetores utilizando o modelo de embeddings da Google.
Os embeddings são armazenados localmente no ChromaDB, permitindo realizar buscas semânticas posteriormente.
Quando o usuário realiza uma pergunta:
- A pergunta é transformada em embedding;
- O ChromaDB busca os trechos semanticamente mais relevantes;
- Os 3 trechos mais relevantes são recuperados;
- Esses trechos são enviados como contexto para o modelo Gemini;
- O agente gera uma resposta baseada nas informações recuperadas;
- As fontes utilizadas são apresentadas ao usuário.
A interação com o agente é realizada através de uma interface de chat desenvolvida com Streamlit.
| Tecnologia | Utilização |
|---|---|
| Python 3.10+ | Linguagem principal |
| LangChain | Construção do pipeline RAG |
| Google Gemini API | LLM e geração de embeddings |
| ChromaDB | Banco de dados vetorial |
| Streamlit | Interface web |
| PyPDFLoader | Leitura dos documentos PDF |
| Oracle Cloud Infrastructure (OCI) | Hospedagem da aplicação |
Challenger-Alura/
│
├── data/
│ └── documentos.pdf
│
├── app.py
├── requirements.txt
├── .env
├── .gitignore
└── README.md
A estrutura acima representa a organização principal do projeto. Caso existam outros arquivos ou diretórios no projeto, eles podem ser adicionados posteriormente.
git clone https://github.com/Stefane-7/Challenger-Alura.git
cd Challenger-Alurapython -m venv .venvAtive o ambiente:
.\.venv\Scripts\activatepython3 -m venv .venvAtive o ambiente:
source .venv/bin/activatepip install -r requirements.txtCrie um arquivo .env na raiz do projeto:
GOOGLE_API_KEY=sua_chave_aquiImportante: nunca publique sua chave da API no GitHub. Certifique-se de que o arquivo
.envesteja incluído no.gitignore.
Coloque os documentos PDF que serão utilizados pelo agente dentro da pasta:
data/
streamlit run app.pyApós a execução, o Streamlit disponibilizará a aplicação localmente no navegador.
O agente pode responder perguntas relacionadas aos documentos disponíveis na base de conhecimento, como:
- "Qual é a política de reembolso da empresa?"
- "Quais benefícios estão disponíveis para os colaboradores?"
- "Quais são os critérios para solicitar um reembolso?"
- "Como funciona o benefício de alimentação?"
- "Qual é o prazo para solicitar um reembolso?"
As respostas são baseadas nos documentos disponíveis na base de conhecimento.
A aplicação também foi preparada para execução em ambiente de nuvem utilizando uma instância da Oracle Cloud Infrastructure (OCI).
A infraestrutura permite disponibilizar o agente para acesso remoto, mantendo a aplicação e sua base de conhecimento hospedadas em um ambiente de nuvem.
Informações sensíveis, como chaves de API, não devem ser armazenadas diretamente no código-fonte.
Utilize variáveis de ambiente para armazenar credenciais:
GOOGLE_API_KEY=sua_chave_aquiO arquivo .env deve estar listado no .gitignore:
.env
.venv/
__pycache__/Este projeto foi desenvolvido como parte do Challenger Alura, com foco na aplicação prática de conceitos de:
- Inteligência Artificial Generativa;
- RAG (Retrieval-Augmented Generation);
- Busca semântica;
- Embeddings;
- Bancos de dados vetoriais;
- Desenvolvimento de aplicações com LLMs;
- Cloud Computing.
Stefane Oliveira
Projeto desenvolvido para fins educacionais e de portfólio.