Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:✅bazy danych SQL w Microsoft Fabric
W tym artykule opisano sposób używania bazy danych SQL w Fabric do tworzenia aplikacji opartych na sztucznej inteligencji łączących dane transakcyjne z dużymi modelami językowymi (LLMs), wyszukiwaniem wektorów lub wzorcami generowania rozszerzonego pobierania (RAG).
Baza danych SQL w Fabric zapewnia relacyjne podstawy inteligentnych aplikacji: transakcje ACID, zapytania o niskich opóźnieniach, natywny typ danych vector i funkcje oraz ścisłą integrację z szerszą platformą analityki i sztucznej inteligencji Fabric.
Dlaczego baza danych SQL w Fabric dla aplikacji sztucznej inteligencji?
Tworzenie inteligentnych aplikacji wymaga bazy danych, która może przechowywać dane operacyjne wraz z osadzeniemi wektorów, obsługiwać zapytania transakcyjne i podobne przy małych opóźnieniach oraz integrować się z platformami aranżacji sztucznej inteligencji. Baza danych SQL w Fabric spełnia następujące wymagania:
- Natywna obsługa wektorów: natywny typ danych wektorowych w aparacie bazy danych SQL oraz skalarne funkcje wektorowe umożliwiają przechowywanie osadzeń i wykonywanie wyszukiwań podobieństwa bezpośrednio w języku T-SQL, bez potrzeby korzystania z oddzielnej wektorowej bazy danych.
- Architektura gotowa do użycia w języku RAG: połącz ustrukturyzowane dane biznesowe z wektorowymi osadzaniami w tej samej bazie danych, dzięki czemu zapytania pobierania mogą łączyć kontekst relacyjny (rekordy klientów, historię zamówień, katalogi produktów) z wynikami wyszukiwania semantycznego w jednym zapytaniu.
- Integracja z platformami: Połącz się z LangChain i Semantic Kernel za pośrednictwem istniejących łączników programu SQL Server, aby tworzyć koordynowane przepływy pracy AI.
- Integracja z platformą Fabric: Uzyskuj dostęp do danych SQL z notatników Fabric, obciążeń związanych z analizą danych i środowisk Copilot bez przenoszenia danych poza platformę.
- Ład organizacyjny: uwierzytelnianie Microsoft Entra ID, zabezpieczenia na poziomie przestrzeni roboczej i szyfrowanie przy użyciu kluczy zarządzanych przez klienta mają zastosowanie do obciążeń AI tak samo jak do wszelkich innych obciążeń operacyjnych.
Tip
Aby zapoznać się z rzeczywistym przykładem klienta wykorzystującego bazę danych SQL w usłudze Fabric do przetwarzania danych i generowania osadzeń wektorowych, zobacz artykuł Customer story: Eastman unified data and builds an AI-powered future with Microsoft Fabric.
Generacja wspierana wyszukiwaniem (RAG)
RAG ulepsza odpowiedzi LLM, pobierając odpowiednie dane z Twojej bazy danych, zanim wygeneruje odpowiedź. Zamiast polegać wyłącznie na danych treningowych modelu, aplikacja odpytuje dane operacyjne, aby oprzeć odpowiedzi na aktualnych faktach specyficznych dla danej domeny. Aby uzyskać szczegółowy przegląd, zobacz Generowanie wspomagane wyszukiwaniem (RAG).
Typowy wzorzec RAG z bazą danych SQL w usłudze Fabric wykonuje następujące kroki:
- Fragmentacja: Podziel duże źródła danych (dokumenty, artykuły z bazy wiedzy, katalogi produktów) na mniejsze, łatwiejsze do przetwarzania części i przekonwertuj je na zwykły tekst.
- Embed: Generuj osadzanie wektorów dla każdego fragmentu przy użyciu Azure OpenAI lub innego modelu osadzania.
- Przechowywanie: Wstaw osadzenia do tabeli z kolumną typu vector, wraz z tekstem źródłowym i wszelkimi metadanymi relacyjnymi.
- Pobieranie: gdy użytkownik zadaje pytanie, osadź zapytanie przy użyciu tego samego modelu, a następnie użyj VECTOR_DISTANCE , aby znaleźć najbardziej podobne fragmenty. Połącz z tabelami relacyjnymi, aby wzbogacić kontekst.
- Rozszerz: Połącz pobrane fragmenty z oryginalnym pytaniem użytkownika, tworząc prompt, który instruuje model LLM, jak wykorzystać kontekst.
- Generuj: wyślij rozszerzony monit do modułu LLM, który generuje odpowiedź uziemioną w pobranych danych.
Wyszukiwanie wektorów hybrydowych w transakcyjnej bazie danych
Ponieważ osadzanie i dane relacyjne są aktywne w tej samej bazie danych, można filtrować według atrybutów relacyjnych (zakresów dat, kategorii, uprawnień dostępu) w tym samym zapytaniu, zwiększając znaczenie i bezpieczeństwo. Wyszukiwania wektorów można łączyć z tradycyjnymi filtrami SQL (WHERE) dla wyników filtrowanych zarówno w relacjach transakcyjnych, jak i funkcjach wektorów. Przykład:
-- 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);
Ten wzorzec jest przydatny w przypadku rekomendacji dotyczących produktów, wyszukiwania bazy wiedzy i scenariuszy obsługi klienta, w których wyniki muszą być zarówno istotne, jak i ograniczone przez reguły biznesowe.
Możesz również wykonać zapytanie przy użyciu nowszej składni języka T-SQL VECTOR_SEARCH, aby znaleźć przybliżone wyniki najbliższego sąsiada. Przykład:
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;
Agenci sztucznej inteligencji z serwerami Fabric MCP
Fabric oferuje zarówno otwartoźródłowy lokalny serwer MCP Fabric, jak i zdalny serwer MCP Fabric dla agentów AI. Te serwery zapewniają bezpośrednie uwierzytelnianie oraz obsługę wstępnie zdefiniowanych operacji, takich jak zarządzanie obszarami roboczymi, operacje CRUD na elementach i definicje elementów oraz zarządzanie uprawnieniami.
Obie opcje serwera MCP dla usługi Fabric działają z dowolnym klientem zgodnym z MCP, w tym z GitHub Copilot, Cursor, Claude Desktop i innymi. Na przykład rozszerzenie Fabric MCP Server dla Visual Studio Code współpracuje z rozszerzeniem Microsoft Fabric i rozszerzeniem GitHub Copilot Chat. Korzystając z tych rozszerzeń, możesz uzyskać dostęp do narzędzi Fabric MCP w ramach czatu GitHub Copilot i używać agentów do zarządzania elementami Fabric, takimi jak tworzenie Fabric bazy danych SQL i zarządzanie nimi.
- Lokalny serwer MCP Fabric działa lokalnie na komputerze, dlatego agenci sztucznej inteligencji uzyskują kontekst potrzebny do generowania kodu i tworzenia elementów bez uzyskiwania dostępu do środowiska.
- Serwer Fabric Remote MCP to serwer hostowany w chmurze, który umożliwia agentom sztucznej inteligencji wykonywanie przygotowanych, uwierzytelnionych operacji w środowisku Fabric bez konieczności instalacji lokalnej.
Narzędzia AI używają serwera Fabric MCP do tworzenia kodu z użyciem właściwych interfejsów API i w ramach granic RBAC, którym już ufasz.
Na przykład po szybkiej konfiguracji lokalnego serwera MCP Fabric można zadawać pytania dotyczące infrastruktury i przypisywać zadania do czatu GitHub Copilot w kodzie Visual Studio w trybie agenta. Przykład:
List all SQL databases and mirrored SQL databases in the Fabric workspace "DemoSQLdb".
Twój agent używa znanych poleceń interfejsu API usługi Fabric, aby zwrócić wszystkie elementy Fabric tych typów.
Create a new SQL database in Fabric named "ContosoTest" in the Fabric workspace "DemoSQLdb".
Twój agent za pomocą znanych poleceń interfejsu API Fabric tworzy dla Ciebie element bazy danych przy użyciu ustawień domyślnych.
Agenci sztucznej inteligencji z programem SQL MCP Server
Program SQL MCP Server udostępnia interfejs protokołu kontekstowego modelu, którego agenci sztucznej inteligencji mogą używać do interakcji z bazą danych za pomocą zarządzanego interfejsu API opartego na narzędziach zamiast generowania nieprzetworzonego kodu SQL. Serwer:
- Uwidacznia zdefiniowany zestaw narzędzi wspieranych przez konfigurację.
- Stale wymusza uprawnienia i ograniczenia.
- Umożliwia agentom odnajdywanie dostępnych możliwości bez odgadnięcia schematu.
Ten wzorzec jest przydatny do tworzenia autonomicznych agentów, którzy mogą wykonywać zapytania i aktualizować dane operacyjne w ramach wieloetapowych przepływów pracy.
SQL MCP Server używa abstrakcji encji konstruktora interfejsu API danych, kontroli dostępu opartej na rolach, buforowania i telemetrii, aby zapewnić interfejs gotowy do wdrożenia produkcyjnego, który działa tak samo w REST, GraphQL i MCP. Konfigurujesz go raz, a aparat obsługuje resztę.
Rozszerzenie MSSQL dla Visual Studio Code zawiera zintegrowany interfejs użytkownika dla Data API builder, dzięki czemu można tworzyć punkty końcowe REST, GraphQL i MCP dla tabel w bazie danych SQL bez konieczności pisania plików konfiguracji i opuszczania Visual Studio Code. Możesz wybrać tabele do uwidocznienia, skonfigurować uprawnienia CRUD, wybrać typy interfejsów API, wyświetlić podgląd wygenerowanej konfiguracji i wdrożyć lokalne zaplecze obsługiwane przez konstruktora interfejsu API danych— wszystko z poziomu interfejsu wizualnego.
Wzbogacanie za pomocą Azure OpenAI
Silnik bazy danych SQL udostępnia wbudowane funkcje języka T-SQL do generowania embeddingów i dzielenia tekstu na fragmenty bezpośrednio w bazie danych, bez potrzeby stosowania zewnętrznego kodu ani potoków.
Rejestrowanie modelu osadzania
Użyj UTWÓRZ MODEL ZEWNĘTRZNY aby zarejestrować punkt końcowy osadzania Azure OpenAI jako obiekt bazy danych. W tym przykładzie użyto wdrożenia text-embedding-ada-002 z użyciem uwierzytelniania za pomocą tożsamości zarządzanej Microsoft Entra. Najpierw utwórz poświadczenia dostępu do usługi Azure OpenAI przy użyciu tożsamości zarządzanej:
CREATE DATABASE SCOPED CREDENTIAL [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
WITH IDENTITY = 'Managed Identity',
SECRET = '{"resourceid":"https://cognitiveservices.azure.com"}';
GO
Następnie utwórz model zewnętrzny:
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/]
);
Aby uzyskać więcej opcji uwierzytelniania, w tym kluczy interfejsu API, zobacz CREATE EXTERNAL MODEL (TWORZENIE MODELU ZEWNĘTRZNEgo).
Generowanie osadzeń bezpośrednio
Użyj AI_GENERATE_EMBEDDINGS , aby generować wektorowe osadzania bezpośrednio w zapytaniach języka T-SQL, wstawiać i aktualizować.
-- Generate embeddings for existing rows
UPDATE t
SET t.embedding = AI_GENERATE_EMBEDDINGS(t.description USE MODEL MyEmbeddingModel)
FROM dbo.products AS t;
Dzielenie na fragmenty i osadzanie w jednej instrukcji
Połącz AI_GENERATE_CHUNKS z, AI_GENERATE_EMBEDDINGS aby podzielić duży tekst na fragmenty i osadzić je w jednej instrukcji języka 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;
Bezpośrednie wywołania REST z sp_invoke_external_rest_endpoint
W przypadku scenariuszy nieobsługiwanych przez AI_GENERATE_EMBEDDINGS, takich jak wywoływanie punktów końcowych completions lub chat, użyj sp_invoke_external_rest_endpoint, aby wywołać bezpośrednio z języka T-SQL dowolny interfejs API REST usługi Azure OpenAI. Aby uzyskać więcej informacji, zobacz integrację z usługą Azure OpenAI.
Integracja z obciążeniami sztucznej inteligencji Fabric
Baza danych SQL w Fabric łączy się z szerszymi możliwościami sztucznej inteligencji platformy:
| Integracja | Używanie |
|---|---|
| Sieciowe notatniki | Wykonuj zapytania do bazy danych SQL z poziomu notesów PySpark lub Python na potrzeby przygotowywania danych, trenowania modeli i punktacji wsadowej. |
| Analiza danych sieci szkieletowej | Użyj danych SQL jako danych wejściowych dla eksperymentów uczenia maszynowego, a następnie zapisz przewidywania z powrotem w bazie danych na potrzeby użycia operacyjnego. |
| Copilot w usłudze SQL Database | Użyj języka naturalnego, aby wygenerować, wyjaśnić i zoptymalizować zapytania T-SQL bezpośrednio w edytorze zapytań portalu Fabric. |
| Interfejs API dla języka GraphQL | Udostępniaj dane wzbogacone przez sztuczną inteligencję za pomocą punktów końcowych GraphQL do wykorzystania przez aplikacje. |
| Potoki danych i przepływ danych Gen2 | Orkiestruj osadzanie przepływów pracy generowania i wzbogacania na dużą skalę. |
Historie zastosowań bazy danych SQL w usłudze Fabric
Aby dowiedzieć się więcej na temat najlepszych przypadków użycia usługi Fabric SQL Database, zobacz:
- Użyj bazy danych SQL w odwrotnym ETL
- Używanie bazy danych SQL jako działającego magazynu danych
- Używanie bazy danych SQL jako źródła dla aplikacji translitycznych
Treści powiązane
- Inteligentne aplikacje i sztuczna inteligencja
Wyszukiwanie wektorowe i indeksy wektorowe w silniku bazy danych SQL