Back to Devexpress

AIIntegration.GenerateImageDescriptionAsync(IAIExtensionsContainer, GenerateImageDescriptionRequest, CancellationToken) Method

corelibraries-devexpress-dot-aiintegration-dot-aiintegration-dot-generateimagedescriptionasync-x28-iaiextensionscontainer-generateimagedescriptionrequest-cancellationtoken-x29.md

latest4.3 KB
Original Source

AIIntegration.GenerateImageDescriptionAsync(IAIExtensionsContainer, GenerateImageDescriptionRequest, CancellationToken) Method

Generates the description for the specified image.

Namespace : DevExpress.AIIntegration

Assembly : DevExpress.AIIntegration.v25.2.dll

NuGet Package : DevExpress.AIIntegration

Declaration

csharp
public static Task<ImageTextResponse> GenerateImageDescriptionAsync(
    this IAIExtensionsContainer container,
    GenerateImageDescriptionRequest request,
    CancellationToken cancellationToken = default(CancellationToken)
)
vb
<ExtensionAttribute>
Public Shared Function GenerateImageDescriptionAsync(
    container As IAIExtensionsContainer,
    request As GenerateImageDescriptionRequest,
    cancellationToken As CancellationToken = Nothing
) As Task(Of ImageTextResponse)

Parameters

NameTypeDescription
containerIAIExtensionsContainer

The AI extensions container.

| | request | GenerateImageDescriptionRequest |

The request to generate the description for the specified image.

|

Optional Parameters

NameTypeDefaultDescription
cancellationTokenCancellationTokennull

The token that cancels the task.

|

Returns

TypeDescription
Task<ImageTextResponse>

The response that contains the AI-generated description of the specified image.

|

Remarks

The following example registers an Azure OpenAI client to use the AI-powered extension in an .NET Console application to generate a description for the following image:

csharp
using Azure;
using Azure.AI.OpenAI;
using Microsoft.Extensions.AI;
using DevExpress.AIIntegration;
using DevExpress.AIIntegration.Extensions;

SetEnvironmentVariables();

// Register an Azure OpenAI client
AIExtensionsContainerDefault defaultAIExtensionsContainer = RegisterAzureOpenAIClient(
    Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT"),
    Environment.GetEnvironmentVariable("AZURE_OPENAI_APIKEY")
);

string imageBase64 = "iVBORw0KGgoAAAANSUhEUgAABhgAAAF+CAMAAABHxuB6AAAABGdBTUEAALGPC...";
var response = await defaultAIExtensionsContainer.GenerateImageDescriptionAsync(
    new GenerateImageDescriptionRequest(imageBase64)
);

Console.WriteLine(response);

/* Output:
 * Toolbar with File menu and various document actions.
 */

AIExtensionsContainerDefault RegisterAzureOpenAIClient(string azureOpenAIEndpoint, string azureOpenAIKey) {
    IChatClient client = new Azure.AI.OpenAI.AzureOpenAIClient(new Uri(azureOpenAIEndpoint),
        new System.ClientModel.ApiKeyCredential(azureOpenAIKey)).GetChatClient("gpt-4o-mini").AsIChatClient();

    return AIExtensionsContainerConsole.CreateDefaultAIExtensionContainer(client);
}

void SetEnvironmentVariables() {
    Environment.SetEnvironmentVariable("AZURE_OPENAI_ENDPOINT", {SPECIFY_YOUR_AZURE_ENDPOINT});
    Environment.SetEnvironmentVariable("AZURE_OPENAI_APIKEY", {SPECIFY_YOU_AZURE_KEY});
}

See Also

AIIntegration Class

AIIntegration Members

DevExpress.AIIntegration Namespace