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 databáze 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í SQL Database Engine v SQL Server a Azure SQL Managed Instance.
Informace o Azure SQL Database a SQL Database v Fabric najdete v tématu 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 SQL Database Engine má mnoho funkcí, které podporují tento nový vzor, 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 |
|---|---|
| SQL MCP Server | Stabilní a řízené rozhraní pro vaši databázi definující sadu nástrojů a konfigurace. |
| Azure OpenAI | Generování embeddingů pro RAG a integrace s libovolným modelem podporovaným Azure od 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ě s 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. |
SQL MCP Server v aplikacích AI
SQL MCP Server se nachází přímo v cestě k datům pro agenty AI.
- Při generování požadavků poskytuje server stabilní a řízené rozhraní pro vaši databázi.
- Místo zveřejnění nezpracovaného schématu nebo spoléhat se na vygenerovaný SQL, směruje veškerý přístup přes definovanou sadu nástrojů zazálohovaných vaší konfigurací.
Tento přístup udržuje interakce předvídatelné a zajišťuje, aby každá operace odpovídala oprávněním a struktuře, které definujete. Další informace naleznete na aka.ms/sql/mcp.
Oddělením odůvodnění od spuštění se modely zaměřují na záměr, zatímco SQL MCP Server zpracovává, jak se tento záměr stane platnými dotazy. Vzhledem k tomu, že povrchová oblast je omezená a popsaná, můžou agenti zjišťovat dostupné funkce, porozumět vstupům a výstupům a pracovat bez odhadu. Tento návrh snižuje chyby a odstraňuje nutnost komplexního návrhu vstupních podnětů ke kompenzaci nejednoznačnosti schématu.
Tento přístup pro vývojáře znamená, že se AI může bezpečně účastnit skutečných úloh.
Můžete:
- Definování entit jednou
- Použijte role a omezení
Platforma pak následuje:
- Vynucuje entity, role a omezení konzistentně.
- Vytvoří spolehlivý základ pro aplikace řízené agenty přes data SQL.
Stejná konfigurace, která využívá ROZHRANÍ REST a GraphQL, také řídí MCP, takže neexistuje žádná duplikace pravidel nebo logiky. Další informace najdete v tématu aka.ms/dab/docs.
Klíčové koncepty implementace RAG s Azure OpenAI
Tato část obsahuje klíčové koncepty, které jsou důležité pro implementaci RAG s Azure OpenAI v sql Database Engine.
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. Například jednoduchý vzor RAG s využitím Database Engine SQL může být:
- Vloží data do tabulky.
- Propojte instanci s Azure AI Search.
- Vytvořte Azure model OpenAI GPT-4 a připojte ho k Azure AI Search.
- Chatujte a ptejte se na svá 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áze začleněním relevantních externích zdrojů do procesu generování, což vede k komplexnějším a informovanějším reakcím. Další informace o grounding LLM najdete v tématu Grounding LLMs – Microsoft Community Hub.
Výzvy a výzva k technickému zpracování
Výzva je konkrétní text nebo informace, které slouží jako instrukce pro velký jazykový model (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.
Příklady výzev, které můžete použít k vygenerování odpovědi z LLM, zahrnují:
- Pokyny: poskytnutí direktiv pro LLM
- Primární obsah: poskytuje informace LLM ke zpracování.
- Příklady: pomoci při nastavování modelu pro konkrétní úkol nebo proces
- 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 je rozděleno na tokeny, jako hamje , bura ger zatímco krátké a běžné slovo jako pear je považováno za jeden token.
V Azure OpenAI rozhraní API tokenizuje vstupní text. 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ů. Každý model má omezení počtu tokenů, které může přijmout v jednom požadavku a odpovědi z Azure OpenAI. 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 hloubkového učení a modely strojového učení a AI je používají jako funkce. Vkládání může také zachytit sémantickou podobnost mezi podobnými koncepty. Například při generování embeddingu pro slova person a human, můžete očekávat, že jejich embeddingy (vektorová reprezentace) budou mít podobné hodnoty, 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 naleznete v tématu Porozumění vektorovým reprezentacím v Azure OpenAI v modelech Azure AI Foundry.
Vektorové vyhledávání
Vektorové vyhledávání je 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 kosinusová podobnost. Bližší vektory jsou v podobnosti, tím 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. Můžete vytvářet vnořené vektory pro svá data a dotazovat dokumenty 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é. Mezi vyčerpávajícími vyhledávacími metodami a metodami přibližného nejbližšího souseda (ANN) existují také kompromisy, včetně latence, propustnosti, přesnosti a nákladů. Všechny tyto kompromisy závisí na požadavcích vaší aplikace.
Vektory dotazů můžete efektivně ukládat a dotazovat v Database Engine SQL, jak je popsáno v dalších částech. Tato funkce umožňuje přesné hledání nejbližšího souseda s velkým výkonem. Nemusíte se rozhodovat mezi přesností a rychlostí: můžete mít obojí. Ukládání vektorových embedování společně s daty v integrovaném řešení minimalizuje potřebu správy synchronizace dat a urychluje uvedení vámi vyvíjených AI aplikací na trh.
Azure OpenAI
Vkládání je proces reprezentace skutečného světa jako dat. Text, obrázky nebo zvuky můžete převést na vložené. Modely Azure OpenAI mohou transformovat skutečné informace na embeddingy. K modelům můžete přistupovat jako ke koncovým bodům REST, takže je můžete snadno využívat z sql Database Engine pomocí uložené procedury sp_invoke_external_rest_endpoint systému. Tento postup je k dispozici od verze SQL Server 2025 (17.x) a pro Azure SQL Managed Instance nakonfigurované s aktualizační politikou 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');
Použití volání na službu REST pro získání embeddingů je jen jednou z možností integrace, které máte při práci s SQL Managed Instance a OpenAI. Můžete umožnit kterémukoli z dostupných modelů přístup k datům uloženým v SQL Database Engine, abyste vytvořili řešení, kde vaši uživatelé mohou 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 Azure SQL Managed Instance:
- Generovat obrázky pomocí Azure OpenAI Service (DALL-E) a Azure SQL
- Using OpenAI REST Endpoints with Azure SQL
Příklady vektorů
Vyhrazený datový typ vektoru efektivně ukládá vektorová data a obsahuje sadu funkcí, které pomáhají vývojářům zjednodušit implementaci vyhledávání vektorů a podobností. Vzdálenost mezi dvěma vektory můžete vypočítat v jednom řádku kódu pomocí nové VECTOR_DISTANCE funkce. Další informace a příklady viz vektorové vyhledávání a vektorové indexy v SQL Database Engine.
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í sql Database Engine a Azure AI Search. Podporované modely chatu můžete spouštět na datech uložených v SQL Database Engine, aniž byste museli trénovat nebo vyladit modely integrací Azure AI Search s Azure OpenAI a SQL Database Engine. Můžete spouštět modely na svých datech a přímo s nimi chatovat, analyzovat je s větší přesností a rychlostí.
Další informace o integraci Azure AI Search s Azure OpenAI a sql Database Engine najdete v následujících článcích. Tyto články platí také pro SQL Server a Azure SQL Managed Instance:
- Azure OpenAI na vašich datech
- Retrieval Augmented Generation (RAG) v Azure AI Search
- Vektorové vyhledávání s Azure SQL a Azure AI Search
Inteligentní aplikace
Sql Database Engine můžete použít k vytváření inteligentních aplikací, které obsahují funkce AI, jako jsou doporučené nástroje a rozšířené generování (RAG), jak ukazuje následující diagram:
Kompletní ukázka, která ukazuje, jak sestavit aplikaci s podporou AI pomocí relací abstraktních jako ukázkové datové sady, najdete tady:
- Jak jsem vytvořil(a) doporučovací systém pro relace během 1 hodiny pomocí OpenAI.
- Použijte generaci s rozšířeným vyhledáváním k vytvoření asistenta pro konferenční sekce.
Poznámka:
Integrace jazyka LangChain a integrace Semantic Kernel závisí na datovém typu vector, který je dostupný od SQL Server 2025 (17.x) a v Azure SQL Managed Instance nakonfigurovaném s Always-up-to-date nebo SQL Server 2025 update policy, Azure SQL Database a SQL databázi v Microsoft Fabric.
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 můžete pomocí jazyka LangChain vytvořit 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 s Azure SQL, Langchain a Chainlit: Vytvořte chatovacího robota pomocí vzoru RAG na vlastních datech pomocí LangChain pro orchestraci volání LLM a Chainlit pro uživatelské rozhraní.
integrace Semantic Kernel
Semantic Kernel je opensourcová sada SDK, pomocí které můžete snadno vytvářet agenty, kteří volají váš existující kód. Jako vysoce rozšiřitelná sada SDK můžete používat Semantic Kernel s modely z OpenAI, Azure OpenAI, Hugging Face a dalších. Kombinací stávajícího kódu C#, Python a Java s těmito modely můžete vytvářet agenty, kteří zodpoví otázky a automatizují procesy.
Příklad toho, jak snadno Semantic Kernel pomáhá vytvářet řešení s umělou inteligencí:
- Konečný chatovací robot?: Vytvořte chatovacího robota na vlastních datech pomocí vzorů NL2SQL i RAG pro dokonalé uživatelské prostředí.