Udostępnij za pośrednictwem


Inteligentne aplikacje i sztuczna inteligencja

Dotyczy: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Ten artykuł zawiera omówienie korzystania z opcji sztucznej inteligencji(AI), takich jak OpenAI i wektory, w celu tworzenia inteligentnych aplikacji za pomocą SQL Database Engine w SQL Server i Azure SQL Managed Instance.

Aby uzyskać informacje dotyczące Azure SQL Database i SQL Database w usłudze Fabric, znajdziesz je w sekcji Inteligentne aplikacje i AI.

Aby uzyskać próbki i przykłady, odwiedź repozytorium próbek SQL AI.

Przegląd

Duże modele językowe (LLM) umożliwiają deweloperom tworzenie aplikacji opartych na sztucznej inteligencji ze znanym środowiskiem użytkownika.

Korzystanie z funkcji LLMs w aplikacjach zapewnia większą wartość i ulepszone środowisko użytkownika, gdy modele mogą uzyskiwać dostęp do odpowiednich danych w odpowiednim czasie z bazy danych aplikacji. Proces ten jest znany jako generowanie rozszerzone o wyszukiwanie (RAG), a Silnik bazy danych SQL ma wiele funkcji, które obsługują ten nowy wzorzec, dzięki czemu jest to świetna baza danych do tworzenia inteligentnych aplikacji.

Poniższe linki zawierają przykładowy kod różnych opcji tworzenia inteligentnych aplikacji:

Opcja sztucznej inteligencji Description
SQL MCP Server Stabilny i zarządzany interfejs dla bazy danych, definiujący zestaw narzędzi i konfiguracji.
Azure OpenAI Generuj osadzanie dla programu RAG i integruj się z dowolnym modelem obsługiwanym przez program Azure OpenAI.
Wektory Dowiedz się, jak przechowywać wektory i używać funkcji wektorów w bazie danych.
Wyszukiwanie AI platformy Azure Użyj bazy danych wraz z Wyszukiwanie AI platformy Azure, aby wytrenować LLM na podstawie danych.
Inteligentne aplikacje Dowiedz się, jak utworzyć kompleksowe rozwiązanie przy użyciu wspólnego wzorca, który można replikować w dowolnym scenariuszu.

Program SQL MCP Server w aplikacjach sztucznej inteligencji

Program SQL MCP Server znajduje się bezpośrednio w ścieżce danych dla agentów sztucznej inteligencji.

  • W miarę generowania żądań serwer udostępnia stabilny i zarządzany interfejs do twojej bazy danych.
  • Zamiast ujawniać nieprzetworzone schematy lub polegać na wygenerowanym języku SQL, kieruje on cały dostęp za pośrednictwem zdefiniowanego zestawu narzędzi wspieranych przez konfigurację.

Takie podejście zapewnia przewidywalne interakcje i zapewnia, że każda operacja jest zgodna z zdefiniowanymi uprawnieniami i strukturą. Aby uzyskać więcej informacji, zobacz aka.ms/sql/mcp.

Oddzielając rozumowanie od wykonywania, modele koncentrują się na intencji, podczas gdy program SQL MCP Server obsługuje sposób, w jaki ta intencja staje się prawidłowymi zapytaniami. Ponieważ obszar powierzchni jest ograniczony i opisany, agenci mogą odnajdywać dostępne możliwości, interpretować dane wejściowe i wyjściowe oraz działać bez odgadnięcia. Ten projekt zmniejsza błędy i eliminuje potrzebę złożonej inżynierii monitów, aby zrekompensować niejednoznaczność schematu.

W przypadku deweloperów takie podejście oznacza, że sztuczna inteligencja może bezpiecznie uczestniczyć w rzeczywistych obciążeniach.

Masz następujące możliwości:

  • Definiowanie jednostek raz
  • Zastosuj role i ograniczenia

Następnie platforma:

  • Zapewnia spójne wdrażanie podmiotów, ról i ograniczeń
  • Tworzy niezawodną podstawę dla aplikacji opartych na agentach za pośrednictwem danych SQL.

Ta sama konfiguracja, która obsługuje architekturę REST i GraphQL, również zarządza mcp, więc nie ma duplikacji reguł ani logiki. Aby uzyskać więcej informacji, zobacz aka.ms/dab/docs.

Kluczowe pojęcia dotyczące implementowania programu RAG za pomocą programu Azure OpenAI

Ta sekcja zawiera kluczowe pojęcia, które mają kluczowe znaczenie dla zaimplementowania programu RAG z Azure OpenAI w Database Engine SQL.

Wspomagane generowanie przy użyciu pobierania danych (RAG)

RAG to technika, która zwiększa zdolność LLM do tworzenia odpowiednich i informacyjnych odpowiedzi przez pobieranie dodatkowych danych ze źródeł zewnętrznych. Na przykład usługa RAG może wysyłać zapytania do artykułów lub dokumentów zawierających wiedzę specyficzną dla domeny związane z pytaniem lub monitem użytkownika. Model LLM może następnie użyć tych pobranych danych jako odwołania podczas generowania odpowiedzi. Na przykład prosty wzorzec RAG używający silnika bazy danych SQL może być:

  1. Wstaw dane do tabeli.
  2. Połącz wystąpienie z Wyszukiwanie AI platformy Azure.
  3. Utwórz model Azure OpenAI GPT-4 i połącz go z Wyszukiwanie AI platformy Azure.
  4. Porozmawiaj i zadawaj pytania dotyczące swoich danych przy użyciu wytrenowanego modelu Azure OpenAI zarówno z aplikacji, jak i z danych w instancji.

Wzorzec RAG, z inżynierią poleceń, służy do zwiększania jakości odpowiedzi, oferując bardziej kontekstowe informacje dla modelu. Funkcja RAG umożliwia modelowi zastosowanie szerszej bazy wiedzy poprzez włączenie odpowiednich źródeł zewnętrznych do procesu generowania, co skutkuje bardziej kompleksowymi i przemyślanymi odpowiedziami. Aby uzyskać więcej informacji na temat grounding LLMs, zobacz Grounding LLMs — Microsoft Community Hub.

Wskazówki i inżynieria wskazówek

Monit to określony tekst lub informacje, które służą jako instrukcja dla dużego modelu językowego (LLM) lub jako dane kontekstowe, na których może opierać się moduł LLM. Monit może przyjmować różne formy, takie jak pytanie, instrukcja, a nawet fragment kodu.

Przykładowe monity, których można użyć do wygenerowania odpowiedzi z poziomu usługi LLM, obejmują:

  • Instrukcje: dostarczanie dyrektyw do modelu LLM
  • Zawartość podstawowa: zawiera informacje dla LLM do przetwarzania
  • Przykłady: pomoc w przygotowaniu modelu do określonego zadania lub procesu
  • Wskazówki: kierować dane wyjściowe LLM we właściwym kierunku
  • Zawartość pomocnicza: reprezentuje informacje uzupełniające, których usługa LLM może używać do generowania danych wyjściowych

Proces tworzenia dobrych monitów dotyczących scenariusza jest nazywany inżynierią monitu. Aby uzyskać więcej informacji na temat promptów i najlepszych praktyk w zakresie inżynierii promptów, zobacz techniki inżynierii promptów.

Tokens

Tokeny są małymi fragmentami tekstu generowanymi przez podzielenie tekstu wejściowego na mniejsze segmenty. Te segmenty mogą być wyrazami lub grupami znaków, różniąc się długością od pojedynczego znaku do całego wyrazu. Na przykład słowo hamburger jest podzielone na tokeny, takie jak ham, bur, i ger podczas gdy krótkie i typowe słowo podobne pear jest uznawane za pojedynczy token.

W Azure openAI interfejs API tokenizuje tekst wejściowy. Liczba tokenów przetwarzanych w każdym żądaniu interfejsu API zależy od czynników, takich jak długość parametrów wejściowych, wyjściowych i żądań. Ilość przetwarzanych tokenów wpływa również na czas odpowiedzi i przepływność modeli. Każdy model ma limity liczby tokenów, które można przetworzyć w ramach pojedynczego żądania i odpowiedzi z Azure OpenAI. Aby dowiedzieć się więcej, zobacz Modele Azure OpenAI w ramach limitów i przydziałów Azure AI Foundry.

Vectors

Wektory są uporządkowanymi tablicami liczb (zazwyczaj zmiennoprzecinkowymi), które mogą reprezentować informacje o niektórych danych. Na przykład obraz może być reprezentowany jako wektor wartości pikseli lub ciąg tekstu może być reprezentowany jako wektor wartości ASCII. Proces przekształcania danych w wektor jest nazywany wektoryzacją. Aby uzyskać więcej informacji, zobacz Przykłady wektorów.

Praca z danymi wektorowymi jest łatwiejsza dzięki wprowadzeniu typów danych wektorowych i funkcji wektorów.

Osadzanie

Osadzanie to wektory reprezentujące ważne funkcje danych. Osadzanie często uczy się przy użyciu modelu uczenia głębokiego, a modele uczenia maszynowego i sztucznej inteligencji używają ich jako funkcji. Osadzenia mogą również uchwycić semantyczne podobieństwo między podobnymi pojęciami. Na przykład podczas generowania osadzania dla wyrazów person i humanmożna oczekiwać, że ich osadzanie (reprezentacja wektorowa) będzie podobne w wartości, ponieważ wyrazy są również semantycznie podobne.

Azure OpenAI oferuje modele do tworzenia embeddingów na podstawie danych tekstowych. Usługa dzieli tekst na tokeny i generuje osadzanie przy użyciu modeli wstępnie wytrenowanych przez interfejs OpenAI. Aby dowiedzieć się więcej, zobacz Understand embeddings in Azure OpenAI in Azure AI Foundry Models (Osadzanie Azure OpenAI w modelach Azure AI Foundry

Wyszukiwanie wektorowe to proces znajdowania wszystkich wektorów w zestawie danych, które są semantycznie podobne do określonego wektora zapytania. W związku z tym wektor zapytania dla wyrazu human wyszukuje cały słownik pod kątem semantycznie podobnych wyrazów i powinien znajdować słowo person jako bliskie dopasowanie. Ta bliskość lub odległość jest mierzona przy użyciu metryki podobieństwa, takiej jak podobieństwo cosinus. Im bliżej znajdują się wektory podobne, tym mniejsza jest odległość między nimi.

Rozważmy scenariusz, w którym uruchamiasz zapytanie dotyczące milionów dokumentów, aby znaleźć najbardziej podobne dokumenty w danych. Można tworzyć osadzenia dla danych oraz generować zapytania do dokumentów za pomocą Azure OpenAI. Następnie możesz wykonać wyszukiwanie wektorów, aby znaleźć najbardziej podobne dokumenty z zestawu danych. Jednak wykonywanie wyszukiwania wektorowego w kilku przykładach jest proste. Wykonanie tego samego wyszukiwania w tysiącach lub milionach punktów danych staje się trudne. Istnieją również kompromisy między wyczerpującymi metodami wyszukiwania i przybliżonymi metodami wyszukiwania najbliższego sąsiada (ANN), w tym opóźnieniami, przepływnością, dokładnością i kosztami. Wszystkie te kompromisy zależą od wymagań aplikacji.

W SQL Database Engine można efektywnie przechowywać wektory i wysyłać do nich zapytania, jak opisano w kolejnych sekcjach. Ta funkcja umożliwia dokładne wyszukiwanie najbliższych sąsiadów z wielką wydajnością. Nie musisz decydować o dokładności i szybkości: możesz mieć obie te wartości. Przechowywanie osadzania wektorów wraz z danymi w zintegrowanym rozwiązaniu minimalizuje potrzebę zarządzania synchronizacją danych i przyspiesza czas opracowywania aplikacji sztucznej inteligencji.

Azure OpenAI

Osadzanie to proces reprezentowania świata rzeczywistego jako danych. Tekst, obrazy lub dźwięki można konwertować na osadzanie. Modele Azure OpenAI mogą przekształcać rzeczywiste informacje w reprezentacje wektorowe. Możesz uzyskać dostęp do modeli jako punktów końcowych REST, dzięki czemu możesz je łatwo używać z silnika bazy danych SQL przy użyciu procedury składowanej systemu sp_invoke_external_rest_endpoint. Ta procedura jest dostępna od wersji SQL Server 2025 (17.x) i Azure SQL Managed Instance skonfigurowanej przy użyciu Always-up-to-date update policy.

DECLARE @retval AS INT,
        @response AS NVARCHAR (MAX),
        @payload AS NVARCHAR (MAX);

SET @payload = JSON_OBJECT('input':@text);

EXECUTE
    @retval = sp_invoke_external_rest_endpoint
    @url = 'https://<openai-url>/openai/deployments/<model-name>/embeddings?api-version = 2023-03-15-preview',
    @method = 'POST',
    @credential = [https://<openai-url>/openai/deployments/<model-name>],
    @payload = @payload,
    @response = @response OUTPUT;

DECLARE @e AS VECTOR(1536) = JSON_QUERY(@response, '$.result.data[0].embedding');

Użycie wywołania do usługi REST, aby uzyskać osadzenia, jest tylko jedną z dostępnych opcji integracji podczas pracy z SQL Managed Instance i OpenAI. Możesz zezwolić dowolnym z modeli available uzyskać dostęp do danych przechowywanych w Database Engine SQL w celu utworzenia rozwiązań, w których użytkownicy mogą korzystać z danych, takich jak poniższy przykład:

Zrzut ekranu bota sztucznej inteligencji, który odpowiada na pytanie przy użyciu danych przechowywanych w SQL Server.

Aby uzyskać dodatkowe przykłady dotyczące używania Azure SQL i interfejsu OpenAI, zobacz następujące artykuły, które dotyczą również SQL Server i Azure SQL Managed Instance:

Przykłady wektorów

Dedykowany typ danych wektorowych efektywnie przechowuje dane wektorowe i zawiera zestaw funkcji, które ułatwiają deweloperom implementację wyszukiwania wektorów i podobieństw. Odległość między dwoma wektorami można obliczyć w jednym wierszu kodu przy użyciu nowej VECTOR_DISTANCE funkcji. Aby uzyskać więcej informacji i przykładów, zobacz Przeszukiwanie wektorów i indeksy wektorowe w silniku baz danych SQL.

Przykład:

CREATE TABLE [dbo].[wikipedia_articles_embeddings_titles_vector]
(
    [article_id] [int] NOT NULL,
    [embedding] [vector](1536) NOT NULL,
)
GO

SELECT TOP(10)
    *
FROM
    [dbo].[wikipedia_articles_embeddings_titles_vector]
ORDER BY
    VECTOR_DISTANCE('cosine', @my_reference_vector, embedding)

Zaimplementuj wzorce RAG przy użyciu Database Engine SQL i Wyszukiwanie AI platformy Azure. Obsługiwane modele czatów można uruchamiać na danych przechowywanych w Database Engine SQL bez konieczności trenowania lub dostosowywania modeli przez zintegrowanie Wyszukiwanie AI platformy Azure z Azure OpenAI i Database Engine SQL. Podczas uruchamiania modeli na danych możesz rozmawiać na podstawie danych i analizować je z większą dokładnością i szybkością.

Aby dowiedzieć się więcej na temat integracji Wyszukiwanie AI platformy Azure z Azure OpenAI i Database Engine SQL, zobacz następujące artykuły. Te artykuły dotyczą również SQL Server i Azure SQL Managed Instance:

Inteligentne aplikacje

Za pomocą Database Engine SQL można tworzyć inteligentne aplikacje, które obejmują funkcje sztucznej inteligencji, takie jak rekomendacje i pobieranie rozszerzonej generacji (RAG), jak pokazano na poniższym diagramie:

Diagram różnych funkcji sztucznej inteligencji do tworzenia inteligentnych aplikacji za pomocą Azure SQL Database.

Aby zapoznać się z przykładowym projektem typu end-to-end, który pokazuje, jak zbudować aplikację z obsługą sztucznej inteligencji przy użyciu abstrakcyjnych sesji jako przykładowego zestawu danych, zobacz:

Uwaga / Notatka

Integracja aplikacji LangChain i integracja Semantic Kernel polegają na typie danych vector, który jest dostępny od SQL Server 2025 (17.x) i w Azure SQL Managed Instance skonfigurowany za pomocą Always-up-to-date lub SQL Server 2025 update policy, Azure SQL Database i baza danych SQL w Microsoft Fabric.

Integracja aplikacji LangChain

LangChain to dobrze znana platforma do tworzenia aplikacji opartych na modelach językowych. Przykłady pokazujące, jak za pomocą biblioteki LangChain utworzyć czatbota na własnych danych, zobacz:

Kilka przykładów użycia Azure SQL z aplikacją LangChain:

Przykłady od początku do końca:

Integracja z Semantic Kernel

Semantic Kernel to zestaw SDK typu open source którego można użyć do łatwego tworzenia agentów wywołujących istniejący kod. Jako wysoce rozszerzalny zestaw SDK można używać Semantic Kernel z modelami z platformy OpenAI, Azure OpenAI, Hugging Face i nie tylko. Łącząc istniejące języki C#, Python i Java z tymi modelami, możesz tworzyć agentów, którzy odpowiadają na pytania i automatyzują procesy.

Przykładem, jak łatwo Semantic Kernel pomaga w tworzeniu rozwiązań wspieranych przez sztuczną inteligencję, jest: