次の方法で共有


Azure AI Foundry モデルを使用して埋め込みを生成する方法

Von Bedeutung

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

この記事では、Azure AI Foundry Models にデプロイされたモデルで埋め込み API を使用する方法について説明します。

[前提条件]

アプリケーションで埋め込みモデルを使用するには、次のものが必要です。

  • 埋め込みモデルのデプロイ。 ない場合は、Foundry Models の追加と構成を読み、リソースに埋め込みモデルを追加してください。

埋め込みを使用する

まず、モデルを実行するクライアントを作成します。 次のコードでは、環境変数に格納されているエンドポイント URL とキーを使用しています。

import os
from azure.ai.inference import EmbeddingsClient
from azure.core.credentials import AzureKeyCredential

model = EmbeddingsClient(
    endpoint="https://<resource>.services.ai.azure.com/models",
    credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
    model="text-embedding-3-small"
)

Microsoft Entra ID をサポートするリソースを構成してある場合、次のコード スニペットを使用してクライアントを作成できます。

import os
from azure.ai.inference import EmbeddingsClient
from azure.identity import DefaultAzureCredential

model = EmbeddingsClient(
    endpoint="https://<resource>.services.ai.azure.com/models",
    credential=DefaultAzureCredential(),
    model="text-embedding-3-small"
)

埋め込みを作成する

モデルの出力を表示する埋め込み要求を作成します。

response = model.embed(
    input=["The ultimate answer to the question of life"],
)

ヒント

要求を作成するときは、モデルに対するトークンの入力制限を考慮してください。 テキストのより大きい部分を埋め込む必要がある場合は、チャンキング戦略が必要です。

応答は次のとおりです。モデルの使用状況の統計情報が表示されます。

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)

埋め込みを入力バッチで計算すると便利です。 パラメーター inputs は、各文字列は異なる入力の、文字列のリストにすることができます。 さらに、応答は埋め込みの一覧であり、各埋め込みは同じ位置の入力に対応します。

response = model.embed(
    input=[
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter",
    ],
)

応答は次のとおりです。モデルの使用状況の統計情報が表示されます。

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)

ヒント

要求のバッチを作成するときは、各モデルのバッチ制限を考慮してください。 ほとんどのモデルには 1024 のバッチ制限があります。

埋め込みディメンションを指定する

埋め込みのディメンションの数を指定できます。 次のコード例は、1024 のディメンションがある埋め込みを作成する方法を示しています。 すべての埋め込みモデルで要求内のディメンション数の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。

response = model.embed(
    input=["The ultimate answer to the question of life"],
    dimensions=1024,
)

さまざまな種類の埋め込みを作成する

一部のモデルでは、予定している使用方法に応じて、同じ入力に対して複数の埋め込みを生成できます。 この機能を使用すると、RAG パターンのより正確な埋め込みを取得できます。

次の例は、ベクター データベースに保存されるドキュメントの埋め込みを作成するために使用される埋め込みを作成する方法を示しています。

from azure.ai.inference.models import EmbeddingInputType

response = model.embed(
    input=["The answer to the ultimate question of life, the universe, and everything is 42"],
    input_type=EmbeddingInputType.DOCUMENT,
)

クエリでこのようなドキュメントを取得する場合は、次のコード スニペットを使用してクエリの埋め込みを作成し、検索パフォーマンスを最大化できます。

from azure.ai.inference.models import EmbeddingInputType

response = model.embed(
    input=["What's the ultimate meaning of life?"],
    input_type=EmbeddingInputType.QUERY,
)

すべての埋め込みモデルで要求内の入力の種類の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。 既定では、Text 型の埋め込みが返されます。

Von Bedeutung

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

この記事では、Azure AI Foundry Models にデプロイされたモデルで埋め込み API を使用する方法について説明します。

[前提条件]

アプリケーションで埋め込みモデルを使用するには、次のものが必要です。

  • 次のコマンドを使用して、JavaScript 用 Azure 推論ライブラリをインストールします。

    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";
    
  • 埋め込みモデルのデプロイ。 ない場合は、Foundry Models の追加と構成を読み、リソースに埋め込みモデルを追加してください。

埋め込みを使用する

まず、モデルを実行するクライアントを作成します。 次のコードでは、環境変数に格納されているエンドポイント URL とキーを使用しています。

const client = ModelClient(
    "https://<resource>.services.ai.azure.com/models", 
    new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);

Microsoft Entra ID サポートを使用してリソースを構成した場合は、次のコード スニペットを使用してクライアントを作成できます。

const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };

const client = ModelClient(
    "https://<resource>.services.ai.azure.com/models", 
    new DefaultAzureCredential()
    clientOptions,
);

埋め込みを作成する

モデルの出力を表示する埋め込み要求を作成します。

var response = await client.path("/embeddings").post({
    body: {
        model: "text-embedding-3-small",
        input: ["The ultimate answer to the question of life"],
    }
});

ヒント

要求を作成するときは、モデルに対するトークンの入力制限を考慮してください。 テキストのより大きい部分を埋め込む必要がある場合は、チャンキング戦略が必要です。

応答は次のとおりです。モデルの使用状況の統計情報が表示されます。

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

埋め込みを入力バッチで計算すると便利です。 パラメーター inputs は、各文字列は異なる入力の、文字列のリストにすることができます。 さらに、応答は埋め込みの一覧であり、各埋め込みは同じ位置の入力に対応します。

var response = await client.path("/embeddings").post({
    body: {
        model: "text-embedding-3-small",
        input: [
            "The ultimate answer to the question of life", 
            "The largest planet in our solar system is Jupiter",
        ],
    }
});

応答は次のとおりです。モデルの使用状況の統計情報が表示されます。

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

ヒント

要求のバッチを作成するときは、各モデルのバッチ制限を考慮してください。 ほとんどのモデルには 1024 のバッチ制限があります。

埋め込みディメンションを指定する

埋め込みのディメンションの数を指定できます。 次のコード例は、1024 のディメンションがある埋め込みを作成する方法を示しています。 すべての埋め込みモデルで要求内のディメンション数の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。

var response = await client.path("/embeddings").post({
    body: {
        model: "text-embedding-3-small",
        input: ["The ultimate answer to the question of life"],
        dimensions: 1024,
    }
});

さまざまな種類の埋め込みを作成する

一部のモデルでは、予定している使用方法に応じて、同じ入力に対して複数の埋め込みを生成できます。 この機能を使用すると、RAG パターンのより正確な埋め込みを取得できます。

次の例は、ベクター データベースに保存されるドキュメントの埋め込みを作成するために使用される埋め込みを作成する方法を示しています。

var response = await client.path("/embeddings").post({
    body: {
        model: "text-embedding-3-small",
        input: ["The answer to the ultimate question of life, the universe, and everything is 42"],
        input_type: "document",
    }
});

クエリでこのようなドキュメントを取得する場合は、次のコード スニペットを使用してクエリの埋め込みを作成し、検索パフォーマンスを最大化できます。

var response = await client.path("/embeddings").post({
    body: {
        model: "text-embedding-3-small",
        input: ["What's the ultimate meaning of life?"],
        input_type: "query",
    }
});

すべての埋め込みモデルで要求内の入力の種類の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。 既定では、Text 型の埋め込みが返されます。

Von Bedeutung

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

この記事では、Azure AI Foundry Models にデプロイされたモデルで埋め込み API を使用する方法について説明します。

[前提条件]

アプリケーションで埋め込みモデルを使用するには、次のものが必要です。

  • プロジェクトに Azure AI 推論パッケージを追加します。

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-inference</artifactId>
        <version>1.0.0-beta.4</version>
    </dependency>
    
  • Entra ID を使用する場合は、次のパッケージも必要です。

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
        <version>1.15.3</version>
    </dependency>
    
  • 次の名前空間をインポートします。

    package com.azure.ai.inference.usage;
    
    import com.azure.ai.inference.EmbeddingsClient;
    import com.azure.ai.inference.EmbeddingsClientBuilder;
    import com.azure.ai.inference.ChatCompletionsClient;
    import com.azure.ai.inference.ChatCompletionsClientBuilder;
    import com.azure.ai.inference.models.EmbeddingsResult;
    import com.azure.ai.inference.models.EmbeddingItem;
    import com.azure.ai.inference.models.ChatCompletions;
    import com.azure.core.credential.AzureKeyCredential;
    import com.azure.core.util.Configuration;
    
    import java.util.ArrayList;
    import java.util.List;
    
  • 次の名前空間をインポートします。

    package com.azure.ai.inference.usage;
    
    import com.azure.ai.inference.EmbeddingsClient;
    import com.azure.ai.inference.EmbeddingsClientBuilder;
    import com.azure.ai.inference.models.EmbeddingsResult;
    import com.azure.ai.inference.models.EmbeddingItem;
    import com.azure.core.credential.AzureKeyCredential;
    import com.azure.core.util.Configuration;
    
    import java.util.ArrayList;
    import java.util.List;
    
  • 埋め込みモデルのデプロイ。 ない場合は、Foundry Models の追加と構成を読み、リソースに埋め込みモデルを追加してください。

埋め込みを使用する

まず、モデルを実行するクライアントを作成します。 次のコードでは、環境変数に格納されているエンドポイント URL とキーを使用しています。

EmbeddingsClient client = new EmbeddingsClient(
    URI.create(System.getProperty("AZURE_INFERENCE_ENDPOINT")),
    new AzureKeyCredential(System.getProperty("AZURE_INFERENCE_CREDENTIAL")),
    "text-embedding-3-small"
);

Microsoft Entra ID をサポートするリソースを構成してある場合、次のコード スニペットを使用してクライアントを作成できます。

client = new EmbeddingsClient(
    URI.create(System.getProperty("AZURE_INFERENCE_ENDPOINT")),
    new DefaultAzureCredential(),
    "text-embedding-3-small"
);

埋め込みを作成する

モデルの出力を表示する埋め込み要求を作成します。

EmbeddingsOptions requestOptions = new EmbeddingsOptions()
    .setInput(Arrays.asList("The ultimate answer to the question of life"));

Response<EmbeddingsResult> response = client.embed(requestOptions);

ヒント

要求を作成するときは、モデルに対するトークンの入力制限を考慮してください。 テキストのより大きい部分を埋め込む必要がある場合は、チャンキング戦略が必要です。

応答は次のとおりです。モデルの使用状況の統計情報が表示されます。

System.out.println("Embedding: " + response.getValue().getData());
System.out.println("Model: " + response.getValue().getModel());
System.out.println("Usage:");
System.out.println("\tPrompt tokens: " + response.getValue().getUsage().getPromptTokens());
System.out.println("\tTotal tokens: " + response.getValue().getUsage().getTotalTokens());

埋め込みを入力バッチで計算すると便利です。 パラメーター inputs は、各文字列は異なる入力の、文字列のリストにすることができます。 さらに、応答は埋め込みの一覧であり、各埋め込みは同じ位置の入力に対応します。

requestOptions = new EmbeddingsOptions()
    .setInput(Arrays.asList(
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter"
    ));

response = client.embed(requestOptions);

応答は次のとおりです。モデルの使用状況の統計情報が表示されます。

ヒント

要求のバッチを作成するときは、各モデルのバッチ制限を考慮してください。 ほとんどのモデルには 1024 のバッチ制限があります。

埋め込みディメンションを指定する

埋め込みのディメンションの数を指定できます。 次のコード例は、1024 のディメンションがある埋め込みを作成する方法を示しています。 すべての埋め込みモデルで要求内のディメンション数の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。

さまざまな種類の埋め込みを作成する

一部のモデルでは、予定している使用方法に応じて、同じ入力に対して複数の埋め込みを生成できます。 この機能を使用すると、RAG パターンのより正確な埋め込みを取得できます。

次の例は、ベクター データベースに保存されるドキュメントの埋め込みを作成するために使用される埋め込みを作成する方法を示しています。

List<String> input = Arrays.asList("The answer to the ultimate question of life, the universe, and everything is 42");
requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.DOCUMENT);

response = client.embed(requestOptions);

クエリでこのようなドキュメントを取得する場合は、次のコード スニペットを使用してクエリの埋め込みを作成し、検索パフォーマンスを最大化できます。

input = Arrays.asList("What's the ultimate meaning of life?");
requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.QUERY);

response = client.embed(requestOptions);

すべての埋め込みモデルで要求内の入力の種類の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。 既定では、Text 型の埋め込みが返されます。

Von Bedeutung

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

この記事では、Azure AI Foundry Models にデプロイされたモデルで埋め込み API を使用する方法について説明します。

[前提条件]

アプリケーションで埋め込みモデルを使用するには、次のものが必要です。

  • 次のコマンドを使用して Azure AI 推論パッケージをインストールします。

    dotnet add package Azure.AI.Inference --prerelease
    
  • Entra ID を使用する場合は、次のパッケージも必要です。

    dotnet add package Azure.Identity
    
  • 埋め込みモデルのデプロイ。 ない場合は、Foundry Models の追加と構成を読み、リソースに埋め込みモデルを追加してください。

埋め込みを使用する

まず、モデルを実行するクライアントを作成します。 次のコードでは、環境変数に格納されているエンドポイント URL とキーを使用しています。

EmbeddingsClient client = new EmbeddingsClient(
    new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
    new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);

Microsoft Entra ID をサポートするリソースを構成済みの場合、次のコード スニペットを使用してクライアントを作成できます。 ここでは、 includeInteractiveCredentials はデモンストレーション目的でのみ true に設定されているため、Web ブラウザーを使用して認証を行うことができます。 運用環境のワークロードでは、このようなパラメーターを削除する必要があります。

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);

client = new EmbeddingsClient(
    new Uri("https://<resource>.services.ai.azure.com/models"),
    credential,
    clientOptions,
);

埋め込みを作成する

モデルの出力を表示する埋め込み要求を作成します。

EmbeddingsOptions requestOptions = new EmbeddingsOptions()
{
    Input = {
        "The ultimate answer to the question of life"
    },
    Model = "text-embedding-3-small"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

ヒント

要求を作成するときは、モデルに対するトークンの入力制限を考慮してください。 テキストのより大きい部分を埋め込む必要がある場合は、チャンキング戦略が必要です。

応答は次のとおりです。モデルの使用状況の統計情報が表示されます。

Console.WriteLine($"Embedding: {response.Value.Data}");
Console.WriteLine($"Model: {response.Value.Model}");
Console.WriteLine("Usage:");
Console.WriteLine($"\tPrompt tokens: {response.Value.Usage.PromptTokens}");
Console.WriteLine($"\tTotal tokens: {response.Value.Usage.TotalTokens}");

埋め込みを入力バッチで計算すると便利です。 パラメーター inputs は、各文字列は異なる入力の、文字列のリストにすることができます。 さらに、応答は埋め込みの一覧であり、各埋め込みは同じ位置の入力に対応します。

EmbeddingsOptions requestOptions = new EmbeddingsOptions()
{
    Input = {
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter"
    },
    Model = "text-embedding-3-small"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

応答は次のとおりです。モデルの使用状況の統計情報が表示されます。

ヒント

要求のバッチを作成するときは、各モデルのバッチ制限を考慮してください。 ほとんどのモデルには 1024 のバッチ制限があります。

埋め込みディメンションを指定する

埋め込みのディメンションの数を指定できます。 次のコード例は、1024 のディメンションがある埋め込みを作成する方法を示しています。 すべての埋め込みモデルで要求内のディメンション数の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。

さまざまな種類の埋め込みを作成する

一部のモデルでは、予定している使用方法に応じて、同じ入力に対して複数の埋め込みを生成できます。 この機能を使用すると、RAG パターンのより正確な埋め込みを取得できます。

次の例は、ベクター データベースに保存されるドキュメントの埋め込みを作成するために使用される埋め込みを作成する方法を示しています。

var input = new List<string> { 
    "The answer to the ultimate question of life, the universe, and everything is 42"
};
var requestOptions = new EmbeddingsOptions()
{
    Input = input,
    InputType = EmbeddingInputType.DOCUMENT, 
    Model = "text-embedding-3-small"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

クエリでこのようなドキュメントを取得する場合は、次のコード スニペットを使用してクエリの埋め込みを作成し、検索パフォーマンスを最大化できます。

var input = new List<string> { 
    "What's the ultimate meaning of life?"
};
var requestOptions = new EmbeddingsOptions()
{
    Input = input,
    InputType = EmbeddingInputType.QUERY,
    Model = "text-embedding-3-small"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

すべての埋め込みモデルで要求内の入力の種類の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。 既定では、Text 型の埋め込みが返されます。

Von Bedeutung

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

この記事では、Azure AI Foundry Models にデプロイされたモデルで埋め込み API を使用する方法について説明します。

[前提条件]

アプリケーションで埋め込みモデルを使用するには、次のものが必要です。

  • 埋め込みモデルのデプロイ。 ない場合は、Foundry Models の追加と構成を読み、リソースに埋め込みモデルを追加してください。

埋め込みを使用する

テキスト埋め込みを使用するには、ベース URL に追加された /embeddings ルートと、api-key に示されている資格情報を使用します。 Authorization ヘッダーは、形式 Bearer <key> でもサポートされています。

POST https://<resource>.services.ai.azure.com/models/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
api-key: <key>

Microsoft Entra ID のサポートを使用してリソースを構成した場合は、Authorization ヘッダーにBearer <token>形式のトークンを渡します。 スコープ https://cognitiveservices.azure.com/.defaultを使用します。

POST https://<resource>.services.ai.azure.com/models/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>

Microsoft Entra ID を使用するには、アクセス権を付与するためにリソースに追加の構成が必要になる場合があります。 Microsoft Entra ID を使用してキーレス認証を構成する方法について説明します。

埋め込みを作成する

モデルの出力を表示する埋め込み要求を作成します。

{
    "model": "text-embedding-3-small",
    "input": [
        "The ultimate answer to the question of life"
    ]
}

ヒント

要求を作成するときは、モデルに対するトークンの入力制限を考慮してください。 テキストのより大きい部分を埋め込む必要がある場合は、チャンキング戦略が必要です。

応答は次のとおりです。モデルの使用状況の統計情報が表示されます。

{
    "id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
    "object": "list",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        }
    ],
    "model": "text-embedding-3-small",
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 0,
        "total_tokens": 9
    }
}

埋め込みを入力バッチで計算すると便利です。 パラメーター inputs は、各文字列は異なる入力の、文字列のリストにすることができます。 さらに、応答は埋め込みの一覧であり、各埋め込みは同じ位置の入力に対応します。

{
    "model": "text-embedding-3-small",
    "input": [
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter"
    ]
}

応答は次のとおりです。モデルの使用状況の統計情報が表示されます。

{
    "id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
    "object": "list",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        },
        {
            "index": 1,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        }
    ],
    "model": "text-embedding-3-small",
    "usage": {
        "prompt_tokens": 19,
        "completion_tokens": 0,
        "total_tokens": 19
    }
}

ヒント

要求のバッチを作成するときは、各モデルのバッチ制限を考慮してください。 ほとんどのモデルには 1024 のバッチ制限があります。

埋め込みディメンションを指定する

埋め込みのディメンションの数を指定できます。 次のコード例は、1024 のディメンションがある埋め込みを作成する方法を示しています。 すべての埋め込みモデルで要求内のディメンション数の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。

{
    "model": "text-embedding-3-small",
    "input": [
        "The ultimate answer to the question of life"
    ],
    "dimensions": 1024
}

さまざまな種類の埋め込みを作成する

一部のモデルでは、予定している使用方法に応じて、同じ入力に対して複数の埋め込みを生成できます。 この機能を使用すると、RAG パターンのより正確な埋め込みを取得できます。

次の例は、ベクター データベースに保存されるドキュメントの埋め込みを作成するために使用される埋め込みの作成方法を示しています。 text-embedding-3-small ではこの機能をサポートしていないため、次の例では Cohere の埋め込みモデルを使用しています。

{
    "model": "cohere-embed-v3-english",
    "input": [
        "The answer to the ultimate question of life, the universe, and everything is 42"
    ],
    "input_type": "document"
}

クエリでこのようなドキュメントを取得する場合は、次のコード スニペットを使用してクエリの埋め込みを作成し、検索パフォーマンスを最大化できます。 text-embedding-3-small ではこの機能をサポートしていないため、次の例では Cohere の埋め込みモデルを使用しています。

{
    "model": "cohere-embed-v3-english",
    "input": [
        "What's the ultimate meaning of life?"
    ],
    "input_type": "query"
}

すべての埋め込みモデルで要求内の入力の種類の指定がサポートされているわけではないことに注意してください。その場合、422 エラーが返されます。 既定では、Text 型の埋め込みが返されます。