埋め込みは、テキストのセマンティックな意味を表す浮動小数点数のベクトルです。 同様のテキストでは、近いベクトルが生成されるため、埋め込みはベクター検索、推奨事項、分類、クラスタリングに役立ちます。
v1 埋め込み API では、Microsoft Entra IDと API キー認証がサポートされています。 Microsoft Entra IDをお勧めします。有効期間が長い資格情報の格納を回避するためです。 この記事の例では、Microsoft Entra IDを使用します。
OpenAI と Azure ID パッケージをインストールします。
pip install openai azure-identity
埋め込みを生成し、その寸法を印刷します。
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
openai = OpenAI(
base_url=endpoint,
api_key=token_provider,
)
# Generate one embedding vector.
response = openai.embeddings.create(
model="text-embedding-3-small",
input="The quick brown fox jumped over the lazy dog.",
)
print(f"Embedding dimensions: {len(response.data[0].embedding)}")
Embedding dimensions: <number>
embeddings.create を参照してください。
OpenAI と Azure ID パッケージをインストールします。
dotnet add package OpenAI
dotnet add package Azure.Identity
埋め込みを生成し、その寸法を印刷します。
using Azure.Identity;
using OpenAI;
using OpenAI.Embeddings;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001
var endpoint = new Uri(
"https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/");
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://ai.azure.com/.default");
var openAIClient = new EmbeddingClient(
model: "text-embedding-3-small",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions { Endpoint = endpoint });
// Generate one embedding vector.
OpenAIEmbedding embedding = openAIClient.GenerateEmbedding(
"The quick brown fox jumped over the lazy dog.");
Console.WriteLine($"Embedding dimensions: {embedding.ToFloats().Length}");
Embedding dimensions: <number>
EmbeddingClient.GenerateEmbedding を参照してください。
OpenAI と Azure ID パッケージをインストールします。
npm install openai @azure/identity
埋め込みを生成し、その寸法を印刷します。
import {
DefaultAzureCredential,
getBearerTokenProvider,
} from "@azure/identity";
import OpenAI from "openai";
const endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
"https://ai.azure.com/.default",
);
const openai = new OpenAI({ baseURL: endpoint, apiKey: tokenProvider });
// Generate one embedding vector.
const response = await openai.embeddings.create({
model: "text-embedding-3-small",
input: "The quick brown fox jumped over the lazy dog.",
});
console.log(`Embedding dimensions: ${response.data[0].embedding.length}`);
Embedding dimensions: <number>
embeddings.create を参照してください。
Maven の場合は、OpenAI と Azure ID パッケージを追加します。
<dependencies>
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>4.43.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.4</version>
</dependency>
</dependencies>
Gradle のセットアップについては、OpenAI Java サポートAzure参照してください。
埋め込みを生成し、その寸法を印刷します。
import com.azure.identity.AuthenticationUtil;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.credential.BearerTokenCredential;
import com.openai.models.embeddings.EmbeddingCreateParams;
public class EmbeddingsExample {
public static void main(String[] args) {
String endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
OpenAIClient openAIClient = OpenAIOkHttpClient.builder()
.baseUrl(endpoint)
.credential(BearerTokenCredential.create(
AuthenticationUtil.getBearerTokenSupplier(
new DefaultAzureCredentialBuilder().build(),
"https://ai.azure.com/.default")))
.build();
// Generate one embedding vector.
EmbeddingCreateParams params = EmbeddingCreateParams.builder()
.model("text-embedding-3-small")
.input("The quick brown fox jumped over the lazy dog.")
.encodingFormat(EmbeddingCreateParams.EncodingFormat.FLOAT)
.build();
int dimensions = openAIClient.embeddings().create(params)
.data().get(0).embedding().size();
System.out.println("Embedding dimensions: " + dimensions);
}
}
Embedding dimensions: <number>
EmbeddingCreateParams を参照してください。
OpenAI Go モジュールと Azure Identity モジュールのバージョン 3 をインストールします。
go get github.com/openai/openai-go/v3
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
埋め込みを生成し、その寸法を印刷します。
package main
import (
"context"
"fmt"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/azure"
"github.com/openai/openai-go/v3/option"
)
func main() {
credential, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil { panic(err) }
endpoint := "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
openaiClient := openai.NewClient(
option.WithBaseURL(endpoint),
azure.WithTokenCredential(credential, azure.WithTokenCredentialScopes(
[]string{"https://ai.azure.com/.default"})))
// Generate one embedding vector.
response, err := openaiClient.Embeddings.New(context.Background(), openai.EmbeddingNewParams{
Model: "text-embedding-3-small",
Input: openai.EmbeddingNewParamsInputUnion{OfString: openai.String(
"The quick brown fox jumped over the lazy dog.")},
})
if err != nil { panic(err) }
fmt.Printf("Embedding dimensions: %d\n", len(response.Data[0].Embedding))
}
Embedding dimensions: <number>
Embeddings.New を参照してください。
リソース エンドポイントを AZURE_OPENAI_ENDPOINTに格納します。 次に、アクセス トークンを取得し、埋め込みを生成します。
$Env:AZURE_OPENAI_ENDPOINT = "https://YOUR-RESOURCE-NAME.openai.azure.com"
$endpoint = "$($env:AZURE_OPENAI_ENDPOINT.TrimEnd('/'))/openai/v1/embeddings"
$token = az account get-access-token `
--resource https://cognitiveservices.azure.com `
--query accessToken `
--output tsv
$headers = @{ Authorization = "Bearer $token" }
# Generate one embedding vector.
$body = @{
model = "text-embedding-3-small"
input = "The quick brown fox jumped over the lazy dog."
} | ConvertTo-Json
$response = Invoke-RestMethod `
-Uri $endpoint `
-Method Post `
-Headers $headers `
-ContentType "application/json" `
-Body $body
Write-Output "Embedding dimensions: $($response.data[0].embedding.Count)"
Embedding dimensions: <number>
リファレンス: Invoke-RestMethod と az account get-access-token
アクセス トークンを取得し、v1 埋め込みエンドポイントに要求を送信します。
AZURE_OPENAI_AUTH_TOKEN=$(az account get-access-token \
--resource https://cognitiveservices.azure.com \
--query accessToken \
--output tsv)
curl "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/embeddings" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{"model":"text-embedding-3-small","input":"The quick brown fox."}'
{"data":[{"embedding":[<vector-values>]}]}
リファレンス: Azure OpenAI 埋め込み REST API と az account get-access-token
埋め込みモデルは信頼性が低い場合や、特定のケースで社会的リスクを引き起こす可能性があります。 軽減策なしで使用すると、損害が発生する可能性があります。 責任を持って使用にアプローチする方法の詳細については、 責任ある AI コンテンツを参照してください。