📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Guia de Inteligência Artificial. Recomendado revisar antes de começar.
v1.0 — Inteligência Artificial, Retrieval-Augmented Generation, Vector DBs e LangChain
Trilha de Especialização Pedagógica — Projeto 1 de 4
- ➡️ v1 (este): Pipeline RAG · Vector DB (Chroma) · Embeddings · Injeção Contextual
- v2: Agente Autônomo com Function Calling & Tool Use
- v3: Fine-Tuning de LLMs com LoRA / QLoRA
- v4: Sistema de Avaliação de IA com RAGAS & Guardrails de Segurança
🎓 Nível Profissional Simulado: Engenheiro de Inteligência Artificial / LLM Developer. A habilidade mais procurada no mercado de inteligência artificial aplicada é construir sistemas RAG (Retrieval-Augmented Generation): permitindo que modelos como GPT-4 ou Gemini consultem manuais, contratos e bases de dados corporativas em tempo real sem alucinações.
—`
Construir um Pipeline RAG (Retrieval-Augmented Generation) completo em Python, implementando carregamento de PDFs/manuais, divisão de texto em chunks com sobreposição, geração de Embeddings Vetoriais, armazenamento e busca por similaridade semântica em Vector Database e resposta contextualizada via LLM.
—`
“Nossos atendentes de suporte gastam 20 minutos buscando regras nos 50 PDFs de políticas internas da empresa. Queremos um assistente de IA onde o operador faça uma pergunta em linguagem natural, o sistema busque os 3 trechos mais relevantes dos manuais e a LLM responda de forma resumida e cite a página exata da fonte oficial, sem inventar informações.”
| ID | Tipo | Descrição | Origem no Briefing |
|---|---|---|---|
| RF01 | Funcional | Fragmentar documentos em chunks de 500 caracteres com overlap de 50 caracteres. | “50 PDFs de políticas internas” |
| RF02 | Funcional | Gerar representações vetoriais (Embeddings) e indexar no Vector Database. | “busque os 3 trechos mais relevantes” |
| RF03 | Funcional | Injetar o contexto resgatado no prompt da LLM com instrução anti-alucinação. | “sem inventar informações” |
| RF04 | Funcional | Retornar a resposta final acompanhada das fontes documentais citadas. | “cite a página exata da fonte” |
| RNF01 | Não-Funcional | Similaridade calculada via Distância de Cosseno em sub-segundos. | Eficiência de Busca |
| RNF02 | Não-Funcional | Prompt com Guardrail impedindo respostas fora do contexto indexado. | Segurança de IA |
—`
| ID | User Story | Prioridade |
|---|---|---|
| US01 | Como atendente, quero perguntar ‘Qual o prazo de reembolso?’ e receber a resposta exata da política. | Alta |
| US02 | Como compliance, quero auditar as fontes citadas para validar a conformidade da resposta. | Alta |
—`
# Branch da funcionalidade
git checkout -b feature/US01-rag-pipeline-embeddings
# Executar o pipeline RAG
python rag_pipeline.py
—`
rag_pipeline.py)from sentence_transformers import SentenceTransformer
import chromadb
# 1. Inicializar modelo de Embeddings e Banco Vetorial
model = SentenceTransformer('all-MiniLM-L6-v2')
client = chromadb.Client()
collection = client.create_collection("politicas_empresa")
# 2. Indexar documentos corporativos
docs = [
"A política de reembolso prevê devolução integral em até 7 dias úteis.",
"O cancelamento de assinaturas pode ser feito pelo portal a qualquer momento."
]
embeddings = model.encode(docs).tolist()
collection.add(ids=["doc1", "doc2"], documents=docs, embeddings=embeddings)
# 3. Busca por Similaridade Semântica
pergunta = "Em quantos dias recebo meu dinheiro de volta?"
pergunta_emb = model.encode([pergunta]).tolist()
resultados = collection.query(query_embeddings=pergunta_emb, n_results=1)
print("Contexto Recuperado com Sucesso:", resultados['documents'][0])
—`
No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:
cd ia_01_rag_embeddings_llm
pip install -r requirements.txt
python app.py
[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd proj_aplicacoes_full_stack/projetos/ia_01_rag_embeddings_llm`
—`
—`
- Documentos vetorizados e indexados no ChromaDB.
- Resposta contextualizada gerada com citação de fontes.
| ⬅️ Ver Todos os Projetos no Super-Hub | 🏠 Página Inicial do Portal |