임베딩은 텍스트의 의미론적 의미를 나타내는 부동 소수점 수의 벡터입니다. 유사한 텍스트는 서로 가까운 벡터를 생성하므로 포함은 벡터 검색, 권장 사항, 분류 및 클러스터링에 유용합니다.
embeddings 엔드포인트로 텍스트를 보내고 응답의 첫 번째 항목에서 벡터를 읽습니다.
v1 포함 API는 Microsoft Entra ID 및 API 키 인증을 지원합니다. Microsoft Entra ID 수명이 긴 자격 증명을 저장하지 않기 때문에 권장됩니다. 이 문서의 예제에서는 Microsoft Entra ID 사용합니다.
로컬 개발의 경우 SDK 예제를 실행하기 전에 Azure 로그인합니다.
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 설정은 Azure OpenAI Java 지원을 참조하세요.
임베딩을 생성하고 차원을 출력합니다.
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 ID 모듈의 버전 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 콘텐츠를 참조하세요.