Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширение ИИ Azure представляет семантические операторы, неразрывную функцию, которая интегрирует расширенные возможности ИИ (GenAI) непосредственно в PostgreSQL SQL. Эти операторы, которые основаны на моделях, таких как завершение чата и другие развертывания ИИ Azure, позволяют разработчикам создавать приложения на основе GenAI непосредственно в своих базах данных. Это разблокирует новые возможности для понимания текста, причины и создания структурированных выходных данных.
Ключевые особенности
Семантические операторы предоставляют пользователям четыре основных функции SQL, которые используют возможности создания искусственного интеллекта:
-
azure_ai.generate(): создает текстовые или структурированные выходные данные с помощью больших языковых моделей (LLM). -
azure_ai.is_true(): оценивает вероятность того, что заданная инструкция имеет значение true. -
azure_ai.extract(): извлекает структурированные функции или сущности из текста. -
azure_ai.rank(): выполняет повторную настройку списка документов на основе релевантности заданного запроса.
Каждая функция работает с помощью конечных точек AI Foundry, зарегистрированных с помощью функции, обеспечивая простую azure_ai.set_setting интеграцию и управление пользователем.
Общие сведения о семантических операторах
Семантические операторы в расширении ИИ Azure предназначены для упрощения сложных задач, управляемых ИИ, непосредственно в базе данных PostgreSQL. Эти операторы позволяют пользователям легко интегрировать возможности генерированного искусственного интеллекта в рабочие процессы SQL, что позволяет создавать расширенные тексты, оценивать правду, извлекать сущности и ранжирование документов. Каждый оператор оптимизирован для удобства использования и гибкости, позволяя разработчикам создавать интеллектуальные приложения с минимальными усилиями.
azure_ai.generate()
Этот оператор использует LLM для создания текста или структурированных выходных данных.
Он поддерживает следующие входные параметры:
| Аргумент | Тип | Описание |
|---|---|---|
prompt |
text |
Запрос пользователя, который будет отправлен в LLM. |
json_schema (необязательно) |
JsonB
DEFAULT ''
|
Схема JSON структурированных выходных данных, к которым требуется придерживаться ответа LLM. Необходимо следовать нотации Open AI для структурированных выходных данных. |
model (необязательно) |
text
DEFAULT "gpt-4.1"
|
Имя развертывания модели в Azure AI Foundry. |
system_prompt (необязательно) |
text
DEFAULT "You are a helpful assistant."
|
Системный запрос, отправляемый в LLM. |
По умолчанию оператор возвращает text значение, содержащее созданный ответ.
json_schema Если аргумент указан, выходные данные возвращаются в виде структурированного JsonB объекта, соответствующего указанной схеме.
Пример использования:
SELECT azure_ai.generate(
'Rewrite the following comment to be more polite: ' comment_text
) AS polite_comment
FROM user_comments;
SELECT review, azure_ai.generate(
prompt => 'Rewrite the following comment to be more polite and return the number of products mentioned:' || review,
json_schema => '{
"name": "generate_response",
"description": "Generate a response to the user",
"strict": true,
"schema": {
"type": "object",
"properties": {
"comment": { "type": "string" },
"num_products": { "type": "integer" }
},
"required": ["comment", "num_products"],
"additionalProperties": false
}
}',
model => 'gpt-4.1-mini'
) as polite_comment_with_count
FROM
Reviews;
azure_ai.is_true()
Этот оператор оценивает вероятность того, что данное оператор является истинным, возвращая boolean значение или NULL если результат не является неуклюзивным.
Он поддерживает следующие входные параметры:
| Аргумент | Тип | Описание |
|---|---|---|
statement |
text |
Оператор, который будет оцениваться как true или false. |
model (необязательно) |
text
DEFAULT "gpt-4.1"
|
Имя развертывания модели в Azure AI Foundry. |
Пример использования:
SELECT azure_ai.is_true(
'The review talks about the product: '
product_name
' Review: '
review_text
) AS is_relevant_review
FROM product_reviews;
azure_ai.extract()
Этот оператор извлекает структурированные функции или сущности из текста на основе пользовательских меток.
Он поддерживает следующие входные параметры:
| Аргумент | Тип | Описание |
|---|---|---|
document |
text |
Документ, содержащий сущности и функции. |
data |
array[text] |
Массив меток или имен признаков, где каждая запись представляет отдельный тип сущности, извлекаемый из входного текста. |
model (необязательно) |
text
DEFAULT "gpt-4.1"
|
Имя развертывания модели в Azure AI Foundry. |
Оператор возвращает JsonB объект, содержащий извлеченные сущности, сопоставленные с соответствующими метками.
Пример использования:
SELECT azure_ai.extract(
'The headphones are not great. They have a good design, but the sound quality is poor and the battery life is short.',
ARRAY[ 'product', 'sentiment']
);
-- Output: {"product": "headphones", "sentiment": "negative"}
SELECT azure_ai.extract(
'The music quality is good, though the call quality could have been better. The design is sleek, but still slightly heavy for convenient travel.',
ARRAY[
'design: string - comma separated list of design features of the product',
'sound: string - sound quality (e.g., music, call, noise cancellation) of the product',
'sentiment: number - sentiment score of the review; 1 (lowest) to 5 (highest)'
]
);
-- Output: {"sound": "music quality is good, call quality could have been better", "design": "sleek, slightly heavy", "sentiment": 3}
azure_ai.rank()
Этот оператор перенашивает документы на основе их релевантности для заданного запроса. Она поддерживает кросскодировщик и модели GPT.
Он поддерживает следующие входные параметры:
| Аргумент | Тип | Описание |
|---|---|---|
query |
text |
Строка поиска, используемая для оценки и ранжирования релевантности каждого документа. |
document_contents |
array[text] |
Массив документов для повторного использования. |
document_ids (необязательно) |
array |
Массив идентификаторов документов, соответствующих входным документам. |
model (необязательно) |
text
DEFAULT "cohere-rerank-v3.5"
|
Имя развертывания модели в Azure AI Foundry. Поддерживает как кросскодировщик, так и модели на основе GPT. |
Оператор возвращает table идентификатор документа, его ранг и соответствующую оценку релевантности.
Пример использования:
SELECT azure_ai.rank(
'Best headphones for travel',
ARRAY[
'The headphones are lightweight and foldable, making them easy to carry.',
'Bad battery life, not so great for long trips.',
'The sound quality is excellent, with good noise isolation.'
]
)
SELECT azure_ai.rank(
query => 'Clear calling capability that blocks out background noise',
document_contents => ARRAY[
'The product has a great battery life, good design, and decent sound quality.',
'These headphones are perfect for long calls and music.',
'Best headphones for music lovers. Call quality could have been better.',
'The product has a good design, but it is a bit heavy. Not recommended for travel.'
],
document_ids => ARRAY['Review1', 'Review2', 'Review3', 'Review4'],
model => 'gpt-4.1'
) AS ranked_reviews;
Как приступить к работе
Чтобы использовать семантические операторы в базе данных PostgreSQL, выполните следующие действия.
Настройка для .generate()операторов и .extract() операторов .is_true()
Эти операторы поддерживают модели завершения чата и по умолчанию gpt-4.1.
Включите расширение
azure_aiна гибком сервере базы данных Azure для PostgreSQL.Создайте ресурс службы Azure OpenAI и разверните модель завершения чата (например,
gpt-4.1). Кроме того, вы можете развертывать модели и управлять ими с помощью интуитивно понятных интерфейсов, предоставляемых Azure AI Foundry.Обратите внимание на URL-адрес конечной точки Azure OpenAI и ключ API.
Настройка доступа:
Чтобы включить
azure_aiрасширение для вызова этой модели с помощью проверки подлинности ключа подписки, выполните следующие команды SQL:SELECT azure_ai.set_setting('azure_openai.endpoint', 'https://<endpoint>.openai.azure.com/'); SELECT azure_ai.set_setting('azure_openai.subscription_key', '<API Key>');Если вы хотите использовать управляемые удостоверения, обратитесь к этой статье , чтобы выполнить следующие действия:
- Включите управляемое удостоверение, назначаемое системой, для гибкого экземпляра сервера Базы данных Azure для PostgreSQL и перезапустите сервер.
- Назначьте роль "Пользователь OpenAI" Cognitive Services управляемому удостоверению для взаимодействия с ресурсом Azure OpenAI.
- Задайте для
azure_openai.auth_typeсвойства managed-identity значение. - Задайте URL-адрес конечной
azure_openai.endpointточки.
Теперь все установлено для вызова
.generate().is_true()операторов и.extract()операторов.Пример использования с
gpt-4.1(по умолчанию):SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name ) AS description FROM products;Пример использования с другими моделями:
SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name , 'gpt-4.1-mini' ) AS description FROM products;
Настройка для .rank() оператора
Оператор .rank() поддерживает как кросскодировщик, так и модели завершения чата, а также по умолчанию для кросскодировщика Cohere-rerank-v3.5.
Использование Cohere-rerank-v3.5 кросскодировщика:
Включите расширение
azure_aiна вашем экземпляре Azure Database для PostgreSQL.Перейдите к Azure AI Foundry и разверните
Cohere-rerank-v3.5модель с помощью параметра приобретения бессерверного API.Обратите внимание на ключ конечной точки модели и маршрут API reranker, который должен выглядеть примерно так:
https://<deployment name>.<region>.models.ai.azure.com/<v1 or v2>/rerankНастройка доступа:
Чтобы включить
azure_aiрасширение для вызова этой модели с помощью проверки подлинности ключа подписки, выполните следующие команды SQL:SELECT azure_ai.set_setting('azure_ml.serverless_ranking_endpoint', '<Cohere reranker API>'); SELECT azure_ai.set_setting('azure_ml.serverless_ranking_endpoint_key', '<API Key>');Если вы хотите использовать управляемые удостоверения, обратитесь к этой статье , чтобы выполнить следующие действия:
- Включите управляемое удостоверение, назначаемое системой, для гибкого экземпляра сервера Базы данных Azure для PostgreSQL и перезапустите сервер.
- Назначьте роль "Специалист по обработке и анализу данных машинного обучения Azure" управляемому удостоверению для взаимодействия с моделью Cohere.
- Задайте для
azure_ml.auth_typeсвойства managed-identity значение. -
azure_ml.serverless_ranking_endpointЗадайте api повторного рангера Cohere.
Теперь все задано для вызова оператора с помощью модели повторного
.rank()запуска Cohere.SELECT azure_ai.rank( 'Best headphones for travel', ARRAY[ 'The headphones are lightweight and foldable, making them easy to carry.', 'Bad battery life, not so great for long trips.', 'The sound quality is excellent, with good noise isolation.' ] ) AS ranked_reviews;
Чтобы использовать .rank() оператор с моделями завершения чата, например gpt-4.1, разверните нужную модель в Azure OpenAI, настройте azure_ai расширение с сведениями о конечной точке модели и укажите имя модели при вызове оператора.
SELECT azure_ai.set_setting('azure_openai.endpoint', 'https://<endpoint>.openai.azure.com/');
SELECT azure_ai.set_setting('azure_openai.subscription_key', '<API Key>');
SELECT azure_ai.rank(
'Best headphones for travel',
ARRAY[
'The headphones are lightweight and foldable, making them easy to carry.',
'Bad battery life, not so great for long trips.',
'The sound quality is excellent, with good noise isolation.'
],
'gpt-4.1'
) AS ranked_reviews;