Создание внедрения образов с помощью вывода модели искусственного интеллекта Azure
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
В этой статье объясняется, как использовать API внедрения изображений с моделями, развернутыми в модели ИИ Azure в Azure AI Foundry.
Необходимые компоненты
Чтобы использовать модели внедрения в приложение, вам потребуется:
Подписка Azure. Если вы используете модели GitHub, вы можете обновить интерфейс и создать подписку Azure в процессе. Ознакомьтесь с обновлением моделей GitHub до модели ИИ Azure, если это ваше дело.
Ресурс служб ИИ Azure. Дополнительные сведения см. в статье "Создание ресурса Служб искусственного интеллекта Azure".
URL-адрес конечной точки и ключ.
Развертывание модели внедрения изображений. Если у вас нет модели, ознакомьтесь со сведениями о добавлении и настройке моделей в службы ИИ Azure для добавления модели внедрения в ресурс.
- В этом примере используется
Cohere-embed-v3-english
из Cohere.
- В этом примере используется
Установите пакет вывода искусственного интеллекта Azure с помощью следующей команды:
pip install -U azure-ai-inference
Совет
Дополнительные сведения о пакете вывода и справочнике по выводу искусственного интеллекта Azure.
Использование внедрения
Сначала создайте клиент для использования модели. В следующем коде используется URL-адрес конечной точки и ключ, хранящиеся в переменных среды.
import os
from azure.ai.inference import ImageEmbeddingsClient
from azure.core.credentials import AzureKeyCredential
model = ImageEmbeddingsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
model="Cohere-embed-v3-english"
)
Если вы настроили ресурс с поддержкой идентификатора Microsoft Entra, можно использовать следующий фрагмент кода для создания клиента.
import os
from azure.ai.inference import ImageEmbeddingsClient
from azure.identity import DefaultAzureCredential
model = ImageEmbeddingsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=DefaultAzureCredential(),
model="Cohere-embed-v3-english"
)
Создание внедренных модулей
Чтобы создать внедренные изображения, необходимо передать данные изображения в рамках запроса. Данные изображения должны быть в формате PNG и закодированы как base64.
from azure.ai.inference.models import ImageEmbeddingInput
image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
response = model.embed(
input=[ image_input ],
)
Совет
При создании запроса учитывайте ограничение входных данных маркера для модели. Если вам нужно внедрить более крупные части текста, вам потребуется стратегия фрагментирования.
Ответ выглядит следующим образом, где можно просмотреть статистику использования модели:
import numpy as np
for embed in response.data:
print("Embeding of size:", np.asarray(embed.embedding).shape)
print("Model:", response.model)
print("Usage:", response.usage)
Внимание
Внедрение вычислений в пакеты может не поддерживаться для всех моделей. Например, для cohere-embed-v3
модели необходимо отправить одно изображение одновременно.
Внедрение изображений и текстовых пар
Некоторые модели могут создавать внедрения из изображений и текстовых пар. В этом случае можно использовать image
поля в text
запросе для передачи изображения и текста модели. В следующем примере показано, как создавать внедрения для изображений и текстовых пар:
text_image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
text_image_input.text = "A cute baby sea otter"
response = model.embed(
input=[ text_image_input ],
)
Создание различных типов внедрения
Некоторые модели могут создавать несколько внедренных входных данных в зависимости от способа их использования. Эта возможность позволяет получить более точные внедрения для шаблонов RAG.
В следующем примере показано, как создать внедрения, которые используются для создания внедрения документа, который будет храниться в векторной базе данных:
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=[ image_input ],
input_type=EmbeddingInputType.DOCUMENT,
)
При работе с запросом для получения такого документа можно использовать следующий фрагмент кода, чтобы создать внедрения для запроса и максимально повысить производительность извлечения.
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=[ image_input ],
input_type=EmbeddingInputType.QUERY,
)
Обратите внимание, что не все модели внедрения поддерживаются, указывающие тип входных данных в запросе и в этих случаях возвращается ошибка 422.
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
В этой статье объясняется, как использовать API внедрения изображений с моделями, развернутыми в модели ИИ Azure в Azure AI Foundry.
Необходимые компоненты
Чтобы использовать модели внедрения в приложение, вам потребуется:
Подписка Azure. Если вы используете модели GitHub, вы можете обновить интерфейс и создать подписку Azure в процессе. Ознакомьтесь с обновлением моделей GitHub до модели ИИ Azure, если это ваше дело.
Ресурс служб ИИ Azure. Дополнительные сведения см. в статье "Создание ресурса Служб искусственного интеллекта Azure".
URL-адрес конечной точки и ключ.
Развертывание модели внедрения изображений. Если у вас нет одного чтения "Добавление и настройка моделей" в службы ИИ Azure для добавления модели внедрения в ресурс.
- В этом примере используется
Cohere-embed-v3-english
из Cohere.
- В этом примере используется
Установите библиотеку вывода Azure для JavaScript с помощью следующей команды:
npm install @azure-rest/ai-inference
Совет
Дополнительные сведения о пакете вывода и справочнике по выводу искусственного интеллекта Azure.
Использование внедрения
Сначала создайте клиент для использования модели. В следующем коде используется URL-адрес конечной точки и ключ, хранящиеся в переменных среды.
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";
const client = new ModelClient(
process.env.AZURE_INFERENCE_ENDPOINT,
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL),
"Cohere-embed-v3-english"
);
Если вы настроили ресурс с поддержкой идентификатора Microsoft Entra, можно использовать следующий фрагмент кода для создания клиента.
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { DefaultAzureCredential } from "@azure/identity";
const client = new ModelClient(
process.env.AZURE_INFERENCE_ENDPOINT,
new DefaultAzureCredential(),
"Cohere-embed-v3-english"
);
Создание внедренных модулей
Чтобы создать внедренные изображения, необходимо передать данные изображения в рамках запроса. Данные изображения должны быть в формате PNG и закодированы как base64.
var image_path = "sample1.png";
var image_data = fs.readFileSync(image_path);
var image_data_base64 = Buffer.from(image_data).toString("base64");
var response = await client.path("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
}
});
Совет
При создании запроса учитывайте ограничение входных данных маркера для модели. Если вам нужно внедрить более крупные части текста, вам потребуется стратегия фрагментирования.
Ответ выглядит следующим образом, где можно просмотреть статистику использования модели:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Внимание
Внедрение вычислений в пакеты может не поддерживаться для всех моделей. Например, для cohere-embed-v3
модели необходимо отправить одно изображение одновременно.
Внедрение изображений и текстовых пар
Некоторые модели могут создавать внедрения из изображений и текстовых пар. В этом случае можно использовать image
поля в text
запросе для передачи изображения и текста модели. В следующем примере показано, как создавать внедрения для изображений и текстовых пар:
var image_path = "sample1.png";
var image_data = fs.readFileSync(image_path);
var image_data_base64 = Buffer.from(image_data).toString("base64");
var response = await client.path("images/embeddings").post({
body: {
input: [
{
text: "A cute baby sea otter",
image: image_data_base64
}
]
}
});
Создание различных типов внедрения
Некоторые модели могут создавать несколько внедренных входных данных в зависимости от способа их использования. Эта возможность позволяет получить более точные внедрения для шаблонов RAG.
В следующем примере показано, как создать внедрения, которые используются для создания внедрения документа, который будет храниться в векторной базе данных:
var response = await client.path("/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "document",
}
});
При работе с запросом для получения такого документа можно использовать следующий фрагмент кода, чтобы создать внедрения для запроса и максимально повысить производительность извлечения.
var response = await client.path("/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "query",
}
});
Обратите внимание, что не все модели внедрения поддерживаются, указывающие тип входных данных в запросе и в этих случаях возвращается ошибка 422.
Примечание.
Использование внедренных изображений поддерживается только с помощью запросов Python, JavaScript или REST.
Примечание.
Использование внедренных изображений поддерживается только с помощью запросов Python, JavaScript или REST.
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
В этой статье объясняется, как использовать API внедрения изображений с моделями, развернутыми в модели ИИ Azure в Azure AI Foundry.
Необходимые компоненты
Чтобы использовать модели внедрения в приложение, вам потребуется:
Подписка Azure. Если вы используете модели GitHub, вы можете обновить интерфейс и создать подписку Azure в процессе. Ознакомьтесь с обновлением моделей GitHub до модели ИИ Azure, если это ваше дело.
Ресурс служб ИИ Azure. Дополнительные сведения см. в статье "Создание ресурса Служб искусственного интеллекта Azure".
URL-адрес конечной точки и ключ.
Развертывание модели внедрения изображений. Если у вас нет одного чтения "Добавление и настройка моделей" в службы ИИ Azure для добавления модели внедрения в ресурс.
- В этом примере используется
Cohere-embed-v3-english
из Cohere.
- В этом примере используется
Использование внедрения
Чтобы использовать внедренные тексты, используйте маршрут /images/embeddings
, добавленный к базовому URL-адресу, а также учетные данные, указанные в api-key
.
Authorization
Заголовок также поддерживается в формате Bearer <key>
.
POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
api-key: <key>
Если вы настроили ресурс с поддержкой идентификатора Microsoft Entra, передайте маркер в заголовке Authorization
:
POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>
Создание внедренных модулей
Чтобы создать внедренные изображения, необходимо передать данные изображения в рамках запроса. Данные изображения должны быть в формате PNG и закодированы как base64.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
]
}
Совет
При создании запроса учитывайте ограничение входных данных маркера для модели. Если вам нужно внедрить более крупные части текста, вам потребуется стратегия фрагментирования.
Ответ выглядит следующим образом, где можно просмотреть статистику использования модели:
{
"id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
"object": "list",
"data": [
{
"index": 0,
"object": "embedding",
"embedding": [
0.017196655,
// ...
-0.000687122,
-0.025054932,
-0.015777588
]
}
],
"model": "Cohere-embed-v3-english",
"usage": {
"prompt_tokens": 9,
"completion_tokens": 0,
"total_tokens": 9
}
}
Внимание
Внедрение вычислений в пакеты может не поддерживаться для всех моделей. Например, для cohere-embed-v3
модели необходимо отправить одно изображение одновременно.
Внедрение изображений и текстовых пар
Некоторые модели могут создавать внедрения из изображений и текстовых пар. В этом случае можно использовать image
поля в text
запросе для передачи изображения и текста модели. В следующем примере показано, как создавать внедрения для изображений и текстовых пар:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
"text": "A photo of a cat"
}
]
}
Создание различных типов внедрения
Некоторые модели могут создавать несколько внедренных входных данных в зависимости от способа их использования. Эта возможность позволяет получить более точные внедрения для шаблонов RAG.
В следующем примере показано, как создать внедрения, которые используются для создания внедрения документа, который будет храниться в векторной базе данных:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "document"
}
При работе с запросом для получения такого документа можно использовать следующий фрагмент кода, чтобы создать внедрения для запроса и максимально повысить производительность извлечения.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "query"
}
Обратите внимание, что не все модели внедрения поддерживаются, указывающие тип входных данных в запросе и в этих случаях возвращается ошибка 422.