Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Эта статья объясняет, как использовать API для встраивания изображений с моделями, развернутыми для вывода моделей Azure AI в Azure AI Foundry.
Необходимые условия
Чтобы использовать модели внедрения в приложение, вам потребуется:
Подписка Azure. Если вы используете GitHub Models, вы можете улучшить свой опыт и в процессе создать подписку на Azure. Read Upgrade from GitHub Models to Azure AI model inference if that's your case.
Ресурс служб ИИ Azure. Дополнительные сведения см. в статье "Создание ресурса Служб искусственного интеллекта Azure".
URL-адрес конечной точки и ключ.
Установите пакет вывода искусственного интеллекта Azure для Python с помощью следующей команды:
pip install -U azure-ai-inference
Развертывание модели встраивания изображений. Если у вас нет модели, прочитайте Добавление и настройка моделей для служб Azure AI, чтобы добавить модель встраивания в ваш ресурс.
- В этом примере используется
Cohere-embed-v3-english
из Cohere.
- В этом примере используется
Используйте встраивания изображений
Сначала создайте клиент для использования модели. В следующем коде используется URL-адрес конечной точки и ключ, хранящиеся в переменных среды.
import os
from azure.ai.inference import ImageEmbeddingsClient
from azure.core.credentials import AzureKeyCredential
client = 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
client = 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 = client.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-english
модели необходимо отправить одно изображение одновременно.
Внедрение изображений и текстовых пар
Некоторые модели могут создавать внедрения из изображений и текстовых пар. В этом случае можно использовать поля image
и text
в запросе для передачи изображения и текста модели. В следующем примере показано, как создавать внедрения для изображений и текстовых пар:
text_image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
text_image_input.text = "A cute baby sea otter"
response = client.embed(
input=[ text_image_input ],
)
Create different types of embeddings
Некоторые модели могут создавать несколько эмбеддингов для одного и того же входного значения в зависимости от того, как вы планируете их использовать. This capability allows you to retrieve more accurate embeddings for RAG patterns.
Следующий пример показывает, как создать эмбеддинги, которые используются для формирования представления документа, который будет храниться в векторной базе данных.
from azure.ai.inference.models import EmbeddingInputType
response = client.embed(
input=[ image_input ],
input_type=EmbeddingInputType.DOCUMENT,
)
При работе с запросом для получения такого документа можно использовать следующий фрагмент кода, чтобы создать внедрения для запроса и максимально повысить производительность извлечения.
from azure.ai.inference.models import EmbeddingInputType
response = client.embed(
input=[ image_input ],
input_type=EmbeddingInputType.QUERY,
)
Обратите внимание, что не все модели вложения поддерживают указание типа входных данных в запросе, и в таких случаях возвращается ошибка 422.
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Эта статья объясняет, как использовать API для встраивания изображений с моделями, развернутыми для вычислений в Azure AI, в Azure AI Foundry.
Необходимые условия
Чтобы использовать модели внедрения в приложение, вам потребуется:
Подписка Azure. Если вы используете GitHub Models, вы можете улучшить свой опыт и в процессе создать подписку на Azure. Read Upgrade from GitHub Models to Azure AI model inference if that's your case.
Ресурс служб ИИ Azure. Дополнительные сведения см. в статье "Создание ресурса Служб искусственного интеллекта Azure".
URL-адрес конечной точки и ключ.
Установите библиотеку вывода Azure для JavaScript с помощью следующей команды:
npm install @azure-rest/ai-inference npm install @azure/core-auth npm install @azure/identity
Если вы используете Node.js, вы можете настроить зависимости в package.json:
package.json
{ "name": "main_app", "version": "1.0.0", "description": "", "main": "app.js", "type": "module", "dependencies": { "@azure-rest/ai-inference": "1.0.0-beta.6", "@azure/core-auth": "1.9.0", "@azure/core-sse": "2.2.0", "@azure/identity": "4.8.0" } }
Импортируйте следующее:
import ModelClient from "@azure-rest/ai-inference"; import { isUnexpected } from "@azure-rest/ai-inference"; import { createSseStream } from "@azure/core-sse"; import { AzureKeyCredential } from "@azure/core-auth"; import { DefaultAzureCredential } from "@azure/identity";
Развертывание модели встраивания изображений. Если у вас нет модели, прочтите "Добавление и настройка моделей для служб ИИ Azure", чтобы добавить эмбеддинговую модель в ваш ресурс.
- В этом примере используется
Cohere-embed-v3-english
из Cohere.
- В этом примере используется
Используйте встраивания изображений
Сначала создайте клиент для использования модели. В следующем коде используется URL-адрес конечной точки и ключ, хранящиеся в переменных среды.
const client = ModelClient(
"https://<resource>.services.ai.azure.com/models",
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);
Если вы настроили ресурс с поддержкой идентификатора Microsoft Entra, можно использовать следующий фрагмент кода для создания клиента.
const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };
const client = ModelClient(
"https://<resource>.services.ai.azure.com/models",
new DefaultAzureCredential()
clientOptions,
);
Создание эмбеддингов
Чтобы создать эмбеддинги изображений, необходимо передать данные изображения как часть вашего запроса. Данные изображения должны быть в формате 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 } ],
model: "Cohere-embed-v3-english",
}
});
Tip
При создании запроса учитывайте ограничение на количество токенов, используемых моделью. Если вам нужно внедрить более крупные части текста, вам потребуется стратегия фрагментирования.
Ответ выглядит следующим образом, где можно просмотреть статистику использования модели:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Внимание
Внедрение вычислений в пакеты может не поддерживаться для всех моделей. Например, для Cohere-embed-v3-english
модели необходимо отправить одно изображение одновременно.
Внедрение изображений и текстовых пар
Некоторые модели могут создавать внедрения из изображений и текстовых пар. В этом случае можно использовать поля 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
}
],
model: "Cohere-embed-v3-english",
}
});
Create different types of embeddings
Некоторые модели могут создавать несколько эмбеддингов для одного и того же входного значения в зависимости от того, как вы планируете их использовать. This capability allows you to retrieve more accurate embeddings for RAG patterns.
Следующий пример показывает, как создать эмбеддинги, которые используются для формирования представления документа, который будет храниться в векторной базе данных.
var response = await client.path("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "document",
model: "Cohere-embed-v3-english",
}
});
При работе с запросом для получения такого документа можно использовать следующий фрагмент кода, чтобы создать внедрения для запроса и максимально повысить производительность извлечения.
var response = await client.path("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "query",
model: "Cohere-embed-v3-english",
}
});
Обратите внимание, что не все модели вложения поддерживают указание типа входных данных в запросе, и в таких случаях возвращается ошибка 422.
Примечание.
Внедрение изображений поддерживается только с помощью запросов Python, JavaScript, C#или REST.
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
В этой статье объясняется, как использовать API встраивания изображений с моделями, развернутыми для вывода в Azure AI Foundry.
Необходимые условия
Чтобы использовать модели внедрения в приложение, вам потребуется:
Подписка Azure. Если вы используете GitHub Models, вы можете улучшить свой опыт и в процессе создать подписку на Azure. Read Upgrade from GitHub Models to Azure AI model inference if that's your case.
Ресурс служб ИИ Azure. Дополнительные сведения см. в статье "Создание ресурса Служб искусственного интеллекта Azure".
URL-адрес конечной точки и ключ.
Установите пакет вывода искусственного интеллекта Azure с помощью следующей команды:
dotnet add package Azure.AI.Inference --prerelease
Если вы используете Entra ID, вам также потребуется следующий пакет:
dotnet add package Azure.Identity
Развертывание модели эмбеддингов изображений. Если у вас нет модели, прочитайте Добавление и настройка моделей для служб Azure AI, чтобы добавить модель встраивания в ваш ресурс.
- В этом примере используется
Cohere-embed-v3-english
из Cohere.
- В этом примере используется
Используйте встраивания изображений
Сначала создайте клиент для использования модели. В следующем коде используется URL-адрес конечной точки и ключ, хранящиеся в переменных среды.
ImageEmbeddingsClient client = new ImageEmbeddingsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Если вы настроили ресурс с поддержкой идентификатора Microsoft Entra, можно использовать следующий фрагмент кода для создания клиента. Обратите внимание, что значение includeInteractiveCredentials
установлено на true
только для демонстрационных целей, чтобы проверка подлинности могла происходить с помощью веб-браузера. For production workloads, you should remove the parameter.
TokenCredential credential = new DefaultAzureCredential(includeInteractiveCredentials: true);
AzureAIInferenceClientOptions clientOptions = new AzureAIInferenceClientOptions();
BearerTokenAuthenticationPolicy tokenPolicy = new BearerTokenAuthenticationPolicy(credential, new string[] { "https://cognitiveservices.azure.com/.default" });
clientOptions.AddPolicy(tokenPolicy, HttpPipelinePosition.PerRetry);
ImageEmbeddingsClient client = new ImageEmbeddingsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
credential,
clientOptions
);
Создание эмбеддингов
Чтобы создать эмбеддинги изображений, необходимо передать данные изображения как часть вашего запроса. Данные изображения должны быть в формате PNG и закодированы как base64.
List<ImageEmbeddingInput> input = new List<ImageEmbeddingInput>
{
ImageEmbeddingInput.Load(imageFilePath:"sampleImage.png", imageFormat:"png")
};
var requestOptions = new ImageEmbeddingsOptions()
{
Input = input,
Model = "Cohere-embed-v3-english"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Подсказка
При создании запроса учитывайте ограничение на количество токенов, используемых моделью. Если вам нужно внедрить более крупные части текста, вам потребуется стратегия фрагментирования.
Ответ выглядит следующим образом, где можно просмотреть статистику использования модели:
foreach (EmbeddingItem item in response.Value.Data)
{
List<float> embedding = item.Embedding.ToObjectFromJson<List<float>>();
Console.WriteLine($"Index: {item.Index}, Embedding: <{string.Join(", ", embedding)}>");
}
Внимание
Внедрение вычислений в пакеты может не поддерживаться для всех моделей. Например, для Cohere-embed-v3-english
модели необходимо отправить одно изображение одновременно.
Внедрение изображений и текстовых пар
Некоторые модели могут создавать внедрения из изображений и текстовых пар. В этом случае можно использовать поля image
и text
в запросе для передачи изображения и текста модели. В следующем примере показано, как создавать внедрения для изображений и текстовых пар:
var image_input = ImageEmbeddingInput.Load(imageFilePath:"sampleImage.png", imageFormat:"png")
image_input.text = "A cute baby sea otter"
var requestOptions = new ImageEmbeddingsOptions()
{
Input = new List<ImageEmbeddingInput>
{
image_input
},
Model = "Cohere-embed-v3-english"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Create different types of embeddings
Некоторые модели могут создавать несколько эмбеддингов для одного и того же входного значения в зависимости от того, как вы планируете их использовать. This capability allows you to retrieve more accurate embeddings for RAG patterns.
В следующем примере показано, как создать внедрения для документа, который будет храниться в векторной базе данных:
var requestOptions = new EmbeddingsOptions()
{
Input = image_input,
InputType = EmbeddingInputType.DOCUMENT,
Model = "Cohere-embed-v3-english"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
При работе с запросом для получения такого документа можно использовать следующий фрагмент кода, чтобы создать внедрения для запроса и максимально повысить производительность извлечения.
var requestOptions = new EmbeddingsOptions()
{
Input = image_input,
InputType = EmbeddingInputType.QUERY,
Model = "Cohere-embed-v3-english"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Обратите внимание, что не все модели вложения поддерживают указание типа входных данных в запросе, и в таких случаях возвращается ошибка 422.
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Эта статья объясняет, как использовать API внедрения изображений с моделями, развернутыми для обработки исходов в Azure AI в Azure AI Foundry.
Необходимые условия
Чтобы использовать модели внедрения в приложение, вам потребуется:
Подписка Azure. Если вы используете GitHub Models, вы можете улучшить свой опыт и в процессе создать подписку на Azure. Read Upgrade from GitHub Models to Azure AI model inference if that's your case.
Ресурс служб ИИ 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>
If you have configured the resource with Microsoft Entra ID support, pass you token in the Authorization
header with the format Bearer <token>
. Используйте область https://cognitiveservices.azure.com/.default
.
POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>
Использование идентификатора Microsoft Entra может потребовать дополнительной конфигурации в ресурсе для предоставления доступа. Узнайте, как настроить проверку подлинности без ключей с помощью идентификатора Microsoft Entra.
Создание эмбеддингов
Чтобы создать эмбеддинги изображений, необходимо передать данные изображения как часть вашего запроса. Данные изображения должны быть в формате PNG и закодированы как base64.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
]
}
Tip
При создании запроса учитывайте ограничение на количество токенов, используемых моделью. Если вам нужно внедрить более крупные части текста, вам потребуется стратегия фрагментирования.
Ответ выглядит следующим образом, где можно просмотреть статистику использования модели:
{
"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-english
модели необходимо отправить одно изображение одновременно.
Внедрение изображений и текстовых пар
Некоторые модели могут создавать внедрения из изображений и текстовых пар. В этом случае можно использовать поля image
и text
в запросе для передачи изображения и текста модели. В следующем примере показано, как создавать внедрения для изображений и текстовых пар:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
"text": "A photo of a cat"
}
]
}
Create different types of embeddings
Некоторые модели могут создавать несколько эмбеддингов для одного и того же входного значения в зависимости от того, как вы планируете их использовать. This capability allows you to retrieve more accurate embeddings for RAG patterns.
Следующий пример показывает, как создать эмбеддинги, которые используются для формирования представления документа, который будет храниться в векторной базе данных.
{
"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.