Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:✅База данных SQL в Microsoft Fabric
В этой статье описывается, как использовать базу данных SQL в Fabric для создания приложений на базе ИИ, которые сочетают транзакционные данные с большими языковыми моделями (LLM), векторным поиском или шаблонами RAG (генерации с дополнением извлечёнными данными).
База данных SQL в Fabric предоставляет реляционную основу для интеллектуальных приложений: транзакции ACID, запросы с низкой задержкой, собственный vector тип данных и функции, а также тесная интеграция с более широкой Fabric аналитикой и платформой ИИ.
Почему база данных SQL в Fabric для приложений ИИ?
Для создания интеллектуальных приложений требуется база данных, которая может хранить операционные данные вместе с векторными внедрениями, обслуживать запросы транзакций и сходства при низкой задержке и интегрировать с платформами оркестрации ИИ. База данных SQL в Fabric соответствует следующим требованиям:
- Встроенная поддержка векторов: встроенные в SQL ядро СУБД векторный тип данных и скалярные векторные функции позволяют хранить эмбеддинги и выполнять поиск по сходству непосредственно в T-SQL, без отдельной векторной базы данных.
- Архитектура, готовая к RAG: объединяет ваши структурированные бизнес-данные с векторными представлениями в одной и той же базе данных, чтобы запросы извлечения могли объединять реляционный контекст (данные о клиентах, историю заказов, каталоги товаров) с результатами семантического поиска в рамках одного запроса.
- Интеграция с фреймворками: подключайтесь к LangChain и Semantic Kernel через существующие соединители SQL Server для создания оркестрируемых ИИ-процессов.
- Интеграция с платформой Fabric: получайте доступ к своим данным SQL из блокнотов Fabric, рабочих нагрузок Data Science и Copilot, не перемещая данные за пределы платформы.
- Корпоративное управление: аутентификация Microsoft Entra ID, безопасность на уровне рабочей области и шифрование с использованием ключей, управляемых клиентом, применимы к нагрузкам ИИ так же, как и к любой другой производственной нагрузке.
Tip
Реальный пример того, как клиент использует базу данных Fabric SQL для обработки данных и создания векторных представлений, см. в статье История клиента: Eastman унифицировала данные и строит будущее на базе ИИ с Microsoft Fabric.
Генерация, дополненная извлечением (RAG)
RAG улучшает ответы LLM, извлекая релевантные данные из вашей базы данных перед генерацией ответа. Вместо того чтобы полагаться исключительно на обучающие данные модели, приложение обращается к вашим операционным данным, чтобы основывать ответы на актуальных фактах из конкретной предметной области. Полный обзор см. в разделе Генерация, дополненная поиском (RAG).
Типичный шаблон RAG с базой данных SQL в Fabric выполняет следующие действия.
- Фрагментация: Разбить крупные источники данных (документы, статьи базы знаний, каталоги продуктов) на удобные для обработки части и преобразовать их в простой текст.
- Embed: создайте векторные представления для каждого фрагмента с помощью Azure OpenAI или другой модели эмбеддингов.
- Сохранение: Вставьте эмбеддинги в таблицу со столбцом vector вместе с исходным текстом и любыми реляционными метаданными.
- Получение: когда пользователь задает вопрос, внедряйте запрос с той же моделью, а затем используйте VECTOR_DISTANCE для поиска наиболее похожих блоков. Присоединение к реляционным таблицам для обогащения контекста.
- Расширение. Объедините извлеченные блоки с исходным вопросом пользователя в запрос, который указывает LLM, как использовать контекст.
- Сгенерировать: отправьте дополненный запрос в большую языковую модель (LLM), которая формирует ответ на основе полученных данных.
Гибридный векторный поиск в базе данных транзакций
Так как внедренные и реляционные данные живут в одной базе данных, можно фильтровать по реляционным атрибутам (диапазонам дат, категориям, разрешениям доступа) в одном запросе, повышая релевантность и безопасность. Вы можете объединить векторные поиски с традиционными фильтрами SQL (WHERE) для результатов, отфильтрованных как по связям транзакций, так и по векторным функциям. Рассмотрим пример.
-- Hybrid search: vector similarity filtered by product category
SELECT TOP (5) p.product_name, p.description
, cosine_distance = VECTOR_DISTANCE('cosine', @query_embedding, p.embedding)
FROM dbo.products AS p
WHERE p.category = 'Electronics'
ORDER BY VECTOR_DISTANCE('cosine', @query_embedding, p.embedding);
Этот шаблон полезен для рекомендаций по продуктам, поиска базы знаний и сценариев поддержки клиентов, в которых результаты должны быть как семантически релевантными, так и ограниченными бизнес-правилами.
Вы также можете выполнять запросы с помощью нового синтаксиса T-SQL VECTOR_SEARCH, чтобы находить приблизительные результаты поиска ближайших соседей. Рассмотрим пример.
DECLARE @qv VECTOR(1536) = AI_GENERATE_EMBEDDINGS(N'Pink Floyd music style' USE MODEL Ada2Embeddings);
SELECT TOP (10) WITH APPROXIMATE
t.id,
t.title,
r.distance
FROM VECTOR_SEARCH(
TABLE = dbo.wikipedia_articles_embeddings AS t,
COLUMN = content_vector,
SIMILAR_TO = @qv,
METRIC = 'cosine'
) AS r
ORDER BY r.distance;
Агенты ИИ с серверами MCP Fabric
Fabric предлагает как локальный MCP с открытым исходным кодом Fabric, так и сервер удаленного MCP Fabric для агентов ИИ. Эти серверы предоставляют прямую проверку подлинности и инструкции для подготовленных операций, таких как управление рабочей областью, управление элементами CRUD и определениями и управление разрешениями.
Оба варианта сервера Fabric MCP работают с любым клиентом, совместимым с MCP, включая GitHub Copilot, Cursor, Claude Desktop и другие. Например, расширение Fabric MCP Server для Visual Studio Code работает с расширением Microsoft Fabric и GitHub Copilot Chat. С помощью этих расширений вы можете получить доступ к средствам FABRIC MCP в чате GitHub Copilot и использовать агенты для управления элементами Fabric, такими как создание Fabric базы данных SQL и управление ими.
- Локальный сервер Fabric MCP работает на вашем компьютере, так что ИИ-агенты получают необходимый им контекст для создания кода и артефактов, не получая доступа к вашей среде.
- Fabric удаленный сервер MCP — это облачный сервер, который позволяет агентам ИИ выполнять подготовленные и прошедшие проверку подлинности операции в среде Fabric без локальной настройки.
Средства искусственного интеллекта используют сервер FABRIC MCP для написания кода с правильными API и в пределах правильных границ RBAC, которым вы уже доверяете.
Например, после быстрой настройки локального MCP-сервера Fabric можно задавать вопросы об инфраструктуре и поручать задачи чату GitHub Copilot в Visual Studio Code в режиме агента. Рассмотрим пример.
List all SQL databases and mirrored SQL databases in the Fabric workspace "DemoSQLdb".
Ваш агент использует известные команды Fabric API, чтобы получить все элементы Fabric этих типов.
Create a new SQL database in Fabric named "ContosoTest" in the Fabric workspace "DemoSQLdb".
Агент использует известные команды API Fabric для создания элемента базы данных с параметрами по умолчанию.
ИИ-агенты с SQL MCP Server
SQL MCP Server предоставляет интерфейс протокола контекста модели, который агенты ИИ могут использовать для взаимодействия с базой данных с помощью управляемого API на основе инструментов вместо создания необработанного SQL. Сервер:
- Предоставляет заданный набор инструментов на основе вашей конфигурации.
- Постоянно применяет разрешения и ограничения.
- Позволяет агентам обнаруживать доступные возможности без угадывание схемы.
Этот шаблон полезен для создания автономных агентов, которые могут запрашивать и обновлять операционные данные в рамках многоэтапных рабочих процессов.
SQL MCP Server использует абстракцию сущностей Data API builder, RBAC, кэширование и телеметрию для предоставления готового к промышленной эксплуатации интерфейса, который работает одинаково через REST, GraphQL и MCP. Вы настраиваете его один раз, а движок обрабатывает остальное.
Расширение MSSQL для Visual Studio Code включает встроенный пользовательский интерфейс для Data API builder, поэтому вы можете создавать конечные точки доступа REST, GraphQL и MCP для таблиц базы данных SQL, не создавая файлы конфигурации и не покидая Visual Studio Code. Вы можете выбрать таблицы для отображения, настроить разрешения CRUD, выбрать типы API, просмотреть предварительный вид созданной конфигурации и развернуть локальную серверную часть, основанную на Data API Builder, все из визуального интерфейса.
Обогащение с помощью Azure OpenAI
SQL ядро СУБД предоставляет встроенные функции T-SQL для генерации эмбеддингов и разбиения текста на фрагменты непосредственно в базе данных, без внешнего кода или конвейеров обработки.
Регистрация модели внедрения
Используйте CREATE EXTERNAL MODEL для регистрации конечной точки внедрения OpenAI Azure в качестве объекта базы данных. В этом примере используется развертывание text-embedding-ada-002 с аутентификацией с помощью управляемой идентификации Microsoft Entra. Сначала создайте учетные данные доступа для Azure OpenAI с помощью управляемого удостоверения:
CREATE DATABASE SCOPED CREDENTIAL [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
WITH IDENTITY = 'Managed Identity',
SECRET = '{"resourceid":"https://cognitiveservices.azure.com"}';
GO
Затем создайте внешнюю модель:
CREATE EXTERNAL MODEL MyEmbeddingModel
WITH (
LOCATION = 'https://my-openai.cognitiveservices.azure.com/openai/deployments/text-embedding-ada-002/embeddings?api-version=2024-02-01',
API_FORMAT = 'Azure OpenAI',
MODEL_TYPE = EMBEDDINGS,
MODEL = 'text-embedding-ada-002',
CREDENTIAL = [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
);
Дополнительные параметры проверки подлинности, включая ключи API, см. в статье CREATE EXTERNAL MODEL.
Создать эмбеддинги встроенно
Используйте AI_GENERATE_EMBEDDINGS для создания векторных эмбеддингов непосредственно в запросах, вставках и обновлениях T-SQL.
-- Generate embeddings for existing rows
UPDATE t
SET t.embedding = AI_GENERATE_EMBEDDINGS(t.description USE MODEL MyEmbeddingModel)
FROM dbo.products AS t;
Блоки и внедрение в одну инструкцию
Объедините AI_GENERATE_CHUNKS , AI_GENERATE_EMBEDDINGS чтобы разбить большой текст на блоки и внедрить их в одну инструкцию T-SQL.
INSERT INTO dbo.document_embeddings (chunked_text, embedding)
SELECT c.chunk,
AI_GENERATE_EMBEDDINGS(c.chunk USE MODEL MyEmbeddingModel)
FROM dbo.documents AS d
CROSS APPLY AI_GENERATE_CHUNKS(
SOURCE = d.content,
CHUNK_TYPE = FIXED,
CHUNK_SIZE = 100
) AS c;
Прямые вызовы REST с помощью sp_invoke_external_rest_endpoint
Для сценариев, не охватываемых AI_GENERATE_EMBEDDINGS, например вызовы завершения или конечные точки чата, используйте sp_invoke_external_rest_endpoint для вызова любого Azure REST API OpenAI непосредственно из T-SQL. Дополнительные сведения см. в статье Интеграция Azure OpenAI.
Интеграция с рабочими нагрузками ИИ в Fabric
База данных SQL в Fabric подключается к более широким возможностям ИИ платформы:
| Интеграция | Использование |
|---|---|
| Тканевые записные книжки | Выполняйте запросы к базе данных SQL из ноутбуков PySpark или Python для подготовки данных, обучения моделей и пакетного скоринга. |
| Обработка и анализ данных структуры | Используйте данные SQL в качестве входных данных для экспериментов машинного обучения, а затем напишите прогнозы обратно в базу данных для оперативного использования. |
| Copilot в базе данных SQL | Используйте естественный язык для создания, объяснения и оптимизации запросов T-SQL непосредственно в редакторе запросов портала Fabric. |
| API для GraphQL | Предоставляйте обогащённые ИИ данные через конечные точки доступа GraphQL для использования в приложениях. |
| Конвейеры данных и поток данных 2-го поколения | Оркеструйте рабочие процессы генерации и обогащения эмбеддингов в промышленных масштабах. |
Сценарии использования базы данных SQL в Fabric
Дополнительные сведения об оптимальных сценариях использования базы данных Fabric SQL см. в статье:
- Использование базы данных SQL в обратном ETL
- Использование базы данных SQL в качестве операционного хранилища данных
- Использование базы данных SQL в качестве источника для транслитических приложений