Usare il database SQL nelle applicazioni di intelligenza artificiale

si applica a:database SQL in Microsoft Fabric

Questo articolo descrive come usare il database SQL in Fabric per creare applicazioni basate sull'intelligenza artificiale che combinano dati transazionali con modelli di linguaggio di grandi dimensioni ( LLMS), ricerca vettoriale o modelli di generazione aumentata (RAG).

Il database SQL di Fabric fornisce la base relazionale per applicazioni intelligenti: transazioni ACID, query a bassa latenza, il tipo di dati nativo vector e le relative funzioni, nonché una stretta integrazione con la più ampia piattaforma Fabric per l’analisi e l’IA.

Perché il database SQL in Fabric per le applicazioni di intelligenza artificiale?

La creazione di applicazioni intelligenti richiede un database in grado di archiviare i dati operativi insieme agli incorporamenti vettoriali, di gestire query transazionali e di somiglianza a bassa latenza e di integrarsi con framework di orchestrazione di intelligenza artificiale. Il database SQL in Fabric soddisfa questi requisiti:

  • Supporto vettoriale nativo: il tipo di dati vector nativo del Motore di database SQL e le funzioni scalari vector consentono di archiviare gli embedding ed eseguire ricerche di similarità direttamente in T-SQL, senza un database vettoriale separato.
  • Architettura rag-ready: combinare i dati aziendali strutturati con incorporamenti vettoriali nello stesso database, in modo che le query di recupero possano unire un contesto relazionale (record dei clienti, cronologia ordini, cataloghi di prodotti) con risultati di ricerca semantica in una singola query.
  • integrazione Framework: connettersi con LangChain e Kernel semantico tramite connettori di SQL Server esistenti per creare flussi di lavoro di intelligenza artificiale orchestrati.
  • Integrazione della piattaforma Fabric: Accedi ai dati SQL dai notebook di Fabric, dai carichi di lavoro di data science e dalle esperienze Copilot senza spostare i dati al di fuori della piattaforma.
  • Governance aziendale: autenticazione Microsoft Entra ID, sicurezza a livello di area di lavoro e crittografia della chiave gestita dal cliente si applicano ai carichi di lavoro di intelligenza artificiale uguali a qualsiasi altro carico di lavoro operativo.

Tip

Per un esempio reale di utilizzo del database SQL di Fabric per elaborare i dati e generare embedding vettoriali, vedi Customer story: Eastman unified data and builds an AI-powered future with Microsoft Fabric.

Generazione aumentata tramite recupero (RAG)

Rag migliora le risposte LLM recuperando i dati pertinenti dal database prima di generare una risposta. Invece di basarsi esclusivamente sui dati di addestramento del modello, l'applicazione interroga i tuoi dati operativi per basare le risposte su fatti attuali e specifici del dominio. Per una panoramica completa, vedere Generazione avanzata del recupero (RAG).For a overview, see Retrieval-augmented generation (RAG).

Un tipico modello rag con il database SQL in Fabric segue questa procedura:

  1. Chunk: Suddividere grandi fonti di dati (documenti, articoli della knowledge base, cataloghi di prodotti) in parti gestibili e convertirle in testo semplice.
  2. Embed: generare incorporamenti vettoriali per ogni blocco usando Azure OpenAI o un altro modello di incorporamento.
  3. Store: inserisce gli incorporamenti in una tabella con una colonna vettoriale insieme al testo di origine e a tutti i metadati relazionali.
  4. Recupera: quando un utente pone una domanda, incorporare la query con lo stesso modello, quindi usare VECTOR_DISTANCE per trovare i blocchi più simili. Unisci tabelle relazionali per arricchire il contesto.
  5. Arricchisci: Combina i segmenti recuperati con la domanda originale dell'utente in un prompt che istruisca l'LLM su come utilizzare il contesto.
  6. Genera: inviare il prompt arricchito a un LLM, che produce una risposta basata sui dati recuperati.

Ricerca vettoriale ibrida in un database transazionale

Poiché gli incorporamenti e i dati relazionali si trovano nello stesso database, è possibile filtrare in base a attributi relazionali (intervalli di date, categorie, autorizzazioni di accesso) nella stessa query, migliorando sia la pertinenza che la sicurezza. È possibile combinare ricerche vettoriali con i filtri SQL tradizionali (WHERE) per ottenere risultati filtrati in relazione transazionali e funzioni vettoriali. Per esempio:

-- 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);

Questo modello è utile per le raccomandazioni sui prodotti, la ricerca della knowledge base e gli scenari di supporto clienti in cui i risultati devono essere semanticamente rilevanti e vincolati dalle regole business.

È anche possibile eseguire query con la sintassi T-SQL più recente VECTOR_SEARCH per trovare risultati approssimativi vicini. Per esempio:

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;

Agenti di intelligenza artificiale con i server MCP Fabric

Fabric offre sia un mcp locale Fabric open source che un server MCP remoto Fabric per gli agenti di intelligenza artificiale. Questi server forniscono l'autenticazione diretta e le istruzioni per le operazioni preparate, ad esempio la gestione dell'area di lavoro, le definizioni CRUD e gli elementi e la gestione delle autorizzazioni.

Entrambe le opzioni del server MCP Fabric funzionano con qualsiasi client compatibile con MCP, tra cui GitHub Copilot, cursore, Claude Desktop e altro ancora. Ad esempio, l'estensione Fabric SERVER MCP per Visual Studio Code funziona con l'estensione Microsoft Fabric e GitHub Copilot Chat. Usando queste estensioni, è possibile accedere agli strumenti MCP Fabric all'interno di GitHub Copilot chat e usare gli agenti per gestire gli elementi Fabric, ad esempio la creazione e la gestione del database SQL Fabric.

  • Il server MCP locale Fabric viene eseguito localmente nel computer, quindi gli agenti di intelligenza artificiale ottengono il contesto necessario per generare codice e creare elementi senza accedere all'ambiente.
  • Il server MCP remoto Fabric è un server ospitato nel cloud che consente agli agenti di intelligenza artificiale di eseguire operazioni preparate e autenticate nell'ambiente Fabric senza alcuna configurazione locale necessaria.

Gli strumenti di IA usano il server MCP di Fabric per scrivere codice con le API corrette e nel rispetto dei corretti limiti RBAC di cui ti fidi già.

Ad esempio, dopo una configurazione rapida del server MCP locale Fabric, è possibile porre domande sull'infrastruttura e assegnare attività a GitHub Copilot chat nel codice Visual Studio, in modalità Agente. Per esempio:

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

L'agente usa comandi API Fabric noti per restituire tutti gli elementi Fabric di tali tipi.

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

L'agente usa comandi API Fabric noti per creare automaticamente l'elemento di database, con le impostazioni predefinite.

Agenti di intelligenza artificiale con SQL MCP Server

SQL MCP Server fornisce un'interfaccia model context protocol che gli agenti di intelligenza artificiale possono usare per interagire con il database tramite un'API basata su strumenti regolamentata anziché generare SQL non elaborato. Il server:

  • Espone un set definito di strumenti supportati dalla configurazione.
  • Applica in modo coerente le autorizzazioni e i vincoli.
  • Consente agli agenti di individuare le funzionalità disponibili senza indovinare lo schema.

Questo modello è utile per la creazione di agenti autonomi in grado di eseguire query e aggiornare i dati operativi come parte dei flussi di lavoro con più passaggi.

SQL MCP Server usa l'astrazione delle entità, il controllo degli accessi basato sui ruoli, la memorizzazione nella cache e la telemetria del builder di API per i dati per offrire un'interfaccia pronta per l'uso in produzione che funziona in modo uniforme con REST, GraphQL e MCP. La configurazione viene eseguita una sola volta e il motore gestisce il resto.

L'estensione MSSQL per Visual Studio Code include un'interfaccia utente integrata per Data API Builder, quindi è possibile creare endpoint REST, GraphQL e MCP per le tabelle di database SQL senza scrivere file di configurazione o lasciare Visual Studio Code. È possibile selezionare le tabelle da esporre, configurare le autorizzazioni CRUD, scegliere i tipi di API, visualizzare in anteprima la configurazione generata e distribuire un back-end locale basato su Generatore API dati, tutto da un'interfaccia visiva.

Arricchimento con Azure OpenAI

Il motore di database SQL fornisce funzioni T-SQL predefinite per la generazione di incorporamenti e la suddivisione in blocchi di testo direttamente nel database, senza codice esterno o pipeline.

Registrare un modello di incorporamento

Usare CREATE EXTERNAL MODEL per registrare un endpoint di incorporamento OpenAI Azure come oggetto di database. Questo esempio utilizza la distribuzione text-embedding-ada-002 con autenticazione con identità gestita di Microsoft Entra. Creare prima di tutto le credenziali di accesso per Azure OpenAI usando un'identità gestita:

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

Creare quindi un modello esterno:

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/]
);

Per altre opzioni di autenticazione, incluse le chiavi API, vedere CREATE EXTERNAL MODEL.

Generare incorporamenti inline

Usare AI_GENERATE_EMBEDDINGS per generare incorporamenti vettoriali direttamente nelle query T-SQL, negli inserimenti e negli aggiornamenti.

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

Blocco e incorporamento in una singola istruzione

Combinare AI_GENERATE_CHUNKS con AI_GENERATE_EMBEDDINGS per suddividere testo di grandi dimensioni in blocchi e incorporarli in una singola istruzione 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;

Chiamate REST dirette con sp_invoke_external_rest_endpoint

Per gli scenari non coperti da AI_GENERATE_EMBEDDINGS, ad esempio per chiamare i completamenti o gli endpoint di chat, usare sp_invoke_external_rest_endpoint per chiamare qualsiasi API REST OpenAI Azure direttamente da T-SQL. Per altre informazioni, vedere integrazione Azure OpenAI.

Integrazione con carichi di lavoro di intelligenza artificiale Fabric

Il database SQL in Fabric si connette alle funzionalità di intelligenza artificiale più ampie della piattaforma:

Integrazione Usa
Notebook di tessuto Eseguire query sul database SQL da PySpark o Python notebook per la preparazione dei dati, il training del modello e l'assegnazione dei punteggi batch.
Analisi scientifica dei dati di Fabric Usare i dati SQL come input per gli esperimenti di Machine Learning e quindi scrivere stime nel database per il consumo operativo.
Copilot nel database SQL Usare il linguaggio naturale per generare, spiegare e ottimizzare le query T-SQL direttamente nell'editor di query del portale di Fabric.
API per GraphQL Esporre i dati arricchiti dall'intelligenza artificiale tramite endpoint GraphQL per l'utilizzo delle applicazioni.
Pipeline di dati e Flusso di dati Gen2 Orchestra i flussi di lavoro per la generazione e l'arricchimento degli embedding su larga scala.

Storie di casi d'uso del database SQL di Fabric

Per altre informazioni sui casi d'uso migliori per Fabric database SQL, vedere: