Aracılığıyla paylaş


Azure AI Foundry Modelleri ile görüntü ekleme oluşturma

Önemli

Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Bu makalede Azure AI Foundry Modelleriyle görüntü ekleme API'sini kullanma açıklanmaktadır.

Önkoşullar

Uygulamanıza ekleme modellerini kullanmak için şunları yapmanız gerekir:

  • Görüntü ekleme modeli dağıtımı. Ekleme modeli yoksa, kaynaklarınıza bir gömme modeli eklemek için Foundry Modelleri Ekleme ve Yapılandırma bölümünü okuyun.

    • Bu örnekte Cohere'dan Cohere-embed-v3-english kullanılır.

Görüntü eklemeleri kullanma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

import os
from azure.ai.inference import ImageEmbeddingsClient
from azure.core.credentials import AzureKeyCredential

client = ImageEmbeddingsClient(
    endpoint="https://<resource>.services.ai.azure.com/models",
    credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
    model="Cohere-embed-v3-english"
)

Kaynağı Microsoft Entra ID desteğiyle olarak yapılandırdıysanız, istemci oluşturmak için aşağıdaki kod parçacığını kullanabilirsiniz.

import os
from azure.ai.inference import ImageEmbeddingsClient
from azure.identity import DefaultAzureCredential

client = ImageEmbeddingsClient(
    endpoint="https://<resource>.services.ai.azure.com/models",
    credential=DefaultAzureCredential(),
    model="Cohere-embed-v3-english"
)

Gömüler oluştur

Görüntü eklemeleri oluşturmak için, isteğinizin bir parçası olarak görüntü verilerini geçirmeniz gerekir. Görüntü verileri PNG biçiminde olmalı ve base64 olarak kodlanmalıdır.

from azure.ai.inference.models import ImageEmbeddingInput

image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
response = client.embed(
    input=[ image_input ],
)

Tavsiye

İstek oluştururken, belirtecin model için giriş sınırını dikkate alın. Metnin daha büyük bölümlerini eklemeniz gerekiyorsa bir öbekleme stratejisine ihtiyacınız olacaktır.

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

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)

Önemli

Toplu halde gömme hesaplama işlemleri tüm modeller için desteklenmeyebilir. Örneğin, Cohere-embed-v3-english model için bir görüntüyü bir kerede göndermeniz gerekir.

Resimleri ve metin çiftlerini ekleme

Bazı modeller görüntülerden ve metin çiftlerinden eklemeler oluşturabilir. Bu durumda, görüntü ve metni modele aktarmak için istekteki image ve text alanlarını kullanabilirsiniz. Aşağıdaki örnekte görüntüler ve metin çiftleri için eklemelerin nasıl oluşturulacağı gösterilmektedir:

text_image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
text_image_input.text = "A cute baby sea otter"
response = client.embed(
    input=[ text_image_input ],
)

Farklı türlerde eklemeler oluşturma

Bazı modeller, bunları nasıl kullanmayı planladığınıza bağlı olarak aynı giriş için birden çok ekleme oluşturabilir. Bu özellik, RAG desenleri için daha doğru eklemeler almanıza olanak tanır.

Aşağıdaki örnekte, vektör veritabanında depolanacak bir belge için ekleme oluşturmak için kullanılan eklemelerin nasıl oluşturulacağı gösterilmektedir:

from azure.ai.inference.models import EmbeddingInputType

response = client.embed(
    input=[ image_input ],
    input_type=EmbeddingInputType.DOCUMENT,
)

Böyle bir belgeyi almak üzere bir sorgu üzerinde çalışırken, aşağıdaki kod parçacığını kullanarak sorguya yönelik eklemeleri oluşturabilir ve alma performansını en üst düzeye çıkarabilirsiniz.

from azure.ai.inference.models import EmbeddingInputType

response = client.embed(
    input=[ image_input ],
    input_type=EmbeddingInputType.QUERY,
)

Tüm ekleme modellerinin istekteki giriş türünü göstermeyi desteklemediğini ve bu durumlarda bir 422 hatası döndürüldüğünü fark edin.

Önemli

Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Bu makalede Azure AI Foundry Modelleriyle görüntü ekleme API'sini kullanma açıklanmaktadır.

Önkoşullar

Uygulamanıza ekleme modellerini kullanmak için şunları yapmanız gerekir:

  • Aşağıdaki komutla JavaScript için Azure Çıkarım kitaplığını yükleyin:

    npm install @azure-rest/ai-inference
    npm install @azure/core-auth
    npm install @azure/identity
    

    Node.jskullanıyorsanız, bağımlılıkları package.json'de yapılandırabilirsiniz:

    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"
      }
    }
    
  • Aşağıdakileri içeri aktarın:

    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";
    
  • Görüntü ekleme modeli dağıtımı. Eğer bir tane yoksa, kaynağınıza bir yerleştirme modeli eklemek için Dökümhane Modelleri Ekleme ve Yapılandırma dökümanını okuyun.

    • Bu örnekte Cohere'dan Cohere-embed-v3-english kullanılır.

Görüntü eklemeleri kullanma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

const client = ModelClient(
    "https://<resource>.services.ai.azure.com/models", 
    new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);

Kaynağı Microsoft Entra ID desteğiyle yapılandırdıysanız, istemci oluşturmak için aşağıdaki kod parçacığını kullanabilirsiniz.

const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };

const client = ModelClient(
    "https://<resource>.services.ai.azure.com/models", 
    new DefaultAzureCredential()
    clientOptions,
);

Gömüler oluştur

Görüntü eklemeleri oluşturmak için, isteğinizin bir parçası olarak görüntü verilerini geçirmeniz gerekir. Görüntü verileri PNG biçiminde olmalı ve base64 olarak kodlanmalıdır.

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 } ],
        model: "Cohere-embed-v3-english",
    }
});

Tavsiye

İstek oluştururken, belirtecin model için giriş sınırını dikkate alın. Metnin daha büyük bölümlerini eklemeniz gerekiyorsa bir öbekleme stratejisine ihtiyacınız olacaktır.

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

Önemli

Toplu halde gömme hesaplama işlemleri tüm modeller için desteklenmeyebilir. Örneğin, Cohere-embed-v3-english model için bir görüntüyü bir kerede göndermeniz gerekir.

Resimleri ve metin çiftlerini ekleme

Bazı modeller görüntülerden ve metin çiftlerinden eklemeler oluşturabilir. Bu durumda, görüntü ve metni modele aktarmak için istekteki image ve text alanlarını kullanabilirsiniz. Aşağıdaki örnekte görüntüler ve metin çiftleri için eklemelerin nasıl oluşturulacağı gösterilmektedir:

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
            }
        ],
        model: "Cohere-embed-v3-english",
    }
});

Farklı türlerde eklemeler oluşturma

Bazı modeller, bunları nasıl kullanmayı planladığınıza bağlı olarak aynı giriş için birden çok ekleme oluşturabilir. Bu özellik, RAG desenleri için daha doğru eklemeler almanıza olanak tanır.

Aşağıdaki örnekte, vektör veritabanında depolanacak bir belge için ekleme oluşturmak için kullanılan eklemelerin nasıl oluşturulacağı gösterilmektedir:

var response = await client.path("/images/embeddings").post({
    body: {
        input: [ { image: image_data_base64 } ],
        input_type: "document",
        model: "Cohere-embed-v3-english",
    }
});

Böyle bir belgeyi almak üzere bir sorgu üzerinde çalışırken, aşağıdaki kod parçacığını kullanarak sorguya yönelik eklemeleri oluşturabilir ve alma performansını en üst düzeye çıkarabilirsiniz.

var response = await client.path("/images/embeddings").post({
    body: {
        input: [ { image: image_data_base64 } ],
        input_type: "query",
        model: "Cohere-embed-v3-english",
    }
});

Tüm ekleme modellerinin istekteki giriş türünü göstermeyi desteklemediğini ve bu durumlarda bir 422 hatası döndürüldüğünü fark edin.

Uyarı

Görüntü eklemelerin kullanılması yalnızca Python, JavaScript, C# veya REST istekleri kullanılarak desteklenir.

Önemli

Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Bu makalede Azure AI Foundry Modelleriyle görüntü ekleme API'sini kullanma açıklanmaktadır.

Önkoşullar

Uygulamanıza ekleme modellerini kullanmak için şunları yapmanız gerekir:

  • Görüntü ekleme modeli dağıtımı. Ekleme modeli yoksa, kaynaklarınıza bir gömme modeli eklemek için Foundry Modelleri Ekleme ve Yapılandırma bölümünü okuyun.

    • Bu örnekte Cohere'dan Cohere-embed-v3-english kullanılır.

Görüntü eklemeleri kullanma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

ImageEmbeddingsClient client = new ImageEmbeddingsClient(
    new Uri("https://<resource>.services.ai.azure.com/models"),
    new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);

Kaynağı Microsoft Entra ID desteğiyle yapılandırdıysanız, istemci oluşturmak için aşağıdaki kod parçacığını kullanabilirsiniz. Dikkat edin ki, includeInteractiveCredentials yalnızca kimlik doğrulamanın web tarayıcısı kullanılarak gerçekleşebilmesi için tanıtım amacıyla true olarak ayarlanmıştır. Üretim iş yükleri için parametresini kaldırmanız gerekir.

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);

ImageEmbeddingsClient client = new ImageEmbeddingsClient(
    new Uri("https://<resource>.services.ai.azure.com/models"),
    credential,
    clientOptions
);

Gömüler oluştur

Görüntü eklemeleri oluşturmak için, isteğinizin bir parçası olarak görüntü verilerini geçirmeniz gerekir. Görüntü verileri PNG biçiminde olmalı ve base64 olarak kodlanmalıdır.

List<ImageEmbeddingInput> input = new List<ImageEmbeddingInput>
{
    ImageEmbeddingInput.Load(imageFilePath:"sampleImage.png", imageFormat:"png")
};

var requestOptions = new ImageEmbeddingsOptions()
{
    Input = input,
    Model = "Cohere-embed-v3-english"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

Tavsiye

İstek oluştururken, belirtecin model için giriş sınırını dikkate alın. Metnin daha büyük bölümlerini eklemeniz gerekiyorsa bir öbekleme stratejisine ihtiyacınız olacaktır.

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

foreach (EmbeddingItem item in response.Value.Data)
{
    List<float> embedding = item.Embedding.ToObjectFromJson<List<float>>();
    Console.WriteLine($"Index: {item.Index}, Embedding: <{string.Join(", ", embedding)}>");
}

Önemli

Gömmelerin toplu olarak hesaplanması tüm modeller için desteklenmeyebilir. Örneğin, Cohere-embed-v3-english model için bir görüntüyü bir kerede göndermeniz gerekir.

Resimleri ve metin çiftlerini ekleme

Bazı modeller görüntülerden ve metin çiftlerinden eklemeler oluşturabilir. Bu durumda, görüntü ve metni modele aktarmak için istekteki image ve text alanlarını kullanabilirsiniz. Aşağıdaki örnekte görüntüler ve metin çiftleri için eklemelerin nasıl oluşturulacağı gösterilmektedir:

var image_input = ImageEmbeddingInput.Load(imageFilePath:"sampleImage.png", imageFormat:"png")
image_input.text = "A cute baby sea otter"

var requestOptions = new ImageEmbeddingsOptions()
{
    Input = new List<ImageEmbeddingInput>
    {
        image_input
    },
    Model = "Cohere-embed-v3-english"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

Farklı türlerde eklemeler oluşturma

Bazı modeller, bunları nasıl kullanmayı planladığınıza bağlı olarak aynı giriş için birden çok ekleme oluşturabilir. Bu özellik, RAG desenleri için daha doğru eklemeler almanıza olanak tanır.

Aşağıdaki örnekte, vektör veritabanında depolanacak bir belge için eklemelerin nasıl oluşturulacağı gösterilmektedir:

var requestOptions = new EmbeddingsOptions()
{
    Input = image_input,
    InputType = EmbeddingInputType.DOCUMENT, 
    Model = "Cohere-embed-v3-english"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

Böyle bir belgeyi almak üzere bir sorgu üzerinde çalışırken, aşağıdaki kod parçacığını kullanarak sorguya yönelik eklemeleri oluşturabilir ve alma performansını en üst düzeye çıkarabilirsiniz.

var requestOptions = new EmbeddingsOptions()
{
    Input = image_input,
    InputType = EmbeddingInputType.QUERY,
    Model = "Cohere-embed-v3-english"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

Tüm ekleme modellerinin istekteki giriş türünü göstermeyi desteklemediğini ve bu durumlarda bir 422 hatası döndürüldüğünü fark edin.

Önemli

Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Bu makalede Azure AI Foundry Modelleriyle görüntü ekleme API'sini kullanma açıklanmaktadır.

Önkoşullar

Uygulamanıza ekleme modellerini kullanmak için şunları yapmanız gerekir:

  • Görüntü ekleme modeli dağıtımı. Eğer bir tane yoksa, kaynağınıza bir yerleştirme modeli eklemek için Dökümhane Modelleri Ekleme ve Yapılandırma dökümanını okuyun.

    • Bu örnekte Cohere'dan Cohere-embed-v3-english kullanılır.

Görüntü eklemeleri kullanma

Metin eklemelerini kullanmak için, temel URL'nize eklenen /images/embeddings yolunu ve api-key içinde belirtilen kimlik bilgilerinizi kullanın. Authorization üst bilgisi, Bearer <key> formatıyla da desteklenir.

POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
api-key: <key>

Kaynağı Microsoft Entra ID desteğiyle yapılandırdıysanız, belirtecinizi üst bilgiye Authorization formatında Bearer <token> olarak geçirin. https://cognitiveservices.azure.com/.default kapsamını kullanın.

POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>

Microsoft Entra Id'yi kullanmak için kaynağınızda erişim izni vermek için ek yapılandırma gerekebilir. Microsoft Entra ID ile anahtarsız kimlik doğrulamasını yapılandırmayı öğrenin.

Gömüler oluştur

Görüntü eklemeleri oluşturmak için, isteğinizin bir parçası olarak görüntü verilerini geçirmeniz gerekir. Görüntü verileri PNG biçiminde olmalı ve base64 olarak kodlanmalıdır.

{
    "model": "Cohere-embed-v3-english",
    "input": [
        {
            "image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
        }
    ]
}

Tavsiye

İstek oluştururken, belirtecin model için giriş sınırını dikkate alın. Metnin daha büyük bölümlerini eklemeniz gerekiyorsa bir öbekleme stratejisine ihtiyacınız olacaktır.

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

{
    "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
    }
}

Önemli

Toplu halde gömme hesaplama işlemleri tüm modeller için desteklenmeyebilir. Örneğin, Cohere-embed-v3-english model için bir görüntüyü bir kerede göndermeniz gerekir.

Resimleri ve metin çiftlerini ekleme

Bazı modeller görüntülerden ve metin çiftlerinden eklemeler oluşturabilir. Bu durumda, görüntü ve metni modele aktarmak için istekteki image ve text alanlarını kullanabilirsiniz. Aşağıdaki örnekte görüntüler ve metin çiftleri için eklemelerin nasıl oluşturulacağı gösterilmektedir:

{
    "model": "Cohere-embed-v3-english",
    "input": [
        {
            "image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
            "text": "A photo of a cat"
        }
    ]
}

Farklı türlerde eklemeler oluşturma

Bazı modeller, bunları nasıl kullanmayı planladığınıza bağlı olarak aynı giriş için birden çok ekleme oluşturabilir. Bu özellik, RAG desenleri için daha doğru eklemeler almanıza olanak tanır.

Aşağıdaki örnekte, vektör veritabanında depolanacak bir belge için ekleme oluşturmak için kullanılan eklemelerin nasıl oluşturulacağı gösterilmektedir:

{
    "model": "Cohere-embed-v3-english",
    "input": [
        {
            "image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
        }
    ],
    "input_type": "document"
}

Böyle bir belgeyi almak üzere bir sorgu üzerinde çalışırken, aşağıdaki kod parçacığını kullanarak sorguya yönelik eklemeleri oluşturabilir ve alma performansını en üst düzeye çıkarabilirsiniz.

{
    "model": "Cohere-embed-v3-english",
    "input": [
        {
            "image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
        }
    ],
    "input_type": "query"
}

Tüm ekleme modellerinin istekteki giriş türünü göstermeyi desteklemediğini ve bu durumlarda bir 422 hatası döndürüldüğünü fark edin.