Jak vygenerovat vkládání obrázků s využitím odvození modelu Azure AI
Důležité
Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.
Tento článek vysvětluje, jak používat rozhraní API pro vkládání obrázků s modely nasazenými do odvozování modelu Azure AI v Azure AI Foundry.
Požadavky
Pokud chcete ve své aplikaci používat vložené modely, potřebujete:
Předplatné Azure. Pokud používáte modely GitHubu, můžete prostředí upgradovat a v procesu vytvořit předplatné Azure. Pokud se jedná o váš případ, přečtěte si upgrade z modelů GitHubu na odvození modelu Azure AI.
Prostředek služeb Azure AI Další informace najdete v tématu Vytvoření prostředku Azure AI Services.
Adresa URL a klíč koncového bodu.
Nasazení modelu vkládání imagí. Pokud ho nemáte, přečtěte si článek Přidání a konfigurace modelů do služeb Azure AI a přidejte do prostředku model vkládání.
- Tento příklad používá
Cohere-embed-v3-english
cohere.
- Tento příklad používá
Nainstalujte balíček odvození Azure AI pomocí následujícího příkazu:
pip install -U azure-ai-inference
Použití vkládání
Nejprve vytvořte klienta, který bude model využívat. Následující kód používá adresu URL koncového bodu a klíč, které jsou uložené v proměnných prostředí.
import os
from azure.ai.inference import ImageEmbeddingsClient
from azure.core.credentials import AzureKeyCredential
model = ImageEmbeddingsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
model="Cohere-embed-v3-english"
)
Pokud jste nakonfigurovali prostředek na podporu Microsoft Entra ID , můžete k vytvoření klienta použít následující fragment kódu.
import os
from azure.ai.inference import ImageEmbeddingsClient
from azure.identity import DefaultAzureCredential
model = ImageEmbeddingsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=DefaultAzureCredential(),
model="Cohere-embed-v3-english"
)
Vytváření vložených objektů
Pokud chcete vytvořit vkládání obrázků, musíte v rámci požadavku předat data obrázku. Data obrázků by měla být ve formátu PNG a kódována jako base64.
from azure.ai.inference.models import ImageEmbeddingInput
image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
response = model.embed(
input=[ image_input ],
)
Tip
Při vytváření požadavku vezměte v úvahu vstupní limit tokenu pro model. Pokud potřebujete vložit větší části textu, budete potřebovat strategii vytváření bloků dat.
Odpověď je následující, kde vidíte statistiku využití 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)
Důležité
Výpočetní vkládání do dávek nemusí být podporováno pro všechny modely. Například pro cohere-embed-v3
model je třeba odeslat jeden obrázek najednou.
Vkládání obrázků a párů textu
Některé modely můžou generovat vkládání z obrázků a párů textu. V tomto případě můžete k předání obrázku a textu do modelu použít image
pole a text
pole v požadavku. Následující příklad ukazuje, jak vytvořit vkládání obrázků a párů textu:
text_image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
text_image_input.text = "A cute baby sea otter"
response = model.embed(
input=[ text_image_input ],
)
Vytváření různých typů vkládání
Některé modely můžou generovat více vkládání pro stejný vstup v závislosti na tom, jak je plánujete použít. Tato funkce umožňuje načíst přesnější vkládání pro vzory RAG.
Následující příklad ukazuje, jak vytvořit vkládání, které se používají k vytvoření vkládání pro dokument, který bude uložen ve vektorové databázi:
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=[ image_input ],
input_type=EmbeddingInputType.DOCUMENT,
)
Když pracujete na dotazu na načtení takového dokumentu, můžete pomocí následujícího fragmentu kódu vytvořit vkládání pro dotaz a maximalizovat výkon načítání.
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=[ image_input ],
input_type=EmbeddingInputType.QUERY,
)
Všimněte si, že ne všechny modely vkládání podporují indikující typ vstupu v požadavku a v těchto případech se vrátí chyba 422.
Důležité
Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.
Tento článek vysvětluje, jak používat rozhraní API pro vkládání obrázků s modely nasazenými do odvozování modelu Azure AI v Azure AI Foundry.
Požadavky
Pokud chcete ve své aplikaci používat vložené modely, potřebujete:
Předplatné Azure. Pokud používáte modely GitHubu, můžete prostředí upgradovat a v procesu vytvořit předplatné Azure. Pokud se jedná o váš případ, přečtěte si upgrade z modelů GitHubu na odvození modelu Azure AI.
Prostředek služeb Azure AI Další informace najdete v tématu Vytvoření prostředku Azure AI Services.
Adresa URL a klíč koncového bodu.
Nasazení modelu vkládání imagí. Pokud nemáte možnost Přidat a nakonfigurovat modely do služeb Azure AI, abyste do prostředku přidali model vkládání.
- Tento příklad používá
Cohere-embed-v3-english
cohere.
- Tento příklad používá
Pomocí následujícího příkazu nainstalujte knihovnu Azure Inference pro JavaScript:
npm install @azure-rest/ai-inference
Použití vkládání
Nejprve vytvořte klienta, který bude model využívat. Následující kód používá adresu URL koncového bodu a klíč, které jsou uložené v proměnných prostředí.
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),
"Cohere-embed-v3-english"
);
Pokud jste nakonfigurovali prostředek na podporu Microsoft Entra ID , můžete k vytvoření klienta použít následující fragment kódu.
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(),
"Cohere-embed-v3-english"
);
Vytváření vložených objektů
Pokud chcete vytvořit vkládání obrázků, musíte v rámci požadavku předat data obrázku. Data obrázků by měla být ve formátu PNG a kódována jako base64.
var image_path = "sample1.png";
var image_data = fs.readFileSync(image_path);
var image_data_base64 = Buffer.from(image_data).toString("base64");
var response = await client.path("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
}
});
Tip
Při vytváření požadavku vezměte v úvahu vstupní limit tokenu pro model. Pokud potřebujete vložit větší části textu, budete potřebovat strategii vytváření bloků dat.
Odpověď je následující, kde vidíte statistiku využití modelu:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Důležité
Výpočetní vkládání do dávek nemusí být podporováno pro všechny modely. Například pro cohere-embed-v3
model je třeba odeslat jeden obrázek najednou.
Vkládání obrázků a párů textu
Některé modely můžou generovat vkládání z obrázků a párů textu. V tomto případě můžete k předání obrázku a textu do modelu použít image
pole a text
pole v požadavku. Následující příklad ukazuje, jak vytvořit vkládání obrázků a párů textu:
var image_path = "sample1.png";
var image_data = fs.readFileSync(image_path);
var image_data_base64 = Buffer.from(image_data).toString("base64");
var response = await client.path("images/embeddings").post({
body: {
input: [
{
text: "A cute baby sea otter",
image: image_data_base64
}
]
}
});
Vytváření různých typů vkládání
Některé modely můžou generovat více vkládání pro stejný vstup v závislosti na tom, jak je plánujete použít. Tato funkce umožňuje načíst přesnější vkládání pro vzory RAG.
Následující příklad ukazuje, jak vytvořit vkládání, které se používají k vytvoření vkládání pro dokument, který bude uložen ve vektorové databázi:
var response = await client.path("/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "document",
}
});
Když pracujete na dotazu na načtení takového dokumentu, můžete pomocí následujícího fragmentu kódu vytvořit vkládání pro dotaz a maximalizovat výkon načítání.
var response = await client.path("/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "query",
}
});
Všimněte si, že ne všechny modely vkládání podporují indikující typ vstupu v požadavku a v těchto případech se vrátí chyba 422.
Poznámka:
Použití vkládání obrázků se podporuje jenom pomocí požadavků Pythonu, JavaScriptu nebo REST.
Poznámka:
Použití vkládání obrázků se podporuje jenom pomocí požadavků Pythonu, JavaScriptu nebo REST.
Důležité
Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.
Tento článek vysvětluje, jak používat rozhraní API pro vkládání obrázků s modely nasazenými do odvozování modelu Azure AI v Azure AI Foundry.
Požadavky
Pokud chcete ve své aplikaci používat vložené modely, potřebujete:
Předplatné Azure. Pokud používáte modely GitHubu, můžete prostředí upgradovat a v procesu vytvořit předplatné Azure. Pokud se jedná o váš případ, přečtěte si upgrade z modelů GitHubu na odvození modelu Azure AI.
Prostředek služeb Azure AI Další informace najdete v tématu Vytvoření prostředku Azure AI Services.
Adresa URL a klíč koncového bodu.
Nasazení modelu vkládání imagí. Pokud nemáte možnost Přidat a nakonfigurovat modely do služeb Azure AI, abyste do prostředku přidali model vkládání.
- Tento příklad používá
Cohere-embed-v3-english
cohere.
- Tento příklad používá
Použití vkládání
Pokud chcete použít vkládání textu, použijte trasu /images/embeddings
připojenou k základní adrese URL spolu s přihlašovacími údaji uvedenými v api-key
.
Authorization
záhlaví je podporováno také ve formátu Bearer <key>
.
POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
api-key: <key>
Pokud jste nakonfigurovali prostředek s podporou Microsoft Entra ID , předejte token v Authorization
hlavičce:
POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>
Vytváření vložených objektů
Pokud chcete vytvořit vkládání obrázků, musíte v rámci požadavku předat data obrázku. Data obrázků by měla být ve formátu PNG a kódována jako base64.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
]
}
Tip
Při vytváření požadavku vezměte v úvahu vstupní limit tokenu pro model. Pokud potřebujete vložit větší části textu, budete potřebovat strategii vytváření bloků dat.
Odpověď je následující, kde vidíte statistiku využití modelu:
{
"id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
"object": "list",
"data": [
{
"index": 0,
"object": "embedding",
"embedding": [
0.017196655,
// ...
-0.000687122,
-0.025054932,
-0.015777588
]
}
],
"model": "Cohere-embed-v3-english",
"usage": {
"prompt_tokens": 9,
"completion_tokens": 0,
"total_tokens": 9
}
}
Důležité
Výpočetní vkládání do dávek nemusí být podporováno pro všechny modely. Například pro cohere-embed-v3
model je třeba odeslat jeden obrázek najednou.
Vkládání obrázků a párů textu
Některé modely můžou generovat vkládání z obrázků a párů textu. V tomto případě můžete k předání obrázku a textu do modelu použít image
pole a text
pole v požadavku. Následující příklad ukazuje, jak vytvořit vkládání obrázků a párů textu:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
"text": "A photo of a cat"
}
]
}
Vytváření různých typů vkládání
Některé modely můžou generovat více vkládání pro stejný vstup v závislosti na tom, jak je plánujete použít. Tato funkce umožňuje načíst přesnější vkládání pro vzory RAG.
Následující příklad ukazuje, jak vytvořit vkládání, které se používají k vytvoření vkládání pro dokument, který bude uložen ve vektorové databázi:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "document"
}
Když pracujete na dotazu na načtení takového dokumentu, můžete pomocí následujícího fragmentu kódu vytvořit vkládání pro dotaz a maximalizovat výkon načítání.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "query"
}
Všimněte si, že ne všechny modely vkládání podporují indikující typ vstupu v požadavku a v těchto případech se vrátí chyba 422.