Позавчера вышла предварительная версия SQL Server 2025.
What's new in SQL Server 2025 Preview.
Из особо интересного:
1.
SQL Server 2025 – Standard Developer edition
Теперь будут 2 дев редакции сервера.
2. JSON INDEX:
CREATE JSON INDEX.
3.
Enterprise AI Without the Learning Curve
Новый тип данных VECTOR и возможность использовать ИИ модели прямо из T_SQL.
-- Step 1: Create an External Model used for embedding generation ----------------------
CREATE EXTERNAL MODEL ollama
WITH (
LOCATION = 'https://model-web:443/api/embed',
API_FORMAT = 'Ollama',
MODEL_TYPE = EMBEDDINGS,
MODEL = 'nomic-embed-text'
);
GO
-- Step 2: Altering a Table to Add Vector Embeddings Column ----------------------------
USE [AdventureWorks2025]
GO
ALTER TABLE [SalesLT].[Product]
ADD embeddings VECTOR(768), chunk NVARCHAR(2000);
GO
-- Step 3: CREATE THE EMBEDDINGS (This demo is based off the MS SQL 2025 demo repository)
UPDATE p
SET
[chunk] = p.Name + ' ' + ISNULL(p.Color, 'No Color') + ' ' + c.Name + ' ' + m.Name + ' ' + ISNULL(d.Description, ''),
[embeddings] = AI_GENERATE_EMBEDDINGS(p.Name + ' ' + ISNULL(p.Color, 'No Color') + ' ' + c.Name + ' ' + m.Name + ' ' + ISNULL(d.Description, '') USE MODEL ollama)
FROM [SalesLT].[Product] p
JOIN [SalesLT].[ProductCategory] c ON p.ProductCategoryID = c.ProductCategoryID
JOIN [SalesLT].[ProductModel] m ON p.ProductModelID = m.ProductModelID
LEFT JOIN [SalesLT].[vProductAndDescription] d ON p.ProductID = d.ProductID AND d.Culture = 'en'
WHERE p.embeddings IS NULL;
-- Step 4: Performing a vector similarity search ----------------------------------------
DECLARE @search_text NVARCHAR(MAX) = 'I am looking for a red bike and I dont want to spend a lot';
DECLARE @search_vector VECTOR(768) = AI_GENERATE_EMBEDDINGS(@search_text USE MODEL ollama);
SELECT TOP(4)
p.ProductID,
p.Name,
p.chunk,
vector_distance('cosine', @search_vector, p.embeddings) AS distance
FROM [SalesLT].[Product] p
ORDER BY distance;
GO
Но не знаю взлетит ли вызвать из бд ИИ модель? Лучше, наверное, из сервера приложений или другого клиента, но посмотрим. Вызов внешних сервисов из бд как бы не очень популярен.
Чем лучше в этом случае будет обращение к модели?
Здравствуйте, BlackEric, Вы писали:
BE>Но не знаю взлетит ли вызвать из бд ИИ модель? Лучше, наверное, из сервера приложений или другого клиента, но посмотрим. Вызов внешних сервисов из бд как бы не очень популярен.
BE>Чем лучше в этом случае будет обращение к модели?
VECTOR обычно большой (десятки-сотни килобайт). Чтобы не гонять параметры типа VECTOR по сети (хотя можно конечно)
Смысл насколько я понимаю в "нечетком поиске по смыслу" где можно сделать выборку по расстоянию между векторами
https://www.youtube.com/watch?v=RksCLw2OU_M