(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
RAG no Microsoft Fabric: implementar e operar embeddings
Inteligência Artificial

RAG no Microsoft Fabric: implementar e operar embeddings

João Barros 15/09/2026 8 min

RAG não é magia — é engenharia: aproxime consultas humanas ao conhecimento da sua organização usando embeddings bem concebidos, indexação eficiente e pipelines reprodutíveis no Microsoft Fabric.

Porquê adoptar RAG no Microsoft Fabric?

O fenómeno da Retrieval-Augmented Generation (RAG) combinou duas ideias simples com enorme impacto: usar um índice vetorial para recuperar contexto relevante e alimentar um grande modelo de linguagem (LLM) para gerar respostas contextualizadas. Para organizações que já utilizam Microsoft Fabric — OneLake, Lakehouses, compute e Power BI — RAG permite aproveitar o investimento existente em dados e governação para criar assistentes internos, motores de pesquisa empresarial e enriquecimento de relatórios.

RAG no Microsoft Fabric: implementar e operar embeddings

Ao integrar RAG diretamente no Fabric, ganha-se coerência operacional: os dados ficam sob as mesmas políticas de acesso e auditoria, os pipelines de ingestão são os mesmos e pode-se escalar usando compute nativo. Não se trata apenas de construir um chatbot: é sobre tornar informação essencial pesquisável e verificável pelos processos de negócio.

Arquitectura prática: componentes essenciais

Uma arquitectura RAG prática em Fabric tem quatro blocos principais: (1) ingestão e normalização de conteúdos (documentos, FAQs, transcrições), (2) geração de embeddings, (3) índice vetorial (vector store) e (4) orquestração do retrieval + LLM para respostas. Em Fabric, os ficheiros e metadados residem em OneLake/Lakehouse; os embeddings podem ser armazenados como tabelas Delta; o índice ANN (approximate nearest neighbour) corre em compute (notebooks Python/Apache Spark) e as chamadas ao LLM podem ser feitas via API externa (Azure OpenAI, outro serviço) ou modelos open‑source servidos internamente.

Para produção, acrescente duas camadas operacionais: pipelines agendados para reindexação incremental e um serviço de serving (API) que combina pesquisa vetorial e prompt engineering. Em Fabric, o serviço de serving pode ser um endpoint containerizado a correr numa VM/AKS ligado às tabelas do Lakehouse, ou uma função Azure que invoca notebooks para tarefas ligeiras.

Gerar e gerir embeddings no Fabric

A geração de embeddings é um ponto crítico: escolha de modelo, batching e armazenamento determinam custo e desempenho. Prática recomendada: gerar embeddings em batch via notebooks Python em Spark para paralelizar, e registar o processo (metadados, hash do documento, versão do modelo) numa tabela de auditabilidade. Cada embedding típico (por exemplo 1 536 dimensões em float32) ocupa cerca de 6 MB por 1000 embeddings — isto importa para planear armazenamento.

Versões de modelos importam. Registe meta‑informação (modelo, hiperparâmetros, data de geração) e guarde um hash do conteúdo para detectar necessidade de re‑embedding. Use chaves de versionamento na tabela Delta: document_id, chunk_id, model_version, embedding_vector[]. Assim, quando atualizar para um modelo mais preciso, sabe exactamente quantos embeddings precisam de ser regenerados.

Indexação, chunking e qualidade de embeddings

Como partir documentos? Chunking é uma arte com regras práticas: para documentação técnica use janelas de 500–1 000 tokens com overlap de 50–100 tokens; para FAQs e e‑mails, chunks menores (150–300 tokens) tornam a recuperação mais precisa. A qualidade do chunking influencia recall e precisão do RAG. Normalizações simples — remover boilerplate, detecção de idioma e deduplicação prévia — reduzem custos e melhoram relevância.

Para indexação vetorial, duas abordagens comuns em Fabric: (i) manter embeddings numa tabela Delta e executar ANN em memória usando Faiss/HNSWlib num compute cluster; (ii) integrar um serviço especializado (Azure Cognitive Search, ou vector DB gerido). A opção (i) é vantajosa quando se pretende controlar latência e custos com recursos já contratados; a (ii) reduz a operacionalização. Em qualquer caso, teste top‑k entre 5–50 e aplique reranking com BM25 ou scoring híbrido (vetorial + lexical).

Latência, custos e estratégias de caching

Produzir um RAG responsivo exige equilíbrio entre custo e performance. Estratégias úteis: guardar em cache resultados de consultas frequentes, pré‑computar embeddings para conteúdos estáveis e usar índices ANN com parâmetros ajustáveis (ef/efSearch, nprobe) consoante o SLA. Em Fabric, armazenar embeddings como float16 reduz o tamanho em 50% com impacto mínimo na qualidade, quando suportado.

Alguns números operacionais para dimensionamento: um índice de 100k embeddings (1 536 dims, float32) ocupa ≈ 600 MB; um cluster de 4 vcores com 16 GB RAM pode servir buscas ANN com latências de 30–150 ms dependendo do algoritmo e do k. Geração em batch de 10k embeddings pode demorar entre 10–30 minutos num cluster de 8 vcores, dependendo do overhead I/O. Estes números permitem estimativas de custo infraestrutural e planeamento de janelas de manutenção.

Integração com Power BI: do RAG ao relatório accionável

Integrar RAG com Power BI é muitas vezes subestimado. Há dois padrões práticos: (1) ligar relatórios a tabelas pré‑computadas que contenham respostas ou resumos RAG, e (2) expor um endpoint de serving que o Power BI (via Power Query ou Azure Function) consome em tempo real para enriquecer dashboards. O primeiro padrão é excelente para latência previsível e auditoria; o segundo para interacções conversacionais ou exploração ad‑hoc.

Por exemplo, uma solução híbrida mantém um registo das conversas e extrai entidades/insights que alimentam KPIs em Power BI (burn‑down de tickets resolvidos por RAG, satisfação média, top queries). Garanta traçabilidade: cada resposta exibida no Power BI deve referenciar os identificadores dos documentos usados para gerar o contexto — isto alimenta confiança e compliance interna.

Mini‑caso prático: 80 pessoas, 25 000 documentos, 6 semanas até produção

Numa organização de 80 colaboradores com funções de suporte, produto e vendas, o conhecimento estava espalhado: 10k e‑mails, 8k tickets e 7k ficheiros técnicos (manuais, release notes). Objectivo: reduzir tempo médio até resposta útil para colaboradores internos de 6 horas para menos de 30 minutos para perguntas frequentes sobre procedimentos.

Plano e resultados práticos em 6 semanas:

  1. Ingestão e normalização: 25 000 documentos processados, chunking a 500 tokens → 80k chunks.
  2. Geração de embeddings: modelo externo, batch via notebook em Spark (cluster 8 vcores) → 80k embeddings gerados em 90 minutos. Armazenamento: embeddings em float16 ocupam ≈ 60 MB. Metadados e índices em Delta totalizaram 1.2 GB.
  3. Indexação ANN: Faiss HNSW em compute com latência média de 45 ms para top‑10; reranking lexical aplicado para melhorar precisão.
  4. Serving e integração: endpoint Azure Function com cache de 10 000 perguntas comuns trouxe latência média de 220 ms por query. Integração com Power BI para dashboard de métricas do bot e para um painel de apoio aos agentes.

Resultados após 3 meses em produção: tempo médio até resposta útil caiu de 6 horas para 18 minutos; a equipa de suporte reduziu o volume de escalados em 32%; a satisfação interna (inquérito rápido) subiu 8 pontos percentuais. Custo operativo mensal estimado (compute, chamadas ao LLM, armazenamento) ficou dentro de um orçamento equivalente a 0.5 FTE em custos infraestruturais, muito abaixo do esforço manual substituído.

Implementar RAG com sucesso é menos sobre o LLM e mais sobre como gere os dados de contexto: qualidade do chunking, versionamento de embeddings e pipelines reprodutíveis são o que transformam protótipos em serviço fiável.

Operacionalização: testes, monitorização e governação

Antes de colocar RAG em linha, defina testes automáticos: cobertura de consultas frequentes, verificação de hallucination (respostas sem documentação suportante) e monitorização de latência/throughput. Em Fabric, automatize estas verificações com notebooks agendados e registos em tabelas Delta que alimentem alertas no Power BI ou Teams.

Governação não é opcional. Assuntos sensíveis exigem filtros por acesso e políticas de retenção aplicadas no Lakehouse. Mantenha trilhas de auditoria dos prompts e das fontes usadas para cada resposta, e implemente revisões trimestrais das respostas para detectar desvios de qualidade ou conteúdos obsoletos.

Em resumo

  • Arquitete RAG em Fabric usando Lakehouses para dados, tabelas Delta para embeddings e compute para ANN/serving.
  • Priorize qualidade de chunking, versionamento de embeddings e pipelines reprodutíveis sobre tuning de LLM.
  • Combine indexação vetorial com reranking lexical; cache e pré‑computação reduzem latência e custos.
  • Integre com Power BI via tabelas pré‑computadas para SLAs previsíveis e via endpoints para exploração em tempo real.
  • Implemente testes automáticos, monitorização e regras de governação desde o primeiro dia.

Conclusão e próximos passos

RAG no Microsoft Fabric é uma alavanca prática: permite transformar o conhecimento corporativo disperso em respostas úteis, auditáveis e escaláveis. As decisões cruciais são operacionais — escolher onde correr o ANN, como versionar embeddings e quais conteúdos pré‑computar — não tecnológicas no sentido do hype. Comece por um domínio restrito (ex.: suporte técnico) com métricas claras e vá expandindo conforme se comprovar o valor.

Próximos passos recomendados: (1) mapear fontes de conhecimento críticas, (2) prototipar pipeline de chunking + embedding em Fabric, (3) medir latência e custo num conjunto piloto e (4) integrar com um dashboard Power BI para visibilidade operacional. Quer que o nosso próximo artigo mostre um exemplo de notebook Spark + Faiss optimizado para Fabric, com templates de tabelas Delta e métricas de qualidade?

← Voltar aos insights
Vamos conversar?

Pronto para transformar os seus dados?

Marque uma reunião gratuita de 30 minutos e descubra como podemos ajudar a sua equipa a tomar melhores decisões.

Agendar Reunião Gratuita
bConcepts