Azure AI モデル推論を使用して画像埋め込みを生成する方法
重要
この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
この記事では、Azure AI Foundry の Azure AI モデル推論にデプロイされたモデルで画像埋め込み API を使用する方法について説明します。
前提条件
アプリケーションで埋め込みモデルを使用するには、次のものが必要です。
Azure サブスクリプション。 GitHub モデルを使用している場合は、エクスペリエンスをアップグレードし、プロセスで Azure サブスクリプションを作成できます。 このような場合は、「GitHub モデルから Azure AI モデル推論にアップグレードする」をお読みください。
Azure AI サービス リソース。 詳細については、「Azure AI サービス リソースを作成する」を参照してください。
エンドポイント URL とキー。
画像埋め込みモデルのデプロイ。 ない場合は、Azure AI サービスにモデルを追加して構成するに関するページを読んで、埋め込みモデルをリソースに追加してください。
- この例では、Cohere の
Cohere-embed-v3-english
を使用します。
- この例では、Cohere の
次のコマンドを使用して Azure AI 推論パッケージをインストールします。
pip install -U azure-ai-inference
ヒント
Azure AI 推論パッケージとリファレンスに関する詳細をご覧ください。
埋め込みを使用する
まず、モデルを実行するクライアントを作成します。 次のコードでは、環境変数に格納されているエンドポイント 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 ID をサポートするリソースを構成済みの場合、次のコード スニペットを使用してクライアントを作成できます。
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
モデルの場合は、一度に 1 つの画像を送信する必要があります。
画像とテキストのペアを埋め込む
一部のモデルでは、画像とテキストのペアから埋め込みを生成できます。 この場合、要求の 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 プレビューの追加使用条件に関するページをご覧ください。
この記事では、Azure AI Foundry の Azure AI モデル推論にデプロイされたモデルで画像埋め込み API を使用する方法について説明します。
前提条件
アプリケーションで埋め込みモデルを使用するには、次のものが必要です。
Azure サブスクリプション。 GitHub モデルを使用している場合は、エクスペリエンスをアップグレードし、プロセスで Azure サブスクリプションを作成できます。 このような場合は、「GitHub モデルから Azure AI モデル推論にアップグレードする」をお読みください。
Azure AI サービス リソース。 詳細については、「Azure AI サービス リソースを作成する」を参照してください。
エンドポイント URL とキー。
画像埋め込みモデルのデプロイ。 ない場合は、Azure AI サービスにモデルを追加して構成するに関するページを読んで、埋め込みモデルをリソースに追加してください。
- この例では、Cohere の
Cohere-embed-v3-english
を使用します。
- この例では、Cohere の
次のコマンドを使用して JavaScript 用 Azure 推論ライブラリをインストールします。
npm install @azure-rest/ai-inference
ヒント
Azure AI 推論パッケージとリファレンスに関する詳細をご覧ください。
埋め込みを使用する
まず、モデルを実行するクライアントを作成します。 次のコードでは、環境変数に格納されているエンドポイント 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 ID をサポートするリソースを構成済みの場合、次のコード スニペットを使用してクライアントを作成できます。
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
モデルの場合は、一度に 1 つの画像を送信する必要があります。
画像とテキストのペアを埋め込む
一部のモデルでは、画像とテキストのペアから埋め込みを生成できます。 この場合、要求の 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 エラーが返されます。
Note
画像埋め込みの使用は、Python、JavaScript、または REST 要求の使用のみがサポートされています。
Note
画像埋め込みの使用は、Python、JavaScript、または REST 要求の使用のみがサポートされています。
重要
この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
この記事では、Azure AI Foundry の Azure AI モデル推論にデプロイされたモデルで画像埋め込み API を使用する方法について説明します。
前提条件
アプリケーションで埋め込みモデルを使用するには、次のものが必要です。
Azure サブスクリプション。 GitHub モデルを使用している場合は、エクスペリエンスをアップグレードし、プロセスで Azure サブスクリプションを作成できます。 このような場合は、「GitHub モデルから Azure AI モデル推論にアップグレードする」をお読みください。
Azure AI サービス リソース。 詳細については、「Azure AI サービス リソースを作成する」を参照してください。
エンドポイント URL とキー。
画像埋め込みモデルのデプロイ。 ない場合は、Azure AI サービスにモデルを追加して構成するに関するページを読んで、埋め込みモデルをリソースに追加してください。
- この例では、Cohere の
Cohere-embed-v3-english
を使用します。
- この例では、Cohere の
埋め込みを使用する
テキスト埋め込みを使用するには、api-key
に示されている資格情報とともに、ベース URL に追加されたルート /images/embeddings
を使用します。
Authorization
ヘッダーは、形式 Bearer <key>
でもサポートされています。
POST https://<resource>.services.ai.azure.com/models/images/embeddings
Content-Type: application/json
api-key: <key>
Microsoft Entra ID をサポートするリソースを構成した場合は、Authorization
ヘッダーでトークンを渡します。
POST https://<resource>.services.ai.azure.com/models/images/embeddings
Content-Type: application/json
Authorization: Bearer <token>
埋め込みを作成する
画像埋め込みを作成するには、要求の一部として画像データを渡す必要があります。 画像データは PNG 形式で、base64 でエンコードされている必要があります。
{
"model": "${varients-sample}",
"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
モデルの場合は、一度に 1 つの画像を送信する必要があります。
画像とテキストのペアを埋め込む
一部のモデルでは、画像とテキストのペアから埋め込みを生成できます。 この場合、要求の image
と text
フィールドを使用して、画像とテキストをモデルに渡すことができます。 次の例は、画像とテキストのペアの埋め込みを作成する方法を示しています。
{
"model": "${varients-sample}",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
"text": "A photo of a cat"
}
]
}
さまざまな種類の埋め込みを作成する
一部のモデルでは、予定している使用方法に応じて、同じ入力に対して複数の埋め込みを生成できます。 この機能を使用すると、RAG パターンのより正確な埋め込みを取得できます。
次の例は、ベクター データベースに保存されるドキュメントの埋め込みを作成するために使用される埋め込みを作成する方法を示しています。
{
"model": "${varients-sample}",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "document"
}
クエリでこのようなドキュメントを取得する場合は、次のコード スニペットを使用してクエリの埋め込みを作成し、検索パフォーマンスを最大化できます。
{
"model": "${varients-sample}",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "query"
}
すべての埋め込みモデルで要求内の入力の種類の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。