Розробляйте інтелектуальні додатки за допомогою фреймворків штучного інтелекту
Створення готових до виробництва додатків штучного інтелекту вимагає не лише можливостей штучного інтелекту — це підхід, який охоплює потокову передачу даних у реальному часі, інтерфейси природною мовою, інструменти продуктивності розробників та хмарну інтеграцію. SQL Server 2025 надає платформу для розробки програм, які масштабуються від локальних розгортань до хмарних архітектур.
Цей інтегрований підхід означає, що ви можете створювати програми штучного інтелекту за допомогою інструментів і фреймворків, використовуючи корпоративні функції для безпеки, продуктивності та надійності. Незалежно від того, чи створюєте ви механізми рекомендацій у реальному часі, розмовні помічники зі штучним інтелектом або аналітичні панелі на основі аналітичних даних AI, SQL Server 2025 забезпечить необхідну основу.
Створюйте розмовні інтерфейси зі штучним інтелектом
Інтерфейси на природній мові роблять корпоративні дані доступними для користувачів, не вимагаючи знань SQL або технічних знань.
Створюйте шаблони розмовних запитів
Шаблони розмовних запитів дозволяють користувачам ставити запитання природною мовою та отримувати відповіді на основі даних, перекладаючи свої запити на SQL за допомогою моделей штучного інтелекту, таких як GPT-4.
Реалізація природної мови в можливостях SQL (NL2SQL):
-- Create a stored procedure that interprets natural language queries
CREATE PROCEDURE sp_ConversationalQuery
@user_question NVARCHAR(MAX),
@context NVARCHAR(MAX) OUTPUT,
@sql_query NVARCHAR(MAX) OUTPUT
AS
BEGIN
-- Build a prompt for the AI model to generate SQL
DECLARE @prompt NVARCHAR(MAX) = CONCAT(
'You are a SQL expert. Given the following database schema and user question, generate a SQL query.',
CHAR(10), CHAR(10),
'Schema:', CHAR(10),
'products (product_id INT, product_name NVARCHAR(100), price DECIMAL(10,2), category NVARCHAR(50))',
CHAR(10),
'sales (sale_id INT, product_id INT, quantity INT, sale_date DATE)',
CHAR(10), CHAR(10),
'Question: ', @user_question,
CHAR(10),
'Generate only the SQL query, no explanations.'
);
-- Call GPT-4 to generate SQL
DECLARE @request NVARCHAR(MAX) = JSON_OBJECT(
'messages': JSON_ARRAY(
JSON_OBJECT('role': 'system', 'content': 'You are a SQL query generator.'),
JSON_OBJECT('role': 'user', 'content': @prompt)
),
'max_tokens': 500
);
DECLARE @response NVARCHAR(MAX);
EXEC sp_invoke_external_rest_endpoint
@url = N'https://myopenai.openai.azure.com/openai/deployments/gpt-4/chat/completions?api-version=2024-02-15-preview',
@method = 'POST',
@credential = [MyAzureOpenAICredential],
@payload = @request,
@response = @response OUTPUT;
-- Extract the generated SQL
SET @sql_query = JSON_VALUE(@response, '$.result.choices[0].message.content');
SET @context = 'Query generated successfully';
END;
Ця збережена процедура використовує GPT-4 для перекладу питань природною мовою в SQL-запити, забезпечуючи розмовний доступ до ваших даних.
Встановлюйте захисні огорожі
Захисні огорожі запобігають виконанню SQL-запитами, створеними штучним інтелектом, неправильних операцій, таких як видалення або зміна даних, забезпечуючи доступ до вашої бази даних лише для читання.
Додайте перевірку, щоб переконатися, що згенерований SQL безпечний:
CREATE PROCEDURE sp_SafeConversationalQuery
@user_question NVARCHAR(MAX),
@results NVARCHAR(MAX) OUTPUT
AS
BEGIN
DECLARE @sql_query NVARCHAR(MAX);
DECLARE @context NVARCHAR(MAX);
-- Generate SQL from natural language
EXEC sp_ConversationalQuery @user_question, @context OUTPUT, @sql_query OUTPUT;
-- Validate the generated SQL
IF @sql_query LIKE '%DROP%'
OR @sql_query LIKE '%DELETE%'
OR @sql_query LIKE '%UPDATE%'
OR @sql_query LIKE '%INSERT%'
OR @sql_query LIKE '%ALTER%'
OR @sql_query LIKE '%CREATE%'
BEGIN
SET @results = JSON_OBJECT('error': 'Generated query contains potentially unsafe operations');
RETURN;
END;
-- Execute the query safely (read-only)
BEGIN TRY
EXEC sp_executesql @sql_query;
END TRY
BEGIN CATCH
SET @results = JSON_OBJECT(
'error': ERROR_MESSAGE(),
'query': @sql_query
);
END CATCH;
END;
Ця обгортка додає перевірки безпеки для запобігання руйнівним операціям, гарантуючи, що користувачі можуть лише запитувати дані, а не змінювати їх.
Створюйте багаточергові бесіди
Розмови з кількома чергами дають змогу користувачам вести природні, контекстні діалоги з вашими даними, зберігаючи історію розмов, дозволяючи ставити додаткові запитання без повторення контексту.
У наведеному нижче прикладі створено розмовний штучний інтелект, який підтримує контекст під час кількох взаємодій, забезпечуючи додаткові запитання та природний діалог із вашими даними:
CREATE TABLE conversation_history (
conversation_id UNIQUEIDENTIFIER DEFAULT NEWID(),
user_id NVARCHAR(100),
turn_number INT,
user_message NVARCHAR(MAX),
assistant_message NVARCHAR(MAX),
timestamp DATETIME2 DEFAULT GETDATE(),
PRIMARY KEY (conversation_id, turn_number)
);
CREATE PROCEDURE sp_ConversationalChat
@conversation_id UNIQUEIDENTIFIER,
@user_id NVARCHAR(100),
@user_message NVARCHAR(MAX),
@response NVARCHAR(MAX) OUTPUT
AS
BEGIN
-- Get conversation history
DECLARE @history NVARCHAR(MAX);
SELECT @history = STRING_AGG(
JSON_OBJECT(
'role': CASE WHEN turn_number % 2 = 1 THEN 'user' ELSE 'assistant' END,
'content': CASE WHEN turn_number % 2 = 1 THEN user_message ELSE assistant_message END
),
','
)
FROM conversation_history
WHERE conversation_id = @conversation_id
ORDER BY turn_number;
-- Build messages array with history
DECLARE @messages NVARCHAR(MAX) = CONCAT('[', @history, ',',
JSON_OBJECT('role': 'user', 'content': @user_message), ']');
-- Call GPT-4 with conversation context
DECLARE @chat_request NVARCHAR(MAX) = JSON_OBJECT('messages': @messages);
EXEC sp_invoke_external_rest_endpoint
@url = N'https://myopenai.openai.azure.com/openai/deployments/gpt-4/chat/completions?api-version=2024-02-15-preview',
@method = 'POST',
@credential = [MyAzureOpenAICredential],
@payload = @chat_request,
@response = @response OUTPUT;
-- Extract and store the response
DECLARE @assistant_response NVARCHAR(MAX) = JSON_VALUE(@response, '$.result.choices[0].message.content');
-- Save to conversation history
DECLARE @next_turn INT = (SELECT ISNULL(MAX(turn_number), 0) + 1 FROM conversation_history WHERE conversation_id = @conversation_id);
INSERT INTO conversation_history (conversation_id, user_id, turn_number, user_message, assistant_message)
VALUES (@conversation_id, @user_id, @next_turn, @user_message, @assistant_response);
SET @response = @assistant_response;
END;
Підвищуйте продуктивність розробників за допомогою інструментів штучного інтелекту
SQL Server 2025 інтегрується із сучасними інструментами розробки для прискорення розробки додатків на основі штучного інтелекту.
Використовуйте розширення MSSQL для Visual Studio Code з GitHub Copilot
Розширення MSSQL для Visual Studio Code включає інтеграцію з GitHub Copilot, надаючи допомогу на основі штучного інтелекту для розробки баз даних.
Примітка
Інтеграція GitHub Copilot з розширенням MSSQL в даний час знаходиться на стадії попереднього перегляду. Функції та можливості можуть змінюватися. Для отримання останньої інформації зверніться до документації розширення MSSQL.
Інтеграція з GitHub Copilot надає допомогу в коді для завдань з розробки баз даних:
- Генерація запитів: Опишіть, що ви хочете на природній мові, отримайте код T-SQL
- Оптимізація запитів: Отримуйте пропозиції щодо покращення ефективності запитів
- Дослідження схеми: Ставте запитання про схему вашої бази даних
- Допомога у міграції : Генерація скриптів для зміни схеми та міграції даних
- Пояснення: Розуміння складних запитів за допомогою пояснень, згенерованих штучним інтелектом
Наступний приклад демонструє, як GitHub Copilot може генерувати повну збережену процедуру з коментаря природною мовою:
-- Type a comment describing what you want
-- Generate a stored procedure that finds products similar to a given product using vector search
-- GitHub Copilot suggests:
CREATE PROCEDURE sp_FindSimilarProducts
@product_id INT,
@top_n INT = 5
AS
BEGIN
DECLARE @query_embedding VECTOR(1536);
-- Get the embedding of the reference product
SELECT @query_embedding = embedding
FROM products
WHERE product_id = @product_id;
-- Find similar products
SELECT TOP (@top_n)
product_id,
product_name,
category,
price,
VECTOR_DISTANCE('cosine', @query_embedding, embedding) AS similarity_score
FROM products
WHERE product_id != @product_id
ORDER BY similarity_score;
END;
Використовуйте Entity Framework Core з можливостями штучного інтелекту
Entity Framework Core можна використовувати для створення додатків штучного інтелекту за допомогою SQL Server. Ви можете використовувати необроблені SQL-запити для роботи з типом даних SQL Server VECTOR і функціями штучного інтелекту:
Оскільки Entity Framework Core не підтримує тип даних VECTOR, цей приклад використовується FromSqlRaw для безпосереднього виконання T-SQL, отримуючи вигоду від асинхронних операцій EF Core та відображення об'єктів. Цей метод серіалізує вбудовування запиту в JSON, виконує пошук векторної подібності за допомогою , VECTOR_DISTANCEі повертає продукти з аналогічними вбудованнями — ідеально підходить для рекомендаційних систем і семантичного пошуку.
using Microsoft.EntityFrameworkCore;
using System.Text.Json;
public class Product
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
}
public class AppDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
}
// Query with vector similarity using raw SQL
public async Task<List<Product>> FindSimilarProducts(float[] queryEmbedding, int topN = 5)
{
var embeddingJson = JsonSerializer.Serialize(queryEmbedding);
var similarProducts = await _context.Products
.FromSqlRaw(@"
SELECT TOP {0}
product_id,
product_name,
description,
price
FROM products
WHERE VECTOR_DISTANCE('cosine', CAST({1} AS VECTOR(1536)), embedding) < 0.5
ORDER BY VECTOR_DISTANCE('cosine', CAST({1} AS VECTOR(1536)), embedding)
", topN, embeddingJson)
.ToListAsync();
return similarProducts;
}
Інтеграція з Microsoft Fabric
Microsoft Fabric надає єдину аналітичну платформу, яка доповнює можливості штучного інтелекту SQL Server. SQL Server 2025 підтримує дзеркальне відображення бази даних у Microsoft Fabric, що дозволяє проводити аналітику операційних даних майже в режимі реального часу без складності традиційних конвеєрів ETL.
Діаграма, що показує дзеркальне відображення бази даних SQL Server 2025 у Microsoft Fabric. Ліворуч база даних SQL Server 2025 постійно реплікує дані в Microsoft Fabric OneLake. Діаграма ілюструє архітектуру нульового ETL, де операційні дані надходять на аналітичну платформу.
Налаштуйте дзеркальне відображення тканини
Налаштування Fabric Mirroring здійснюється через портал Microsoft Fabric за допомогою візуального інтерфейсу. Функція дзеркального відображення постійно реплікує ваші дані на OneLake від Fabric у форматі Delta Lake, роблячи їх доступними для аналітики, не впливаючи на ваше робоче навантаження.
Примітка
Покрокові інструкції з налаштування дивіться в Навчальному посібнику: Налаштування дзеркальних баз даних Microsoft Fabric з SQL Server.
Деякі з переваг дзеркального відображення тканини:
- Аналітика майже в режимі реального часу: Зміни даних відтворюються безперервно з мінімальною затримкою
- Zero-ETL архітектури: Не потрібно створювати та підтримувати складні конвеєри даних
- Формат відкритих даних: Дані зберігаються у форматі Delta Lake в OneLake для широкої сумісності з інструментами
- Аналітика на основі штучного інтелекту: Пряма інтеграція з можливостями штучного інтелекту та машинного навчання Fabric
- Кінцева точка SQL аналітики: Запитуйте дзеркальні дані за допомогою знайомого синтаксису T-SQL
- Відсутність операційного впливу: Дзеркальне відображення використовує відстеження змін, не впливаючи на робоче навантаження
Оптимізуйте продуктивність дзеркального відображення
Після налаштування дзеркального відображення ви можете використовувати Resource Governor SQL Server для керування його впливом на продуктивність ваших робочих навантажень:
Наступний приклад коду створює конфігурацію Resource Govern, яка обмежує ресурси процесора та пам'яті, що використовуються операціями дзеркального відображення Fabric.
-- Create resource pool for mirroring
CREATE RESOURCE POOL FabricMirrorPool
WITH (
MIN_CPU_PERCENT = 5,
MAX_CPU_PERCENT = 20,
MIN_MEMORY_PERCENT = 5,
MAX_MEMORY_PERCENT = 20
);
-- Create workload group for mirroring
CREATE WORKLOAD GROUP FabricMirrorGroup
WITH (
IMPORTANCE = MEDIUM
)
USING FabricMirrorPool;
-- Apply classifier function
CREATE FUNCTION dbo.FabricMirrorClassifier()
RETURNS SYSNAME
WITH SCHEMABINDING
AS
BEGIN
DECLARE @workload_group SYSNAME = 'default';
IF APP_NAME() LIKE '%Fabric Mirror%'
SET @workload_group = 'FabricMirrorGroup';
RETURN @workload_group;
END;
-- Enable resource governor
ALTER RESOURCE GOVERNOR
WITH (CLASSIFIER_FUNCTION = dbo.FabricMirrorClassifier);
ALTER RESOURCE GOVERNOR RECONFIGURE;
У прикладі пул FabricMirrorPool ресурсів обмежує дзеркальне відображення для використання від 5 до 20% процесора та пам'яті, запобігаючи цьому впливу на робочі навантаження виробництва. Функція класифікатора визначає дзеркальні сеанси на основі назви програми та спрямовує їх до виділеної групи робочих навантажень, забезпечуючи послідовний розподіл ресурсів і передбачувану продуктивність як для операційних, так і для аналітичних робочих навантажень.
Resource governor гарантує, що дзеркальне відображення Fabric не вплине на ваші робочі навантаження.
Оптимізуйте продуктивність додатків штучного інтелекту
Продуктивність має вирішальне значення для виробничих додатків штучного інтелекту.
Оптимізуйте векторні пошукові запити
Використовуйте підказки щодо запитів та оптимізацію індексів:
Оптимізація продуктивності векторного пошуку має вирішальне значення для виробничих додатків штучного інтелекту, де час відгуку безпосередньо впливає на користувацький досвід.
Наступний приклад демонструє два ключові методи оптимізації: створення фільтрованих векторних індексів , націлених на конкретні підмножини даних (наприклад, категорії продуктів), і використання підказок запитів для контролю поведінки виконання.
Відфільтрований індекс idx_electronics_embedding прискорює пошукові запити в категорії «Електроніка», індексуючи лише релевантні вектори, зменшуючи простір пошуку та покращуючи швидкість запитів. Підказка MAXDOP 4 обмежує паралельну обробку чотирма потоками, балансуючи продуктивність зі споживанням ресурсів, що важливо для запобігання монополізації векторних пошуків ресурсів сервера та впливу на інші робочі навантаження.
-- Create filtered vector index for specific categories
CREATE VECTOR INDEX idx_electronics_embedding
ON products(embedding)
WHERE category = 'Electronics';
-- Use query hints for better performance
DECLARE @query_embedding VECTOR(1536) = AI_GENERATE_EMBEDDINGS(@user_query USE MODEL Ada2Embeddings);
SELECT TOP 10
product_id,
product_name,
VECTOR_DISTANCE('cosine', @query_embedding, embedding) AS score
FROM products WITH (INDEX(idx_electronics_embedding))
WHERE category = 'Electronics'
ORDER BY score
OPTION (MAXDOP 4);
Ви можете використовувати індекси та підказки запитів, оптимізувати векторний пошук для конкретних сценаріїв.
Дотримуючись цих практик і використовуючи можливості штучного інтелекту SQL Server 2025, ви можете створювати, розгортати та експлуатувати готові до виробництва програми, які забезпечують реальну цінність для бізнесу, зберігаючи при цьому корпоративні стандарти безпеки, продуктивності та надійності.