Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Den här artikeln beskriver hur du använder API för inbäddning med modeller som distribuerats i Azure AI Foundry Models.
Förutsättningar
För att använda inbäddningsmodeller i din applikation behöver du:
Ett Azure-abonnemang. Om du använder GitHub-modeller kan du uppgradera din upplevelse och skapa en Azure-prenumeration i processen. Läs Uppgradera från GitHub-modeller till Azure AI Foundry-modeller om så är fallet.
Ett Azure AI Foundry-projekt. Den här typen av projekt hanteras under en Azure AI Foundry-resurs (kallades tidigare Azure AI Services-resurs). Om du inte har ett Foundry-projekt kan du läsa Skapa ett projekt för Azure AI Foundry (Foundry-projekt).
Slutpunktens URL.
Slutpunktens nyckel (om du väljer att använda API-nyckeln för autentisering).
Installera Azure AI-slutsatsdragningspaketet för Python med följande kommando:
pip install -U azure-ai-inference
- Distribution av en embeddingsmodell. Om du inte redan har någon, läs Lägg till och konfigurera Foundry Models för att lägga till en inbäddningsmodell i resursen.
Använd inbäddningar
Skapa först klienten för att använda modellen. I följande kod används en slutpunkts-URL och nyckel som lagras i miljövariabler.
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"
)
Om du har konfigurerat resursen med stöd för Microsoft Entra ID, kan du använda följande kodsnutt för att skapa en klient.
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"
)
Skapa inbäddningar
Skapa en inbäddningsbegäran för att se modellens resultat.
response = model.embed(
input=["The ultimate answer to the question of life"],
)
Tips/Råd
När du skapar en begäran tar du hänsyn till tokens indatagräns för modellen. Om du behöver bädda in större delar av text behöver du en segmenteringsstrategi.
Svaret är följande, där du kan se modellens användningsstatistik:
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)
Det kan vara användbart att beräkna inbäddningar i inmatningsbuntar. Parametern inputs kan vara en lista med strängar, där varje sträng är en annan inmatning. Som svar får man en lista med inbäddningar, där varje inbäddning motsvarar ett indata på samma position.
response = model.embed(
input=[
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter",
],
)
Svaret är följande, där du kan se modellens användningsstatistik:
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)
Tips/Råd
När du skapar batcher av förfrågningar, ta hänsyn till batchgränsen för varje modell. De flesta modeller har en begränsning på 1024 batchar.
Ange inbäddningsdimensioner
Du kan ange antalet dimensioner för inbäddningarna. Följande exempel kod visar hur man skapar embeddingar med 1024 dimensioner. Observera att inte alla inbäddningsmodeller stödjer att ange antalet dimensioner i begäran, och i dessa fall returneras ett 422-fel.
response = model.embed(
input=["The ultimate answer to the question of life"],
dimensions=1024,
)
Skapa olika typer av inbäddningar
Vissa modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.
I följande exempel visas hur du skapar inbäddningar som används för att skapa en inbäddning för ett dokument som ska lagras i en vektordatabas:
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,
)
När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan.
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=["What's the ultimate meaning of life?"],
input_type=EmbeddingInputType.QUERY,
)
Observera att inte alla inbäddningsmodeller stöder att ange inputtyp i förfrågan och i dessa fall returneras ett 422-fel. Som standard returneras inbäddningar av typen Text.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Den här artikeln beskriver hur du använder API för inbäddning med modeller som distribuerats i Azure AI Foundry Models.
Förutsättningar
För att använda inbäddningsmodeller i din applikation behöver du:
Ett Azure-abonnemang. Om du använder GitHub-modeller kan du uppgradera din upplevelse och skapa en Azure-prenumeration i processen. Läs Uppgradera från GitHub-modeller till Azure AI Foundry-modeller om så är fallet.
Ett Azure AI Foundry-projekt. Den här typen av projekt hanteras under en Azure AI Foundry-resurs (kallades tidigare Azure AI Services-resurs). Om du inte har ett Foundry-projekt kan du läsa Skapa ett projekt för Azure AI Foundry (Foundry-projekt).
Slutpunktens URL.
Slutpunktens nyckel (om du väljer att använda API-nyckeln för autentisering).
Installera Azure Inference-biblioteket för JavaScript med följande kommando:
npm install @azure-rest/ai-inference npm install @azure/core-auth npm install @azure/identityOm du använder Node.jskan du konfigurera beroendena i 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" } }Importera följande:
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";
- Distribution av en embeddingsmodell. Om du inte redan har någon, läs Lägg till och konfigurera Foundry Models för att lägga till en inbäddningsmodell i resursen.
Använd inbäddningar
Skapa först klienten för att använda modellen. I följande kod används en slutpunkts-URL och nyckel som lagras i miljövariabler.
const client = ModelClient(
"https://<resource>.services.ai.azure.com/models",
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);
Om du har konfigurerat resursen med Microsoft Entra ID-stöd kan du använda följande kodfragment för att skapa en klient.
const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };
const client = ModelClient(
"https://<resource>.services.ai.azure.com/models",
new DefaultAzureCredential()
clientOptions,
);
Skapa inbäddningar
Skapa en inbäddningsbegäran för att se modellens resultat.
var response = await client.path("/embeddings").post({
body: {
model: "text-embedding-3-small",
input: ["The ultimate answer to the question of life"],
}
});
Tips/Råd
När du skapar en begäran tar du hänsyn till tokens indatagräns för modellen. Om du behöver bädda in större delar av text behöver du en segmenteringsstrategi.
Svaret är följande, där du kan se modellens användningsstatistik:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Det kan vara användbart att beräkna inbäddningar i inmatningsbuntar. Parametern inputs kan vara en lista med strängar, där varje sträng är en annan inmatning. Som svar får man en lista med inbäddningar, där varje inbäddning motsvarar ett indata på samma position.
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",
],
}
});
Svaret är följande, där du kan se modellens användningsstatistik:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Tips/Råd
När du skapar batcher av förfrågningar, ta hänsyn till batchgränsen för varje modell. De flesta modeller har en begränsning på 1024 batchar.
Ange inbäddningsdimensioner
Du kan ange antalet dimensioner för inbäddningarna. Följande exempel kod visar hur man skapar embeddingar med 1024 dimensioner. Observera att inte alla inbäddningsmodeller stödjer att ange antalet dimensioner i begäran, och i dessa fall returneras ett 422-fel.
var response = await client.path("/embeddings").post({
body: {
model: "text-embedding-3-small",
input: ["The ultimate answer to the question of life"],
dimensions: 1024,
}
});
Skapa olika typer av inbäddningar
Vissa modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.
I följande exempel visas hur du skapar inbäddningar som används för att skapa en inbäddning för ett dokument som ska lagras i en vektordatabas:
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",
}
});
När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan.
var response = await client.path("/embeddings").post({
body: {
model: "text-embedding-3-small",
input: ["What's the ultimate meaning of life?"],
input_type: "query",
}
});
Observera att inte alla inbäddningsmodeller stöder att ange inputtyp i förfrågan och i dessa fall returneras ett 422-fel. Som standard returneras inbäddningar av typen Text.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Den här artikeln beskriver hur du använder API för inbäddning med modeller som distribuerats i Azure AI Foundry Models.
Förutsättningar
För att använda inbäddningsmodeller i din applikation behöver du:
Ett Azure-abonnemang. Om du använder GitHub-modeller kan du uppgradera din upplevelse och skapa en Azure-prenumeration i processen. Läs Uppgradera från GitHub-modeller till Azure AI Foundry-modeller om så är fallet.
Ett Azure AI Foundry-projekt. Den här typen av projekt hanteras under en Azure AI Foundry-resurs (kallades tidigare Azure AI Services-resurs). Om du inte har ett Foundry-projekt kan du läsa Skapa ett projekt för Azure AI Foundry (Foundry-projekt).
Slutpunktens URL.
Slutpunktens nyckel (om du väljer att använda API-nyckeln för autentisering).
Lägg till Azure AI-slutsatsdragningspaketet i projektet:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-ai-inference</artifactId> <version>1.0.0-beta.4</version> </dependency>Om du använder Entra ID behöver du också följande paket:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.15.3</version> </dependency>Importera följande namnområde:
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;
Importera följande namnområde:
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;Distribution av en embeddingsmodell. Om du inte redan har någon, läs Lägg till och konfigurera Foundry Models för att lägga till en inbäddningsmodell i resursen.
Använd inbäddningar
Skapa först klienten för att använda modellen. I följande kod används en slutpunkts-URL och nyckel som lagras i miljövariabler.
EmbeddingsClient client = new EmbeddingsClient(
URI.create(System.getProperty("AZURE_INFERENCE_ENDPOINT")),
new AzureKeyCredential(System.getProperty("AZURE_INFERENCE_CREDENTIAL")),
"text-embedding-3-small"
);
Om du har konfigurerat resursen med stöd för Microsoft Entra ID, kan du använda följande kodsnutt för att skapa en klient.
client = new EmbeddingsClient(
URI.create(System.getProperty("AZURE_INFERENCE_ENDPOINT")),
new DefaultAzureCredential(),
"text-embedding-3-small"
);
Skapa inbäddningar
Skapa en inbäddningsbegäran för att se modellens resultat.
EmbeddingsOptions requestOptions = new EmbeddingsOptions()
.setInput(Arrays.asList("The ultimate answer to the question of life"));
Response<EmbeddingsResult> response = client.embed(requestOptions);
Tips/Råd
När du skapar en begäran tar du hänsyn till tokens indatagräns för modellen. Om du behöver bädda in större delar av text behöver du en segmenteringsstrategi.
Svaret är följande, där du kan se modellens användningsstatistik:
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());
Det kan vara användbart att beräkna inbäddningar i inmatningsbuntar. Parametern inputs kan vara en lista med strängar, där varje sträng är en annan inmatning. Som svar får man en lista med inbäddningar, där varje inbäddning motsvarar ett indata på samma position.
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);
Svaret är följande, där du kan se modellens användningsstatistik:
Tips/Råd
När du skapar batcher av förfrågningar, ta hänsyn till batchgränsen för varje modell. De flesta modeller har en begränsning på 1024 batchar.
Ange inbäddningsdimensioner
Du kan ange antalet dimensioner för inbäddningarna. Följande exempel kod visar hur man skapar embeddingar med 1024 dimensioner. Observera att inte alla inbäddningsmodeller stödjer att ange antalet dimensioner i begäran, och i dessa fall returneras ett 422-fel.
Skapa olika typer av inbäddningar
Vissa modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.
I följande exempel visas hur du skapar inbäddningar som används för att skapa en inbäddning för ett dokument som ska lagras i en vektordatabas:
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);
När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan.
input = Arrays.asList("What's the ultimate meaning of life?");
requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.QUERY);
response = client.embed(requestOptions);
Observera att inte alla inbäddningsmodeller stöder att ange inputtyp i förfrågan och i dessa fall returneras ett 422-fel. Som standard returneras inbäddningar av typen Text.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Den här artikeln beskriver hur du använder API för inbäddning med modeller som distribuerats i Azure AI Foundry Models.
Förutsättningar
För att använda inbäddningsmodeller i din applikation behöver du:
Ett Azure-abonnemang. Om du använder GitHub-modeller kan du uppgradera din upplevelse och skapa en Azure-prenumeration i processen. Läs Uppgradera från GitHub-modeller till Azure AI Foundry-modeller om så är fallet.
Ett Azure AI Foundry-projekt. Den här typen av projekt hanteras under en Azure AI Foundry-resurs (kallades tidigare Azure AI Services-resurs). Om du inte har ett Foundry-projekt kan du läsa Skapa ett projekt för Azure AI Foundry (Foundry-projekt).
Slutpunktens URL.
Slutpunktens nyckel (om du väljer att använda API-nyckeln för autentisering).
Installera Azure AI-slutsatsdragningspaketet med följande kommando:
dotnet add package Azure.AI.Inference --prereleaseOm du använder Entra ID behöver du också följande paket:
dotnet add package Azure.Identity
- Distribution av en embeddingsmodell. Om du inte redan har någon, läs Lägg till och konfigurera Foundry Models för att lägga till en inbäddningsmodell i resursen.
Använd inbäddningar
Skapa först klienten för att använda modellen. I följande kod används en slutpunkts-URL och nyckel som lagras i miljövariabler.
EmbeddingsClient client = new EmbeddingsClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Om du har konfigurerat resursen till med Stöd för Microsoft Entra-ID kan du använda följande kodfragment för att skapa en klient. Observera att här är includeInteractiveCredentials inställt till true endast för demonstrationsändamål så att autentisering kan ske med hjälp av webbläsaren. På produktionsarbetslaster bör du ta bort en sådan 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);
client = new EmbeddingsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
credential,
clientOptions,
);
Skapa inbäddningar
Skapa en inbäddningsbegäran för att se modellens resultat.
EmbeddingsOptions requestOptions = new EmbeddingsOptions()
{
Input = {
"The ultimate answer to the question of life"
},
Model = "text-embedding-3-small"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Tips/Råd
När du skapar en begäran tar du hänsyn till tokens indatagräns för modellen. Om du behöver bädda in större delar av text behöver du en segmenteringsstrategi.
Svaret är följande, där du kan se modellens användningsstatistik:
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}");
Det kan vara användbart att beräkna inbäddningar i inmatningsbuntar. Parametern inputs kan vara en lista med strängar, där varje sträng är en annan inmatning. Som svar får man en lista med inbäddningar, där varje inbäddning motsvarar ett indata på samma position.
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);
Svaret är följande, där du kan se modellens användningsstatistik:
Tips/Råd
När du skapar batcher av förfrågningar, ta hänsyn till batchgränsen för varje modell. De flesta modeller har en begränsning på 1024 batchar.
Ange inbäddningsdimensioner
Du kan ange antalet dimensioner för inbäddningarna. Följande exempel kod visar hur man skapar embeddingar med 1024 dimensioner. Observera att inte alla inbäddningsmodeller stödjer att ange antalet dimensioner i begäran, och i dessa fall returneras ett 422-fel.
Skapa olika typer av inbäddningar
Vissa modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.
I följande exempel visas hur du skapar inbäddningar som används för att skapa en inbäddning för ett dokument som ska lagras i en vektordatabas:
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);
När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan.
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);
Observera att inte alla inbäddningsmodeller stöder att ange inputtyp i förfrågan och i dessa fall returneras ett 422-fel. Som standard returneras inbäddningar av typen Text.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Den här artikeln beskriver hur du använder API för inbäddning med modeller som distribuerats i Azure AI Foundry Models.
Förutsättningar
För att använda inbäddningsmodeller i din applikation behöver du:
Ett Azure-abonnemang. Om du använder GitHub-modeller kan du uppgradera din upplevelse och skapa en Azure-prenumeration i processen. Läs Uppgradera från GitHub-modeller till Azure AI Foundry-modeller om så är fallet.
Ett Azure AI Foundry-projekt. Den här typen av projekt hanteras under en Azure AI Foundry-resurs (kallades tidigare Azure AI Services-resurs). Om du inte har ett Foundry-projekt kan du läsa Skapa ett projekt för Azure AI Foundry (Foundry-projekt).
Slutpunktens URL.
Slutpunktens nyckel (om du väljer att använda API-nyckeln för autentisering).
- Distribution av en embeddingsmodell. Om du inte redan har någon, läs Lägg till och konfigurera Foundry Models för att lägga till en inbäddningsmodell i resursen.
Använd inbäddningar
För att använda textinbäddningarna, använd rutten /embeddings som läggs till den grundläggande URL:en tillsammans med dina referenser som anges i api-key.
Authorization -huvudet stöds också med formatet Bearer <key>.
POST https://<resource>.services.ai.azure.com/models/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
api-key: <key>
Om du har konfigurerat resursen med Microsoft Entra ID-stöd, skickar du din token i Authorization-rubriken med formatet Bearer <token>. Använd omfång 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>
Användning av Microsoft Entra-ID kan kräva ytterligare konfiguration i resursen för att bevilja åtkomst. Lär dig hur du konfigurerar nyckellös autentisering med Microsoft Entra-ID.
Skapa inbäddningar
Skapa en inbäddningsbegäran för att se modellens resultat.
{
"model": "text-embedding-3-small",
"input": [
"The ultimate answer to the question of life"
]
}
Tips/Råd
När du skapar en begäran tar du hänsyn till tokens indatagräns för modellen. Om du behöver bädda in större delar av text behöver du en segmenteringsstrategi.
Svaret är följande, där du kan se modellens användningsstatistik:
{
"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
}
}
Det kan vara användbart att beräkna inbäddningar i inmatningsbuntar. Parametern inputs kan vara en lista med strängar, där varje sträng är en annan inmatning. Som svar får man en lista med inbäddningar, där varje inbäddning motsvarar ett indata på samma position.
{
"model": "text-embedding-3-small",
"input": [
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter"
]
}
Svaret är följande, där du kan se modellens användningsstatistik:
{
"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
}
}
Tips/Råd
När du skapar batcher av förfrågningar, ta hänsyn till batchgränsen för varje modell. De flesta modeller har en begränsning på 1024 batchar.
Ange inbäddningsdimensioner
Du kan ange antalet dimensioner för inbäddningarna. Följande exempel kod visar hur man skapar embeddingar med 1024 dimensioner. Observera att inte alla inbäddningsmodeller stödjer att ange antalet dimensioner i begäran, och i dessa fall returneras ett 422-fel.
{
"model": "text-embedding-3-small",
"input": [
"The ultimate answer to the question of life"
],
"dimensions": 1024
}
Skapa olika typer av inbäddningar
Vissa modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.
Följande exempel visar hur man skapar inbäddningar som används för att skapa en inbäddning för ett dokument som kommer att lagras i en vektordatabas. Eftersom text-embedding-3-small inte stödjer denna kapabilitet, använder vi en inbäddningsmodell från Cohere i följande exempel:
{
"model": "cohere-embed-v3-english",
"input": [
"The answer to the ultimate question of life, the universe, and everything is 42"
],
"input_type": "document"
}
När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan. Eftersom text-embedding-3-small inte stödjer denna kapabilitet, använder vi en inbäddningsmodell från Cohere i följande exempel:
{
"model": "cohere-embed-v3-english",
"input": [
"What's the ultimate meaning of life?"
],
"input_type": "query"
}
Observera att inte alla inbäddningsmodeller stöder att ange inputtyp i förfrågan och i dessa fall returneras ett 422-fel. Som standard returneras inbäddningar av typen Text.