Jak wygenerować osadzanie przy użyciu wnioskowania modelu AI platformy Azure
Ważne
Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
W tym artykule wyjaśniono, jak używać interfejsu API osadzania z modelami wdrożonym w wnioskowaniu modelu AI platformy Azure w usługach azure AI.
Wymagania wstępne
Aby użyć modeli osadzania w aplikacji, potrzebne są następujące elementy:
Subskrypcja Azure. Jeśli używasz modeli GitHub, możesz uaktualnić środowisko i utworzyć subskrypcję platformy Azure w tym procesie. Przeczytaj artykuł Upgrade from GitHub Models to Azure AI model inference if's your case (Uaktualnianie modeli Usługi GitHub do wnioskowania modelu AI platformy Azure), jeśli tak jest.
Zasób usług AI platformy Azure. Aby uzyskać więcej informacji, zobacz Create an Azure AI Services resource (Tworzenie zasobu usług Azure AI Services).
Adres URL i klucz punktu końcowego.
Wdrożenie modelu osadzania. Jeśli nie masz jednego artykułu Dodawanie i konfigurowanie modeli w usługach Azure AI w celu dodania modelu osadzania do zasobu.
Zainstaluj pakiet wnioskowania usługi Azure AI za pomocą następującego polecenia:
pip install -U azure-ai-inference
Napiwek
Dowiedz się więcej na temat pakietu wnioskowania i dokumentacji dotyczącej wnioskowania na platformie Azure.
Korzystanie z osadzania
Najpierw utwórz klienta, aby korzystać z modelu. Poniższy kod używa adresu URL punktu końcowego i klucza przechowywanego w zmiennych środowiskowych.
import os
from azure.ai.inference import EmbeddingsClient
from azure.core.credentials import AzureKeyCredential
model = EmbeddingsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
model="text-embedding-3-small"
)
Jeśli zasób został skonfigurowany do obsługi identyfikatora Entra firmy Microsoft, możesz użyć następującego fragmentu kodu, aby utworzyć klienta.
import os
from azure.ai.inference import EmbeddingsClient
from azure.core.credentials import AzureKeyCredential
model = EmbeddingsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=DefaultAzureCredential(),
model="text-embedding-3-small"
)
Tworzenie osadzania
Utwórz żądanie osadzania, aby wyświetlić dane wyjściowe modelu.
response = model.embed(
input=["The ultimate answer to the question of life"],
)
Napiwek
Podczas tworzenia żądania należy wziąć pod uwagę limit danych wejściowych tokenu dla modelu. Jeśli musisz osadzić większe fragmenty tekstu, potrzebujesz strategii fragmentowania.
Odpowiedź jest następująca, gdzie można zobaczyć statystyki użycia modelu:
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)
Przydatne może być obliczanie osadzania w partiach wejściowych. Parametr inputs
może być listą ciągów, gdzie każdy ciąg jest innym wejściem. Z kolei odpowiedź jest listą osadzania, gdzie każde osadzanie odpowiada wejściu w tej samej pozycji.
response = model.embed(
input=[
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter",
],
)
Odpowiedź jest następująca, gdzie można zobaczyć statystyki użycia modelu:
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)
Napiwek
Podczas tworzenia partii żądań należy wziąć pod uwagę limit partii dla każdego z modeli. Większość modeli ma limit partii 1024.
Określanie wymiarów osadzania
Można określić liczbę wymiarów osadzania. Poniższy przykładowy kod pokazuje, jak utworzyć osadzanie z wymiarami 1024. Zwróć uwagę, że nie wszystkie modele osadzania obsługują liczbę wymiarów w żądaniu i w tych przypadkach zwracany jest błąd 422.
response = model.embed(
input=["The ultimate answer to the question of life"],
dimensions=1024,
)
Tworzenie różnych typów osadzania
Niektóre modele mogą generować wiele osadzeń dla tych samych danych wejściowych w zależności od tego, jak planujesz ich używać. Ta funkcja umożliwia pobieranie bardziej dokładnych osadzeń dla wzorców RAG.
W poniższym przykładzie pokazano, jak utworzyć osadzanie, które są używane do tworzenia osadzania dla dokumentu, który będzie przechowywany w bazie danych wektorów:
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,
)
Podczas pracy nad zapytaniem w celu pobrania takiego dokumentu możesz użyć następującego fragmentu kodu, aby utworzyć osadzanie dla zapytania i zmaksymalizować wydajność pobierania.
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=["What's the ultimate meaning of life?"],
input_type=EmbeddingInputType.QUERY,
)
Zwróć uwagę, że nie wszystkie modele osadzania obsługują typ danych wejściowych w żądaniu i w tych przypadkach zwracany jest błąd 422. Domyślnie zwracane są osadzania typów Text
.
Ważne
Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
W tym artykule wyjaśniono, jak używać interfejsu API osadzania z modelami wdrożonym w wnioskowaniu modelu AI platformy Azure w usługach azure AI.
Wymagania wstępne
Aby użyć modeli osadzania w aplikacji, potrzebne są następujące elementy:
Subskrypcja Azure. Jeśli używasz modeli GitHub, możesz uaktualnić środowisko i utworzyć subskrypcję platformy Azure w tym procesie. Przeczytaj artykuł Upgrade from GitHub Models to Azure AI model inference if's your case (Uaktualnianie modeli Usługi GitHub do wnioskowania modelu AI platformy Azure), jeśli tak jest.
Zasób usług AI platformy Azure. Aby uzyskać więcej informacji, zobacz Create an Azure AI Services resource (Tworzenie zasobu usług Azure AI Services).
Adres URL i klucz punktu końcowego.
Wdrożenie modelu osadzania. Jeśli nie masz jednego artykułu Dodawanie i konfigurowanie modeli w usługach Azure AI w celu dodania modelu osadzania do zasobu.
Zainstaluj bibliotekę wnioskowania platformy Azure dla języka JavaScript za pomocą następującego polecenia:
npm install @azure-rest/ai-inference
Napiwek
Dowiedz się więcej na temat pakietu wnioskowania i dokumentacji dotyczącej wnioskowania na platformie Azure.
Korzystanie z osadzania
Najpierw utwórz klienta, aby korzystać z modelu. Poniższy kod używa adresu URL punktu końcowego i klucza przechowywanego w zmiennych środowiskowych.
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),
"text-embedding-3-small"
);
Jeśli zasób został skonfigurowany do obsługi identyfikatora Entra firmy Microsoft, możesz użyć następującego fragmentu kodu, aby utworzyć klienta.
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(),
"text-embedding-3-small"
);
Tworzenie osadzania
Utwórz żądanie osadzania, aby wyświetlić dane wyjściowe modelu.
var response = await client.path("/embeddings").post({
body: {
input: ["The ultimate answer to the question of life"],
}
});
Napiwek
Podczas tworzenia żądania należy wziąć pod uwagę limit danych wejściowych tokenu dla modelu. Jeśli musisz osadzić większe fragmenty tekstu, potrzebujesz strategii fragmentowania.
Odpowiedź jest następująca, gdzie można zobaczyć statystyki użycia modelu:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Przydatne może być obliczanie osadzania w partiach wejściowych. Parametr inputs
może być listą ciągów, gdzie każdy ciąg jest innym wejściem. Z kolei odpowiedź jest listą osadzania, gdzie każde osadzanie odpowiada wejściu w tej samej pozycji.
var response = await client.path("/embeddings").post({
body: {
input: [
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter",
],
}
});
Odpowiedź jest następująca, gdzie można zobaczyć statystyki użycia modelu:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Napiwek
Podczas tworzenia partii żądań należy wziąć pod uwagę limit partii dla każdego z modeli. Większość modeli ma limit partii 1024.
Określanie wymiarów osadzania
Można określić liczbę wymiarów osadzania. Poniższy przykładowy kod pokazuje, jak utworzyć osadzanie z wymiarami 1024. Zwróć uwagę, że nie wszystkie modele osadzania obsługują liczbę wymiarów w żądaniu i w tych przypadkach zwracany jest błąd 422.
var response = await client.path("/embeddings").post({
body: {
input: ["The ultimate answer to the question of life"],
dimensions: 1024,
}
});
Tworzenie różnych typów osadzania
Niektóre modele mogą generować wiele osadzeń dla tych samych danych wejściowych w zależności od tego, jak planujesz ich używać. Ta funkcja umożliwia pobieranie bardziej dokładnych osadzeń dla wzorców RAG.
W poniższym przykładzie pokazano, jak utworzyć osadzanie, które są używane do tworzenia osadzania dla dokumentu, który będzie przechowywany w bazie danych wektorów:
var response = await client.path("/embeddings").post({
body: {
input: ["The answer to the ultimate question of life, the universe, and everything is 42"],
input_type: "document",
}
});
Podczas pracy nad zapytaniem w celu pobrania takiego dokumentu możesz użyć następującego fragmentu kodu, aby utworzyć osadzanie dla zapytania i zmaksymalizować wydajność pobierania.
var response = await client.path("/embeddings").post({
body: {
input: ["What's the ultimate meaning of life?"],
input_type: "query",
}
});
Zwróć uwagę, że nie wszystkie modele osadzania obsługują typ danych wejściowych w żądaniu i w tych przypadkach zwracany jest błąd 422. Domyślnie zwracane są osadzania typów Text
.
Ważne
Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
W tym artykule wyjaśniono, jak używać interfejsu API osadzania z modelami wdrożonym w wnioskowaniu modelu AI platformy Azure w usługach azure AI.
Wymagania wstępne
Aby użyć modeli osadzania w aplikacji, potrzebne są następujące elementy:
Subskrypcja Azure. Jeśli używasz modeli GitHub, możesz uaktualnić środowisko i utworzyć subskrypcję platformy Azure w tym procesie. Przeczytaj artykuł Upgrade from GitHub Models to Azure AI model inference if's your case (Uaktualnianie modeli Usługi GitHub do wnioskowania modelu AI platformy Azure), jeśli tak jest.
Zasób usług AI platformy Azure. Aby uzyskać więcej informacji, zobacz Create an Azure AI Services resource (Tworzenie zasobu usług Azure AI Services).
Adres URL i klucz punktu końcowego.
Wdrożenie modelu osadzania. Jeśli nie masz jednego artykułu Dodawanie i konfigurowanie modeli w usługach Azure AI w celu dodania modelu osadzania do zasobu.
Dodaj pakiet wnioskowania usługi Azure AI do projektu:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-ai-inference</artifactId> <version>1.0.0-beta.1</version> </dependency>
Napiwek
Dowiedz się więcej na temat pakietu wnioskowania i dokumentacji dotyczącej wnioskowania na platformie Azure.
Jeśli używasz identyfikatora Entra, potrzebujesz również następującego pakietu:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.13.3</version> </dependency>
Zaimportuj następującą przestrzeń nazw:
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;
Korzystanie z osadzania
Najpierw utwórz klienta, aby korzystać z modelu. Poniższy kod używa adresu URL punktu końcowego i klucza przechowywanego w zmiennych środowiskowych.
EmbeddingsClient client = new EmbeddingsClient(
URI.create(System.getProperty("AZURE_INFERENCE_ENDPOINT")),
new AzureKeyCredential(System.getProperty("AZURE_INFERENCE_CREDENTIAL")),
"text-embedding-3-small"
);
Jeśli zasób został skonfigurowany do obsługi identyfikatora Entra firmy Microsoft, możesz użyć następującego fragmentu kodu, aby utworzyć klienta.
client = new EmbeddingsClient(
URI.create(System.getProperty("AZURE_INFERENCE_ENDPOINT")),
new DefaultAzureCredential(),
"text-embedding-3-small"
);
Tworzenie osadzania
Utwórz żądanie osadzania, aby wyświetlić dane wyjściowe modelu.
EmbeddingsOptions requestOptions = new EmbeddingsOptions()
.setInput(Arrays.asList("The ultimate answer to the question of life"));
Response<EmbeddingsResult> response = client.embed(requestOptions);
Napiwek
Podczas tworzenia żądania należy wziąć pod uwagę limit danych wejściowych tokenu dla modelu. Jeśli musisz osadzić większe fragmenty tekstu, potrzebujesz strategii fragmentowania.
Odpowiedź jest następująca, gdzie można zobaczyć statystyki użycia modelu:
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());
Przydatne może być obliczanie osadzania w partiach wejściowych. Parametr inputs
może być listą ciągów, gdzie każdy ciąg jest innym wejściem. Z kolei odpowiedź jest listą osadzania, gdzie każde osadzanie odpowiada wejściu w tej samej pozycji.
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);
Odpowiedź jest następująca, gdzie można zobaczyć statystyki użycia modelu:
Napiwek
Podczas tworzenia partii żądań należy wziąć pod uwagę limit partii dla każdego z modeli. Większość modeli ma limit partii 1024.
Określanie wymiarów osadzania
Można określić liczbę wymiarów osadzania. Poniższy przykładowy kod pokazuje, jak utworzyć osadzanie z wymiarami 1024. Zwróć uwagę, że nie wszystkie modele osadzania obsługują liczbę wymiarów w żądaniu i w tych przypadkach zwracany jest błąd 422.
Tworzenie różnych typów osadzania
Niektóre modele mogą generować wiele osadzeń dla tych samych danych wejściowych w zależności od tego, jak planujesz ich używać. Ta funkcja umożliwia pobieranie bardziej dokładnych osadzeń dla wzorców RAG.
W poniższym przykładzie pokazano, jak utworzyć osadzanie, które są używane do tworzenia osadzania dla dokumentu, który będzie przechowywany w bazie danych wektorów:
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);
Podczas pracy nad zapytaniem w celu pobrania takiego dokumentu możesz użyć następującego fragmentu kodu, aby utworzyć osadzanie dla zapytania i zmaksymalizować wydajność pobierania.
input = Arrays.asList("What's the ultimate meaning of life?");
requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.QUERY);
response = client.embed(requestOptions);
Zwróć uwagę, że nie wszystkie modele osadzania obsługują typ danych wejściowych w żądaniu i w tych przypadkach zwracany jest błąd 422. Domyślnie zwracane są osadzania typów Text
.
Ważne
Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
W tym artykule wyjaśniono, jak używać interfejsu API osadzania z modelami wdrożonym w wnioskowaniu modelu AI platformy Azure w usługach azure AI.
Wymagania wstępne
Aby użyć modeli osadzania w aplikacji, potrzebne są następujące elementy:
Subskrypcja Azure. Jeśli używasz modeli GitHub, możesz uaktualnić środowisko i utworzyć subskrypcję platformy Azure w tym procesie. Przeczytaj artykuł Upgrade from GitHub Models to Azure AI model inference if's your case (Uaktualnianie modeli Usługi GitHub do wnioskowania modelu AI platformy Azure), jeśli tak jest.
Zasób usług AI platformy Azure. Aby uzyskać więcej informacji, zobacz Create an Azure AI Services resource (Tworzenie zasobu usług Azure AI Services).
Adres URL i klucz punktu końcowego.
Wdrożenie modelu osadzania. Jeśli nie masz jednego artykułu Dodawanie i konfigurowanie modeli w usługach Azure AI w celu dodania modelu osadzania do zasobu.
Zainstaluj pakiet wnioskowania usługi Azure AI za pomocą następującego polecenia:
dotnet add package Azure.AI.Inference --prerelease
Napiwek
Dowiedz się więcej na temat pakietu wnioskowania i dokumentacji dotyczącej wnioskowania na platformie Azure.
Jeśli używasz identyfikatora Entra, potrzebujesz również następującego pakietu:
dotnet add package Azure.Identity
Korzystanie z osadzania
Najpierw utwórz klienta, aby korzystać z modelu. Poniższy kod używa adresu URL punktu końcowego i klucza przechowywanego w zmiennych środowiskowych.
EmbeddingsClient client = new EmbeddingsClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL")),
"text-embedding-3-small"
);
Jeśli zasób został skonfigurowany do obsługi identyfikatora Entra firmy Microsoft, możesz użyć następującego fragmentu kodu, aby utworzyć klienta.
client = new EmbeddingsClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
new DefaultAzureCredential(includeInteractiveCredentials: true),
"text-embedding-3-small"
);
Tworzenie osadzania
Utwórz żądanie osadzania, aby wyświetlić dane wyjściowe modelu.
EmbeddingsOptions requestOptions = new EmbeddingsOptions()
{
Input = {
"The ultimate answer to the question of life"
},
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Napiwek
Podczas tworzenia żądania należy wziąć pod uwagę limit danych wejściowych tokenu dla modelu. Jeśli musisz osadzić większe fragmenty tekstu, potrzebujesz strategii fragmentowania.
Odpowiedź jest następująca, gdzie można zobaczyć statystyki użycia modelu:
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}");
Przydatne może być obliczanie osadzania w partiach wejściowych. Parametr inputs
może być listą ciągów, gdzie każdy ciąg jest innym wejściem. Z kolei odpowiedź jest listą osadzania, gdzie każde osadzanie odpowiada wejściu w tej samej pozycji.
EmbeddingsOptions requestOptions = new EmbeddingsOptions()
{
Input = {
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter"
},
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Odpowiedź jest następująca, gdzie można zobaczyć statystyki użycia modelu:
Napiwek
Podczas tworzenia partii żądań należy wziąć pod uwagę limit partii dla każdego z modeli. Większość modeli ma limit partii 1024.
Określanie wymiarów osadzania
Można określić liczbę wymiarów osadzania. Poniższy przykładowy kod pokazuje, jak utworzyć osadzanie z wymiarami 1024. Zwróć uwagę, że nie wszystkie modele osadzania obsługują liczbę wymiarów w żądaniu i w tych przypadkach zwracany jest błąd 422.
Tworzenie różnych typów osadzania
Niektóre modele mogą generować wiele osadzeń dla tych samych danych wejściowych w zależności od tego, jak planujesz ich używać. Ta funkcja umożliwia pobieranie bardziej dokładnych osadzeń dla wzorców RAG.
W poniższym przykładzie pokazano, jak utworzyć osadzanie, które są używane do tworzenia osadzania dla dokumentu, który będzie przechowywany w bazie danych wektorów:
var input = new List<string> {
"The answer to the ultimate question of life, the universe, and everything is 42"
};
var requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.DOCUMENT);
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Podczas pracy nad zapytaniem w celu pobrania takiego dokumentu możesz użyć następującego fragmentu kodu, aby utworzyć osadzanie dla zapytania i zmaksymalizować wydajność pobierania.
var input = new List<string> {
"What's the ultimate meaning of life?"
};
var requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.QUERY);
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Zwróć uwagę, że nie wszystkie modele osadzania obsługują typ danych wejściowych w żądaniu i w tych przypadkach zwracany jest błąd 422. Domyślnie zwracane są osadzania typów Text
.
Ważne
Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
W tym artykule wyjaśniono, jak używać interfejsu API osadzania z modelami wdrożonym w wnioskowaniu modelu AI platformy Azure w usługach azure AI.
Wymagania wstępne
Aby użyć modeli osadzania w aplikacji, potrzebne są następujące elementy:
Subskrypcja Azure. Jeśli używasz modeli GitHub, możesz uaktualnić środowisko i utworzyć subskrypcję platformy Azure w tym procesie. Przeczytaj artykuł Upgrade from GitHub Models to Azure AI model inference if's your case (Uaktualnianie modeli Usługi GitHub do wnioskowania modelu AI platformy Azure), jeśli tak jest.
Zasób usług AI platformy Azure. Aby uzyskać więcej informacji, zobacz Create an Azure AI Services resource (Tworzenie zasobu usług Azure AI Services).
Adres URL i klucz punktu końcowego.
- Wdrożenie modelu osadzania. Jeśli nie masz jednego artykułu Dodawanie i konfigurowanie modeli w usługach Azure AI w celu dodania modelu osadzania do zasobu.
Korzystanie z osadzania
Aby użyć osadzania tekstu, użyj trasy /embeddings
dołączonej do podstawowego adresu URL wraz z poświadczeniami wskazanymi w pliku api-key
.
Authorization
nagłówek jest również obsługiwany w formacie Bearer <key>
.
POST https://<resource>.services.ai.azure.com/models/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
api-key: <key>
Jeśli skonfigurowano zasób z obsługą identyfikatora Entra firmy Microsoft, przekaż token w nagłówkuAuthorization
:
POST https://<resource>.services.ai.azure.com/models/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>
Tworzenie osadzania
Utwórz żądanie osadzania, aby wyświetlić dane wyjściowe modelu.
{
"model": "text-embedding-3-small",
"input": [
"The ultimate answer to the question of life"
]
}
Napiwek
Podczas tworzenia żądania należy wziąć pod uwagę limit danych wejściowych tokenu dla modelu. Jeśli musisz osadzić większe fragmenty tekstu, potrzebujesz strategii fragmentowania.
Odpowiedź jest następująca, gdzie można zobaczyć statystyki użycia modelu:
{
"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
}
}
Przydatne może być obliczanie osadzania w partiach wejściowych. Parametr inputs
może być listą ciągów, gdzie każdy ciąg jest innym wejściem. Z kolei odpowiedź jest listą osadzania, gdzie każde osadzanie odpowiada wejściu w tej samej pozycji.
{
"model": "text-embedding-3-small",
"input": [
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter"
]
}
Odpowiedź jest następująca, gdzie można zobaczyć statystyki użycia modelu:
{
"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
}
}
Napiwek
Podczas tworzenia partii żądań należy wziąć pod uwagę limit partii dla każdego z modeli. Większość modeli ma limit partii 1024.
Określanie wymiarów osadzania
Można określić liczbę wymiarów osadzania. Poniższy przykładowy kod pokazuje, jak utworzyć osadzanie z wymiarami 1024. Zwróć uwagę, że nie wszystkie modele osadzania obsługują liczbę wymiarów w żądaniu i w tych przypadkach zwracany jest błąd 422.
{
"model": "text-embedding-3-small",
"input": [
"The ultimate answer to the question of life"
],
"dimensions": 1024
}
Tworzenie różnych typów osadzania
Niektóre modele mogą generować wiele osadzeń dla tych samych danych wejściowych w zależności od tego, jak planujesz ich używać. Ta funkcja umożliwia pobieranie bardziej dokładnych osadzeń dla wzorców RAG.
W poniższym przykładzie pokazano, jak utworzyć osadzanie, które są używane do tworzenia osadzania dla dokumentu, który będzie przechowywany w bazie danych wektorów. Ponieważ text-embedding-3-small
ta funkcja nie obsługuje, używamy modelu osadzania z aplikacji Cohere w poniższym przykładzie:
{
"model": "cohere-embed-v3-english",
"input": [
"The answer to the ultimate question of life, the universe, and everything is 42"
],
"input_type": "document"
}
Podczas pracy nad zapytaniem w celu pobrania takiego dokumentu możesz użyć następującego fragmentu kodu, aby utworzyć osadzanie dla zapytania i zmaksymalizować wydajność pobierania. Ponieważ text-embedding-3-small
ta funkcja nie obsługuje, używamy modelu osadzania z aplikacji Cohere w poniższym przykładzie:
{
"model": "cohere-embed-v3-english",
"input": [
"What's the ultimate meaning of life?"
],
"input_type": "query"
}
Zwróć uwagę, że nie wszystkie modele osadzania obsługują typ danych wejściowych w żądaniu i w tych przypadkach zwracany jest błąd 422. Domyślnie zwracane są osadzania typów Text
.