Usar base de dados SQL em aplicações de IA

Aplica-se a:Base de dados SQL em Microsoft Fabric

Este artigo descreve como usar uma base de dados SQL no Fabric para construir aplicações baseadas em IA que combinam dados transacionais com grandes modelos de linguagem (LLMs), pesquisa vetorial ou padrões de geração aumentada por recuperação (RAG).

A base de dados SQL no Fabric proporciona a base relacional para aplicações inteligentes: transações ACID, consultas de baixa latência, o tipo de dados nativo vector e respetivas funções, e integração estreita com a plataforma alargada de análise e IA do Fabric.

Porquê base de dados SQL no Fabric para aplicações de IA?

Construir aplicações inteligentes requer uma base de dados que possa armazenar dados operacionais juntamente com embeddings vetoriais, servir tanto consultas transacionais como de similaridade com baixa latência e integrar-se com frameworks de orquestração de IA. A base de dados SQL no Fabric cumpre estes requisitos:

  • Suporte nativo para vetores: O tipo de dados vetoriais nativo do Motor de Base de Dados SQL e as funções escalares de vetores permitem armazenar embeddings e executar pesquisas por similaridade diretamente em T-SQL, sem uma base de dados vetorial separada.
  • Arquitetura pronta para RAG: Combine os seus dados estruturados de negócio com embeddings vetoriais na mesma base de dados, para que as consultas de recuperação possam juntar contexto relacional (registos de clientes, histórico de encomendas, catálogos de produtos) com resultados de pesquisa semântica numa única consulta.
  • Integração com frameworks: Ligue-se ao LangChain e ao Kernel Semântico através dos conectores existentes do SQL Server para criar fluxos de trabalho de IA orquestrados.
  • Integração da plataforma Fabric: Aceder aos seus dados SQL nos Notebooks do Fabric, em cargas de trabalho de ciência de dados e em experiências do Copilot, sem mover os dados para fora da plataforma.
  • Governação Empresarial: Autenticação Microsoft Entra ID, segurança ao nível do espaço de trabalho e encriptação de chaves gerida pelo cliente aplicam-se a cargas de IA da mesma forma que qualquer outra carga operacional.

Tip

Para um exemplo real de cliente a usar Fabric base de dados SQL para processar dados e gerar embeddings vetoriais, veja História do cliente: Eastman unificou dados e constrói um futuro impulsionado por IA com Microsoft Fabric.

Geração aumentada de recuperação (RAG)

O RAG melhora as respostas dos LLMs ao recuperar dados relevantes da sua base de dados antes de gerar uma resposta. Em vez de depender apenas dos dados de treino do modelo, a aplicação consulta os seus dados operacionais para respostas fundamentadas em factos atuais e específicos do domínio. Para uma visão abrangente, veja Geração aumentada por recuperação (RAG).

Um padrão típico RAG com base de dados SQL no Fabric segue estes passos:

  1. Chunk: Divida grandes fontes de dados (documentos, artigos de base de conhecimento, catálogos de produtos) em partes geríveis e converta-as para texto simples.
  2. Embed: Gerar embeddings vetoriais para cada chunk usando Azure OpenAI ou outro modelo de embedding.
  3. Armazenar: Insira os embeddings numa tabela com uma coluna vetorial ao lado do texto de origem e quaisquer metadados relacionais.
  4. Recuperar: Quando um utilizador fizer uma pergunta, incorpore a consulta com o mesmo modelo e use VECTOR_DISTANCE para encontrar os blocos mais semelhantes. Junte-se com tabelas relacionais para enriquecer o contexto.
  5. Enriquecer: Combine os blocos recuperados com a pergunta original do utilizador num prompt que indique ao LLM como utilizar o contexto.
  6. Gerar: Enviar o prompt aumentado para um LLM, que produz uma resposta baseada nos dados recuperados.

Pesquisa vetorial híbrida numa base de dados transacional

Como os embeddings e os dados relacionais vivem na mesma base de dados, pode filtrar por atributos relacionais (intervalos de datas, categorias, permissões de acesso) na mesma consulta, melhorando tanto a relevância como a segurança. Pode combinar pesquisas vetoriais com filtros SQL tradicionais (WHERE) para resultados filtrados tanto por relações transacionais como por funções vetoriais. Por exemplo:

-- Hybrid search: vector similarity filtered by product category
SELECT TOP (5) p.product_name, p.description
, cosine_distance = VECTOR_DISTANCE('cosine', @query_embedding, p.embedding)
FROM dbo.products AS p
WHERE p.category = 'Electronics'
ORDER BY VECTOR_DISTANCE('cosine', @query_embedding, p.embedding);

Este padrão é útil para recomendações de produtos, pesquisa em base de conhecimento e cenários de apoio ao cliente, onde os resultados precisam de ser semanticamente relevantes e limitados por regras de negócio.

Também pode efetuar consultas com a sintaxe T-SQL VECTOR_SEARCH, mais recente, para encontrar resultados aproximados dos vizinhos mais próximos. Por exemplo:

DECLARE @qv VECTOR(1536) = AI_GENERATE_EMBEDDINGS(N'Pink Floyd music style' USE MODEL Ada2Embeddings);

SELECT TOP (10) WITH APPROXIMATE
    t.id,
    t.title,
    r.distance
FROM VECTOR_SEARCH(
        TABLE = dbo.wikipedia_articles_embeddings AS t,
        COLUMN = content_vector,
        SIMILAR_TO = @qv,
        METRIC = 'cosine'
    ) AS r
ORDER BY r.distance;

Agentes de IA com os servidores Fabric MCP

A Fabric oferece tanto um Fabric Local MCP open-source como um servidor MCP Fabric Remote para agentes de IA. Estes servidores fornecem autenticação direta e instruções para operações preparadas, como gestão de espaços de trabalho, CRUD e definições de itens, e gestão de permissões.

Ambas as opções de servidor Fabric MCP funcionam com qualquer cliente compatível com MCP, incluindo GitHub Copilot, Cursor, Claude Desktop e outros. Por exemplo, a extensão Fabric MCP Server para Visual Studio Code funciona com a extensão Microsoft Fabric e a extensão GitHub Copilot Chat. Ao usar estas extensões, pode aceder às ferramentas Fabric MCP no chat GitHub Copilot e usar agentes para gerir itens Fabric, como criar e gerir a sua base de dados Fabric SQL.

  • O servidor Fabric Local MCP corre localmente na tua máquina, por isso os agentes de IA obtêm o contexto necessário para gerar código e criar itens sem aceder ao teu ambiente.
  • O servidor MCP Fabric Remote é um servidor alojado na cloud que permite aos agentes de IA realizar operações preparadas e autenticadas no seu ambiente Fabric, sem necessidade de configuração local.

As ferramentas de IA usam o servidor Fabric MCP para escrever código com as APIs corretas e dentro dos limites RBAC corretos em que já confia.

Por exemplo, após uma rápida configuração do servidor MCP local do Fabric, pode colocar questões sobre infraestruturas e atribuir tarefas ao chat do GitHub Copilot em código Visual Studio, em modo Agente. Por exemplo:

List all SQL databases and mirrored SQL databases in the Fabric workspace "DemoSQLdb".

O seu agente usa comandos conhecidos da API Fabric para devolver todos os itens Fabric desses tipos.

Create a new SQL database in Fabric named "ContosoTest" in the Fabric workspace "DemoSQLdb".

O seu agente usa comandos conhecidos da API Fabric para criar o item da base de dados para si, com as definições padrão.

Agentes de IA com SQL MCP Server

O SQL MCP Server fornece uma interface Model Context Protocol que os agentes de IA podem usar para interagir com a sua base de dados através de uma API governada baseada em ferramentas, em vez de gerar SQL bruto. O servidor:

  • Expõe um conjunto definido de ferramentas apoiado pela tua configuração.
  • Aplica permissões e restrições de forma consistente.
  • Permite aos agentes descobrir as capacidades disponíveis sem adivinhar o esquema.

Este padrão é útil para construir agentes autónomos que possam consultar e atualizar dados operacionais como parte de fluxos de trabalho em múltiplos passos.

O SQL MCP Server utiliza a abstração de entidades, RBAC, cache e telemetria do Data API Builder para fornecer uma superfície pronta para produção que funciona da mesma forma em REST, GraphQL e MCP. Configura-se uma vez, e o motor trata do resto.

A extensão MSSQL para Visual Studio Code inclui uma interface integrada para Data API builder, para que possa criar endpoints REST, GraphQL e MCP para as suas tabelas de base de dados SQL sem escrever ficheiros de configuração ou sair Visual Studio Code. Pode selecionar quais as tabelas a expor, configurar permissões CRUD, escolher tipos de API, pré-visualizar a configuração gerada e implementar um backend local alimentado pelo Data API Builder, tudo a partir de uma interface visual.

Enriquecimento com o Azure OpenAI

O SQL Database Engine fornece funções T-SQL incorporadas para gerar embeddings e fragmentar texto diretamente na base de dados, sem código externo ou pipelines.

Registrar um modelo de incorporação

Utilize CREATE EXTERNAL MODEL para registar um endpoint de incorporações do Azure OpenAI como um objeto da base de dados. Este exemplo utiliza a implantação text-embedding-ada-002 com autenticação de identidade gerida do Microsoft Entra. Primeiro, crie credenciais de acesso ao Azure OpenAI usando uma identidade gerida:

CREATE DATABASE SCOPED CREDENTIAL [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
    WITH IDENTITY = 'Managed Identity',
    SECRET = '{"resourceid":"https://cognitiveservices.azure.com"}';
GO

Depois, crie um modelo externo:

CREATE EXTERNAL MODEL MyEmbeddingModel
WITH (
    LOCATION = 'https://my-openai.cognitiveservices.azure.com/openai/deployments/text-embedding-ada-002/embeddings?api-version=2024-02-01',
    API_FORMAT = 'Azure OpenAI',
    MODEL_TYPE = EMBEDDINGS,
    MODEL = 'text-embedding-ada-002',
    CREDENTIAL = [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
);

Para mais opções de autenticação, incluindo chaves API, veja CRIAR MODELO EXTERNO.

Gerar incorporações diretamente

Use AI_GENERATE_EMBEDDINGS para gerar embeddings vetoriais diretamente em consultas, inserções e atualizações T-SQL.

-- Generate embeddings for existing rows
UPDATE t
SET t.embedding = AI_GENERATE_EMBEDDINGS(t.description USE MODEL MyEmbeddingModel)
FROM dbo.products AS t;

Dividir em blocos e incorporar numa única instrução

Combine AI_GENERATE_CHUNKS com AI_GENERATE_EMBEDDINGS para dividir texto grande em blocos e incorporá-los numa única instrução T-SQL.

INSERT INTO dbo.document_embeddings (chunked_text, embedding)
SELECT c.chunk,
       AI_GENERATE_EMBEDDINGS(c.chunk USE MODEL MyEmbeddingModel)
FROM dbo.documents AS d
CROSS APPLY AI_GENERATE_CHUNKS(
    SOURCE = d.content,
    CHUNK_TYPE = FIXED,
    CHUNK_SIZE = 100
) AS c;

Chamadas REST diretas com sp_invoke_external_rest_endpoint

Para cenários não abrangidos por AI_GENERATE_EMBEDDINGS, como invocar os endpoints de conclusões ou de chat, utilize sp_invoke_external_rest_endpoint para chamar diretamente do T-SQL qualquer API REST do Azure OpenAI. Para mais informações, consulte Azure Integração OpenAI.

Integração com cargas de trabalho de IA do Fabric

A base de dados SQL no Fabric liga-se às capacidades mais amplas de IA da plataforma:

Integração Utilização
Cadernos de tecido Consulta base de dados SQL a partir de cadernos PySpark ou Python para preparação de dados, treino de modelos e pontuação em lote.
Ciência de dados de malha Use dados SQL como entrada para experiências de aprendizagem automática, depois escreva previsões na base de dados para consumo operacional.
Copilot em base de dados SQL Use linguagem natural para gerar, explicar e otimizar consultas T-SQL diretamente no editor de consultas do portal Fabric.
API para GraphQL Disponibilize dados enriquecidos com IA por meio de endpoints GraphQL para consumo por aplicações.
Pipelines de Dados e Dataflow Gen2 Orquestrar fluxos de trabalho de integração de geração e enriquecimento em grande escala.

Histórias de uso da base de dados SQL Fabric

Para saber mais sobre os melhores casos de uso para a base de dados Fabric SQL, veja: