Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:Azure SQL Database
SQL база данных в Fabric
- База данных SQL Azure
SQL Server & Azure SQL Managed Instance
В этой статье представлен обзор использования вариантов искусственного интеллекта (ИИ), таких как OpenAI и векторы, для создания интеллектуальных приложений с помощью SQL Database Engine в Azure SQL Database и Fabric SQL Database.
Просмотрите это видео в серии Azure SQL Database essentials для краткого обзора создания готового приложения ИИ:
Для образцов и примеров посетите репозиторий SQL AI Samples.
Обзор
Крупные языковые модели (LLMs) позволяют разработчикам создавать приложения с поддержкой искусственного интеллекта с знакомым взаимодействием с пользователем.
Использование LLM в приложениях обеспечивает большую ценность и улучшенный пользовательский интерфейс, когда модели могут получать доступ к правильным данным в нужное время из базы данных приложения. Этот процесс называется Retrieval Augmented Generation (RAG), что означает получение дополненного поколения. Azure SQL Database и Fabric база данных SQL имеют множество функций, поддерживающих этот новый шаблон, что делает их отличными базами данных для создания интеллектуальных приложений.
В следующих ссылках приведен пример кода различных параметров для создания интеллектуальных приложений:
| Вариант искусственного интеллекта | Описание |
|---|---|
| SQL MCP Server | Стабильный и управляемый интерфейс для базы данных, определяющий набор средств и конфигурации. |
| Azure OpenAI | Создание внедрения для RAG и интеграция с любой моделью, поддерживаемой Azure OpenAI. |
| Векторы | Узнайте, как хранить векторы и использовать векторные функции в базе данных. |
| Azure AI Search | Используйте базу данных вместе с Azure AI Search для обучения LLM с использованием вашей базы данных. |
| Интеллектуальные приложения | Узнайте, как создать комплексное решение с помощью общего шаблона, который можно реплицировать в любом сценарии. |
| Навыки Copilot в Azure SQL Database | Узнайте о наборе возможностей, с помощью искусственного интеллекта, предназначенных для упрощения проектирования, эксплуатации, оптимизации и работоспособности приложений, управляемых Azure SQL Database. |
| Навыки Copilot в базе данных SQL Fabric | Узнайте о наборе возможностей с поддержкой ИИ, предназначенных для упрощения проектирования, эксплуатации, оптимизации и поддержания работоспособности приложений Fabric на базе данных SQL. |
SQL MCP Server в приложениях искусственного интеллекта
SQL MCP Server находится непосредственно в пути к данным для агентов ИИ.
- Как модели создают запросы, сервер предоставляет стабильный и управляемый интерфейс для базы данных.
- Вместо предоставления необработанной схемы или использования созданного SQL он направляет весь доступ через определенный набор инструментов, поддерживаемых конфигурацией.
Этот подход обеспечивает прогнозируемость взаимодействия и гарантирует соответствие каждой операции заданным разрешениям и структуре. Дополнительные сведения см. в aka.ms/sql/mcp.
Разделив рассуждение и выполнение, модели фокусируются на намерении, в то время как SQL MCP Server обрабатывает то, как это намерение преобразуется в корректные запросы. Область поверхности остается ограниченной, так как агенты могут обнаруживать доступные возможности, понимать входные и выходные данные и работать без угадок. Этот дизайн уменьшает ошибки и устраняет необходимость сложного проектирования подсказок для устранения неоднозначности схемы.
Для разработчиков этот подход означает, что искусственный интеллект может безопасно участвовать в реальных рабочих нагрузках.
Вы можете:
- Определение сущностей один раз
- Примените роли и ограничения
Затем платформа:
- Обеспечивает согласованное применение сущностей, ролей и ограничений
- Создает надежную основу для приложений, управляемых агентом, по данным SQL.
Та же конфигурация, которая обеспечивает rest и GraphQL, также управляет MCP, поэтому дублирование правил или логики отсутствует. Дополнительные сведения см. в aka.ms/dab/docs.
Основные понятия реализации RAG с помощью Azure OpenAI
В этом разделе содержатся ключевые концепции, критически важные для реализации RAG с Azure OpenAI в Azure SQL Database или Fabric SQL Database.
Дополненная генерация с использованием извлечения (RAG)
RAG — это метод, который повышает способность LLM создавать соответствующие и информативные ответы путем получения дополнительных данных из внешних источников. Например, RAG может запрашивать статьи или документы, содержащие знания, относящиеся к домену, связанные с вопросом или запросом пользователя. Затем LLM может использовать полученные данные в качестве ссылки при создании ответа. Например, простой шаблон RAG с помощью Azure SQL Database может быть следующим:
- Вставка данных в таблицу.
- Связывание Azure SQL Database с Azure AI Search.
- Создайте модель OpenAI GPT-4 Azure и подключите ее к Azure AI Search.
- Общайтесь и задавайте вопросы о ваших данных, используя обученную модель Azure OpenAI из вашего приложения и из базы данных Azure SQL.
Шаблон RAG вместе с проектированием запросов повышает качество ответа, предлагая модели более полную контекстуальную информацию. RAG позволяет модели применять более широкие база знаний путем включения соответствующих внешних источников в процесс создания, что приводит к более всеобъемлющим и информированным ответам. Дополнительные сведения о grounding LLMs см. в разделе Grounding LLMs - Microsoft Community Hub.
Запросы и проектирование запросов
Запрос — это конкретный текст или сведения, которые служат инструкцией для крупной языковой модели (LLM) или в качестве контекстных данных, которые LLM может создавать. Запрос может принимать различные формы, такие как вопрос, оператор или даже фрагмент кода.
Примеры запросов, которые можно использовать для создания ответа из LLM:
- Инструкции: предоставление директив для LLM
- Основное содержимое: предоставляет сведения LLM для обработки
- Примеры: помощь в условии модели для конкретной задачи или процесса
- Подсказки: направляют вывод LLM в нужном направлении
- Вспомогательное содержимое: представляет дополнительные сведения, которые LLM может использовать для создания выходных данных.
Процесс создания хороших запросов для сценария называется проектированием запросов. Дополнительные сведения о запросах и рекомендациях по проектированию запросов см. в разделе Azure OpenAI Service.
Токены
Маркеры представляют собой небольшие фрагменты текста, созданные путем разделения входного текста на меньшие сегменты. Эти сегменты могут быть словами или группами символов, в зависимости от длины от одного символа до всего слова. Например, слово hamburger делится на маркеры, такие как , hamи bur в то время как короткое и общее слово, как gerpear считается одним маркером.
В Azure OpenAI api маркеризирует входной текст. Количество маркеров, обрабатываемых в каждом запросе API, зависит от таких факторов, как длина входных, выходных данных и параметров запроса. Количество обрабатываемых маркеров также влияет на время отклика и пропускную способность моделей. Каждая модель имеет ограничения на количество маркеров, которые он может принимать в одном запросе и ответе от Azure OpenAI. Дополнительные сведения см. в разделе Azure OpenAI Service квоты и ограничения.
Векторы
Векторы — это упорядоченные массивы чисел (обычно с плавающей запятой), которые могут представлять сведения о некоторых данных. Например, изображение может быть представлено как вектор значений пикселей, или строка текста может быть представлена как вектор значений ASCII. Процесс преобразования данных в вектор называется векторизацией. Дополнительные сведения см. в примерах векторов.
Работа с векторными данными упрощается при внедрении векторных типов данных и векторных функций.
Встраивания
Внедрение — это векторы, представляющие важные функции данных. Внедрение часто научится с помощью модели глубокого обучения, а модели машинного обучения и искусственного интеллекта используют их в качестве функций. Эмбеддинги также могут фиксировать семантическое сходство между схожими понятиями. Например, при создании встраивания для слов person и human, вы можете ожидать, что их векторные представления будут схожи по значению, так как слова также семантически похожи.
Azure OpenAI представляет модели для создания векторов из текстовых данных. Служба разбивает текст на маркеры и создает внедрения с помощью моделей, предварительно обученных OpenAI. Дополнительные сведения см. в статье Creating embeddings with Azure OpenAI.
Список ответов на распространенные вопросы о векторах и внедрениях см. в следующем разделе:
Векторный поиск
Поиск векторов — это процесс поиска всех векторов в наборе данных, который семантико похож на конкретный вектор запроса. Таким образом, вектор запроса для слова human выполняет поиск всего словаря для семантически похожих слов, и он должен найти слово person как близкое совпадение. Метрика сходства, например косинус сходства, измеряет эту близость или расстояние. Чем ближе векторы, тем меньше расстояние между ними.
Рассмотрим сценарий, в котором выполняется запрос на миллионы документов, чтобы найти наиболее похожие документы в данных. Вы можете создавать внедрения для данных и запрашивать документы с помощью Azure OpenAI. Затем можно выполнить векторный поиск, чтобы найти наиболее похожие документы из набора данных. Однако выполнение векторного поиска в нескольких примерах является тривиальным. Выполнение такого же поиска по тысячам или миллионам точек данных становится сложной задачей. Существуют также компромиссы между исчерпывающими методами поиска и приблизительными методами поиска ближайших соседей (ANN), включая задержку, пропускную способность, точность и стоимость. Все эти компромиссы зависят от требований приложения.
Вы можете эффективно хранить и запрашивать векторы в Azure SQL Database, что позволяет точному поиску ближайших соседей с большой производительностью. Вам не нужно выбирать между точностью и скоростью: вы можете иметь оба. Хранение векторных внедрений вместе с данными в интегрированном решении сводит к минимуму необходимость управления синхронизацией данных и ускоряет вывод на рынок для разработки приложений ИИ.
Дополнительные сведения о векторах и внедрениях см. в следующем разделе:
Azure OpenAI
Внедрение — это процесс представления реального мира в виде данных. Вы можете преобразовать текст, изображения или звуки в внедрения. Модели Azure OpenAI могут преобразовывать реальную информацию в векторные представления. Вы можете получить доступ к моделям в виде конечных точек REST, поэтому их можно легко использовать из Azure SQL Database с помощью хранимой процедуры sp_invoke_external_rest_endpoint системной:
DECLARE @retval INT, @response NVARCHAR(MAX);
DECLARE @payload NVARCHAR(MAX);
SET @payload = JSON_OBJECT('input': @text);
EXEC @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;
SELECT CAST([key] AS INT) AS [vector_value_id],
CAST([value] AS FLOAT) AS [vector_value]
FROM OPENJSON(JSON_QUERY(@response, '$.result.data[0].embedding'));
При работе с базой данных SQL и OpenAI вызов службы REST для получения векторных представлений является лишь одним из вариантов интеграции. Вы можете разрешить любой из моделей available доступ к данным, хранящимся в Azure SQL Database, для создания решений, где пользователи могут взаимодействовать с данными, например в следующем примере.
Дополнительные примеры использования База данных SQL и OpenAI см. в следующих статьях:
- Генерация изображений с использованием Azure OpenAI Service (DALL-E) и Azure SQL Database
- Использование конечных точек REST OpenAI с Azure SQL Database
Примеры векторов
Выделенный тип данных вектора позволяет эффективно и оптимизировано хранить векторные данные. Он поставляется с набором функций, помогающих разработчикам оптимизировать реализацию поиска векторов и сходства. Вы можете вычислить расстояние между двумя векторами в одной строке кода с помощью VECTOR_DISTANCE функции. Дополнительные сведения и примеры см. в статье Vector search and vector indexes in the SQL Database Engine.
Например:
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 Search
Реализуйте шаблоны RAG с помощью Azure SQL Database и Azure AI Search. Поддерживаемые модели чата можно запускать на данных, хранящихся в Azure SQL Database, без необходимости обучать или настраивать модели, благодаря интеграции Azure AI Search с Azure OpenAI и Azure SQL Database. Запуская модели на ваших данных, вы можете взаимодействовать с данными и анализировать их с большей точностью и скоростью.
- Azure OpenAI на основе ваших данных
- Retrieval Augmented Generation (дополненное поколение на основе извлечения) в Azure AI Search
- Векторный поиск с Azure SQL Database и Azure AI Search
интеллектуальные приложения;
Вы можете использовать Azure SQL Database для создания интеллектуальных приложений, включающих функции ИИ, такие как рекомендации и извлечение дополненного поколения (RAG), как показано на следующей схеме:
Чтобы ознакомиться с полным примером создания приложения с поддержкой ИИ, использующим sessions abstract в качестве примера набора данных, см.:
- Как я создал средство рекомендаций сеанса за 1 час с помощью OpenAI.
- Использование генерации с дополнением поиска для создания помощника сессии конференции.
Дополнительные сведения об интеллектуальных приложениях см. в следующем разделе:
- Интеллектуальные приложения и искусственный интеллект.
- Вопросы и ответы по интеллектуальному приложению и искусственному интеллекту.
Интеграция LangChain
LangChain — это известная платформа для разработки приложений на основе языковых моделей. Примеры, показывающие, как LangChain можно использовать для создания чат-бота на собственных данных, см. в следующих примерах:
- langchain-sqlserver Пакет PyPI
Несколько примеров использования Azure SQL с LangChain:
Полные примеры:
- Создайте чат-бота на собственных данных за 1 час с помощью Azure SQL, Langchain и Chainlit: Постройте чат-бота, используя паттерн RAG на собственных данных с помощью Langchain для оркестрации вызовов LLM и Chainlit для пользовательского интерфейса.
интеграция Семантического Ядра
Semantic Kernel — это пакет SDK с открытым кодом, который можно использовать для простого создания агентов, вызывающих существующий код. В качестве расширяемого пакета SDK можно использовать Semantic Kernel с моделями из OpenAI, Azure OpenAI, Hugging Face и многое другое. Объединение существующего кода C#, Python и Java кода с этими моделями позволяет создавать агенты, которые отвечают на вопросы и автоматизируют процессы.
Пример, показывающий, как легко Semantic Kernel помогает создать решение с поддержкой искусственного интеллекта:
- Конечный чат-бот?: создайте чат-бот на основе собственных данных с помощью шаблонов NL2SQL и RAG для конечного взаимодействия с пользователем.
Функции Microsoft Copilot в Azure SQL Database
Microsoft Copilot в Azure SQL Database (предварительная версия) — это набор интерфейсов с поддержкой ИИ, предназначенных для оптимизации проектирования, функционирования и поддержания работоспособности приложений, управляемых Azure SQL Database.
Copilot предоставляет соответствующие ответы на вопросы пользователей, упрощая управление базами данных с помощью контекста базы данных, документации, динамических представлений управления, Query Store и других источников знаний. Например:
- Администраторы баз данных могут самостоятельно управлять базами данных и устранять проблемы, а также узнать больше о производительности и возможностях базы данных.
- Разработчики могут задавать вопросы о своих данных в текстовой форме или при беседе, чтобы сгенерировать запрос T-SQL. Разработчики также могут быстрее писать запросы с помощью подробных объяснений созданного запроса.
Примечание.
Функции Microsoft Copilot в Azure SQL Database в настоящее время доступны в предварительной версии для ограниченного числа ранних пользователей. Чтобы записаться в эту программу, посетите запрос доступа к предварительной версии Copilot в Azure SQL Database.
Microsoft Copilot в базе данных SQL Fabric (предварительная версия)
Copilot для SQL базы данных в Microsoft Fabric включает интегрированную ИИ-помощь со следующими функциями.
Код завершения: начните писать T-SQL в редакторе запросов SQL и Copilot автоматически создает предложение кода для выполнения запроса. Нажмите Tab, чтобы принять предложение кода или продолжайте печатать, чтобы его игнорировать.
Быстрые действия. На ленте редактора запросов SQL параметры исправления и объяснения — это быстрые действия. Выделите SQL-запрос и выберите одну из кнопок быстрого действия, чтобы выполнить выбранное действие в запросе.
Fix: Copilot исправляет ошибки в коде по мере возникновения сообщений об ошибках. Сценарии ошибок могут включать неправильный или неподдерживаемый код T-SQL, неправильные орфографии и многое другое. Copilot также предоставляет комментарии, объясняющие изменения и предлагающие лучшие практики SQL.
Explain: Copilot предоставляет объяснения естественного языка для запроса SQL и схемы базы данных в формате комментариев.
панель Chat: используйте область чата, чтобы задать вопросы Copilot с помощью естественного языка. Copilot отвечает с помощью созданного SQL-запроса или естественного языка на основе заданного вопроса.
Естественный язык в SQL: создание кода T-SQL из запросов природного языка и получение предложений по вопросам, чтобы ускорить рабочий процесс.
Вопросы и ответы на основе документов: Задавайте Copilot вопросы об общих возможностях базы данных SQL, и он отвечает на них на естественном языке. Copilot также помогает найти документацию, связанную с вашим запросом.
Copilot для базы данных SQL использует имена таблиц и представлений, имена столбцов, первичные и внешние ключи для создания кода T-SQL. Copilot для базы данных SQL не использует данные в таблицах для создания предложений T-SQL.