📐 O que sao Embeddings
Embeddings sao representacoes numericas de texto (vetores) que capturam significado semantico. Textos similares tem vetores proximos no espaco.
Como Funcionam
"O gato dormiu" → [0.23, -0.45, 0.12, ...]
"O felino descansou" → [0.21, -0.43, 0.14, ...] (similar!)
"Python e uma linguagem" → [-0.89, 0.32, 0.67, ...] (diferente)
Gerando Embeddings
from openai import OpenAI
client = OpenAI()
response = client.embeddings.create(
model="text-embedding-3-small",
input="O gato dormiu no sofa"
)
embedding = response.data[0].embedding # [0.23, -0.45, ...]
🗄️ Vector Databases
Vector databases sao otimizados para armazenar e buscar vetores de alta dimensao de forma eficiente.
Pinecone
- • Managed service
- • Escala automatica
- • Metadata filtering
- • Free tier generoso
Chroma
- • Open-source
- • Roda local
- • Simples de usar
- • Bom para dev
Weaviate
- • GraphQL API
- • Hybrid search
- • Modules para ML
- • Self-hosted ou cloud
🔍 Busca Semantica
Diferente de busca por keywords, busca semantica encontra conteudo por significado, mesmo com vocabulario diferente.
Keyword Search
Query: "como fazer deploy"
Nao encontra: "publicar aplicacao em producao"
Semantic Search
Query: "como fazer deploy"
Encontra: "publicar aplicacao em producao" ✓
Busca com Chroma
import chromadb
client = chromadb.Client()
collection = client.create_collection("docs")
# Adicionar documentos
collection.add(
documents=["Como fazer deploy no AWS", "Guia de Python"],
ids=["doc1", "doc2"]
)
# Buscar
results = collection.query(query_texts=["publicar aplicacao"], n_results=2)
📚 RAG - Retrieval Augmented Generation
RAG combina busca semantica com geracao LLM: primeiro busca contexto relevante, depois gera resposta informada.
Pipeline RAG
💡 Beneficios do RAG
- • Reduz hallucinations - respostas baseadas em dados reais
- • Conhecimento atualizado - nao limitado ao training cutoff
- • Dados privados - usa documentos internos da empresa
- • Citacoes - pode referenciar fontes
✂️ Chunking Strategies
Chunking e o processo de dividir documentos em pedacos menores para embedding. A estrategia impacta diretamente a qualidade do RAG.
Fixed Size
Chunks de tamanho fixo (ex: 500 tokens). Simples mas pode cortar contexto.
Recursive
Divide por paragrafos, depois sentencas. Respeita estrutura do texto.
Semantic
Agrupa por similaridade semantica. Melhor qualidade, mais complexo.
Overlap
Chunks com sobreposicao. Preserva contexto nas bordas.
📝 Skills com RAG
Skills podem usar RAG para se tornarem especialistas em dominios especificos com acesso a conhecimento privado.
Knowledge Base Skill
---
name: company-knowledge
description: Responde perguntas sobre a empresa.
Use quando usuario perguntar sobre politicas, processos, produtos.
allowed-tools: Bash(python:*)
---
# Company Knowledge Expert
Para responder perguntas sobre a empresa:
```bash
python scripts/rag_query.py --question "$QUESTION"
```
O script busca no Chroma DB com docs da empresa e retorna resposta com citacoes.
## Fontes disponiveis
- Handbook do funcionario
- Politicas de RH
- Documentacao de produtos
- FAQs internos
🎯 Proximo Passo
No proximo modulo, exploramos Observabilidade - LangSmith, tracing, metricas e como monitorar AI em producao.
📚 Resumo do Modulo
Proximo Modulo:
4.7 - Observabilidade