Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2025 (17.x)
Azure SQL Database Azure SQL
Managed Instance
SQL Database v Microsoft Fabric
Tento článek obsahuje přehled použití možností umělé inteligence (AI), jako jsou OpenAI a vektory, k vytváření inteligentních aplikací pomocí databázového stroje SQL v SQL Serveru a azure SQL Managed Instance.
Pro Azure SQL Database si projděte inteligentní aplikace a AI.
Ukázky a příklady najdete v úložišti ukázek AI SQL.
Přehled
Velké jazykové modely (LLM) umožňují vývojářům vytvářet aplikace využívající AI se známým uživatelským prostředím.
Použití LLM v aplikacích přináší větší hodnotu a vylepšené uživatelské prostředí, když modely můžou přistupovat ke správným datům ve správný čas z databáze vaší aplikace. Tento proces se označuje jako rag (Retrieval Augmented Generation) a databázový stroj SQL má mnoho funkcí, které tento nový model podporují, takže je skvělou databází pro vytváření inteligentních aplikací.
Následující odkazy poskytují vzorový kód různých možností pro vytváření inteligentních aplikací:
| Možnost AI | Description |
|---|---|
| Azure OpenAI | Generování vkládání pro RAG a integrace s libovolným modelem podporovaným platformou Azure OpenAI |
| Vektory | Naučte se ukládat vektory a používat vektorové funkce v databázi. |
| Azure AI Search | Využijte databázi společně se službou Azure AI Search k trénování LLM na vašich datech. |
| Inteligentní aplikace | Zjistěte, jak vytvořit komplexní řešení pomocí běžného vzoru, který je možné replikovat v libovolném scénáři. |
Klíčové koncepty implementace RAG s využitím Azure OpenAI
Tato část obsahuje klíčové koncepty, které jsou důležité pro implementaci RAG s Azure OpenAI v databázovém stroji SQL.
Generování s rozšířeným načítáním (RAG)
RAG je technika, která zlepšuje schopnost LLM vytvářet relevantní a informativní odpovědi načtením dalších dat z externích zdrojů. RAG může například dotazovat články nebo dokumenty, které obsahují znalosti specifické pro doménu související s dotazem nebo výzvou uživatele. LLM pak může tato načtená data použít jako referenci při generování odpovědi. Jednoduchý vzor RAG pomocí databázového stroje SQL může být například následující:
- Vloží data do tabulky.
- Propojte instanci se službou Azure AI Search.
- Vytvořte model Azure OpenAI GPT4 a připojte ho ke službě Azure AI Search.
- Chatujte a ptejte se na data pomocí natrénovaného modelu Azure OpenAI z vaší aplikace a dat ve vaší instanci.
Vzor RAG s využitím techniky promptingu slouží k vylepšení kvality odezvy tím, že poskytuje více kontextových informací modelu. RAG umožňuje modelu použít širší znalostní bázi začleněním relevantních externích zdrojů do procesu generování, což vede k komplexnějším a informovanějším odpovědím. Další informace o uzemnění LLM naleznete v tématu Grounding LLMs - Microsoft Community Hub.
Výzvy a výzva k technickému zpracování
Výzva odkazuje na konkrétní text nebo informace, které slouží jako instrukce pro LLM, nebo jako kontextová data, na kterých může LLM vycházet. Výzva může mít různé formy, například otázku, příkaz nebo dokonce fragment kódu.
Ukázkové výzvy, které je možné použít k vygenerování odpovědi z LLM:
- Pokyny: poskytnutí direktiv pro LLM
- Primární obsah: poskytuje informace LLM ke zpracování.
- Příklady: Podmínka nápovědy modelu k určitému úkolu nebo procesu
- Upozornění: směrujte výstup LLM správným směrem.
- Podpůrný obsah: představuje doplňující informace, které LLM může použít k vygenerování výstupu.
Proces vytváření vhodných výzev pro scénář se nazývá prompt engineering. Další informace o výzvách a osvědčených postupech pro navrhování výzev naleznete na stránce Techniky navrhování výzev.
Tokény
Tokeny jsou malé bloky textu vygenerované rozdělením vstupního textu na menší segmenty. Tyto segmenty můžou být slova nebo skupiny znaků, které se liší délkou od jednoho znaku po celé slovo. Například slovo hamburger by bylo rozděleno na tokeny, jako hamje , bura ger zatímco krátké a běžné slovo jako pear by bylo považováno za jeden token.
V Azure OpenAI se vstupní text zadaný do rozhraní API změní na tokeny (tokenizované). Počet tokenů zpracovaných v každém požadavku rozhraní API závisí na faktorech, jako je délka vstupu, výstupu a parametrů požadavku. Množství zpracovávaných tokenů má vliv také na dobu odezvy a propustnost modelů. Počet tokenů, které každý model může přijmout v jednom požadavku nebo odpovědi z Azure OpenAI, existuje omezení. Další informace najdete v tématu Azure OpenAI v kvótách a omezeních modelů Azure AI Foundry.
Vectors
Vektory jsou uspořádaná pole čísel (obvykle float), která mohou představovat informace o některých datech. Obrázek může být například reprezentován jako vektor hodnot pixelů nebo řetězec textu může být reprezentován jako vektor hodnot ASCII. Proces převodu dat na vektor se nazývá vektorizace. Další informace najdete v tématu Příklady vektorů.
Práce s vektorovými daty je jednodušší se zavedením vektorových datových typů a vektorových funkcí.
Zakotvení
Vkládání jsou vektory, které představují důležité funkce dat. Vkládání se často učí pomocí modelu hlubokého učení a modely strojového učení a AI je využívají jako funkce. Vkládání může také zachytit sémantickou podobnost mezi podobnými koncepty. Například při generování vektorové reprezentace pro slova person a humanbychom očekávali, že jejich vektorové reprezentace budou podobné hodnotou, protože slova jsou také sémanticky podobná.
Azure OpenAI nabízí modely pro vytváření vložených dat z textových dat. Služba rozdělí text na tokeny a vygeneruje vkládání pomocí modelů předem natrénovaných metodou OpenAI. Další informace najdete v tématu Vysvětlení vkládání v Azure OpenAI v modelech Azure AI Foundry.
Vektorové vyhledávání
Vektorové vyhledávání odkazuje na proces hledání všech vektorů v datové sadě, které jsou sémanticky podobné konkrétnímu vektoru dotazu. Proto vektor dotazu pro slovo human hledá v celém slovníku sémanticky podobná slova a měl by najít slovo person jako blízkou shodu. Tato blízkost nebo vzdálenost se měří pomocí metriky podobnosti, jako je kosinus podobnost. Bližší vektory jsou v podobnosti, menší je vzdálenost mezi nimi.
Představte si scénář, ve kterém spustíte dotaz na miliony dokumentů, abyste našli ty nejpodobnější dokumenty ve vašich datech. Vkládání dat a dotazování dokumentů můžete vytvářet pomocí Azure OpenAI. Pak můžete pomocí vektorového vyhledávání najít ty nejpodobnější dokumenty z vaší datové sady. Provedení vektorového vyhledávání v několika příkladech je ale triviální. Provádění tohoto stejného hledání napříč tisíci nebo miliony datových bodů je náročné. Existují také kompromisy mezi vyčerpávajícími metodami vyhledávání a přibližným nejbližším sousedem (ANN), včetně latence, propustnosti, přesnosti a nákladů, z nichž všechny závisí na požadavcích vaší aplikace.
Vektory v databázovém stroji SQL lze efektivně ukládat a dotazovat, jak je popsáno v dalších částech, což umožňuje přesné hledání nejbližších sousedů s velkým výkonem. Nemusíte se rozhodovat mezi přesností a rychlostí: můžete mít obojí. Ukládání vektorových vkládání společně s daty v integrovaném řešení minimalizuje potřebu správy synchronizace dat a zrychluje váš čas na trh vývoje aplikací AI.
Azure OpenAI
Vkládání je proces reprezentace skutečného světa jako dat. Text, obrázky nebo zvuky se dají převést na vkládání. Modely Azure OpenAI umožňují transformovat skutečné informace na vkládání. Modely jsou k dispozici jako koncové body REST, a proto je můžete snadno využívat z databázového stroje SQL pomocí uložené procedury sp_invoke_external_rest_endpoint systému, která je dostupná od SQL Serveru 2025 (17.x) a azure SQL Managed Instance nakonfigurované pomocí zásad aktualizace Always-up-to-date.
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');
Volání služby REST pro získání vkládání je jen jednou z možností integrace, které máte při práci se službou SQL Managed Instance a OpenAI. K datům uloženým v databázovém stroji SQL můžete umožnit přístup k datům libovolných dostupných modelů , abyste vytvořili řešení, ve kterých můžou uživatelé s daty pracovat, například v následujícím příkladu:
Další příklady použití Azure SQL a OpenAI najdete v následujících článcích, které platí také pro SQL Server a spravovanou instanci Azure SQL:
- Generování imagí pomocí služby Azure OpenAI (DALL-E) a Azure SQL
- Použití koncových bodů REST OpenAI s Azure SQL
Příklady vektorů
Datový typ vyhrazeného vektoru umožňuje efektivní a optimalizované ukládání vektorových dat a dodává se se sadou funkcí, které vývojářům pomáhají zjednodušit implementaci vektorového a podobného vyhledávání. Výpočet vzdálenosti mezi dvěma vektory lze provádět v jednom řádku kódu pomocí nové VECTOR_DISTANCE funkce. Další informace a příklady najdete v tématu Vektorové vyhledávání a vektorové indexy v databázovém stroji SQL.
Například:
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)
Azure AI Vyhledávač
Implementujte vzory RAG pomocí databázového stroje SQL a služby Azure AI Search. Podporované modely chatu můžete spouštět na datech uložených v databázovém stroji SQL, aniž byste museli trénovat nebo vyladit modely díky integraci služby Azure AI Search s Azure OpenAI a databázovým strojem SQL. Spouštění modelů na datech umožňuje chatovat nad daty a analyzovat data s větší přesností a rychlostí.
Další informace o integraci služby Azure AI Search s Azure OpenAI a databázovým strojem SQL najdete v následujících článcích, které platí také pro SQL Server a spravovanou instanci Azure SQL:
- Azure OpenAI na vašich datech
- Retrieval Augmented Generation (RAG) ve službě Azure AI Search
- Vektorové vyhledávání s využitím Azure SQL a Azure AI Search
Inteligentní aplikace
Databázový stroj SQL lze použít k vytváření inteligentních aplikací, které zahrnují funkce umělé inteligence, jako jsou doporučené nástroje, a načítání rozšířené generace (RAG), jak ukazuje následující diagram:
Kompletní ukázku pro sestavení aplikace s podporou AI pomocí abstraktních relací jako ukázkové datové sady najdete tady:
- Jak jsem pomocí OpenAI vytvořil(a) doporučovací nástroj relace za 1 hodinu.
- Vytvoření pomocníka pro relace konference pomocí rozšířené generace načítání
Poznámka:
Integrace jazyka LangChain a sémantická integrace jádra závisí na datovém typu vektoru, který je k dispozici od SQL Serveru 2025 (17.x) a ve službě Azure SQL Managed Instance nakonfigurované pomocí zásad aktualizace Always-up-to-date.
Integrace jazyka LangChain
LangChain je dobře známá architektura pro vývoj aplikací využívajících jazykové modely. Příklady, které ukazují, jak se dá LangChain použít k vytvoření chatovacího robota na vlastních datech, najdete tady:
- langchain-sqlserver Balíček PyPI
Několik ukázek použití Azure SQL s jazykem LangChain:
Kompletní příklady:
- Vytvořte chatovacího robota na vlastní data za 1 hodinu pomocí Azure SQL, Langchainu a Chainlitu: Vytvořte chatovacího robota pomocí vzoru RAG na vlastních datech pomocí Langchainu pro orchestraci volání LLM a Chainlit pro uživatelské rozhraní.
Sémantická integrace jádra
Sémantické jádro je opensourcová sada SDK , která umožňuje snadno vytvářet agenty, kteří můžou volat váš existující kód. Jako vysoce rozšiřitelná sada SDK můžete použít sémantické jádro s modely z OpenAI, Azure OpenAI, Hugging Face a dalších. Kombinací stávajícího kódu C#, Pythonu a Javy s těmito modely můžete vytvářet agenty, kteří zodpovídají na otázky a automatizují procesy.
Tady je příklad, jak snadné sémantické jádro pomáhá vytvářet řešení s podporou AI:
- Konečný chatovací robot?: Vytvořte chatovacího robota na vlastních datech pomocí vzorů NL2SQL i RAG pro dokonalé uživatelské prostředí.