Udostępnij za pośrednictwem


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:

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:

  • 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:

  • 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:

  • 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:

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 .