Back to Devexpress

PromptToExpressionRequestBase.ColumnInfo Class

corelibraries-devexpress-dot-aiintegration-dot-extensions-dot-prompttoexpressionrequestbase.md

latest4.9 KB
Original Source

PromptToExpressionRequestBase.ColumnInfo Class

Describes a data column that can be used by the Prompt to Expression AI-powered extension.

Namespace : DevExpress.AIIntegration.Extensions

Assembly : DevExpress.AIIntegration.v25.2.dll

NuGet Package : DevExpress.AIIntegration

Declaration

csharp
public class ColumnInfo
vb
Public Class ColumnInfo

Remarks

The ColumnInfo class supplies metadata that helps the AI understand the column’s purpose (ColumnName, Caption, Description), data type (Type), and detail columns associated with the current column in a master–detail relationship (Children).

The following code snippet registers an Azure OpenAI client to use the AI-powered Prompt to Expression extension in a .NET Console application to generate a valid filter expression:

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

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

// PromptToExpressionAsync converts a human-readable request into
// a machine-readable expression based on the available columns and functions.
var response = await defaultAIExtensionsContainer.PromptToExpressionAsync(
    new PromptToExpressionRequest(
        "Display orders from the last month where the total amount is greater than $500.", // The user's instruction written in natural language.
        string.Empty,
        new List<PromptToExpressionRequestBase.ColumnInfo>(){ // Describes data fields that the AI is allowed
            new PromptToExpressionRequestBase.ColumnInfo(){ ColumnName = "OrderID" }, // to reference in the generated expression.
            new PromptToExpressionRequestBase.ColumnInfo(){ ColumnName = "Price" },
            new PromptToExpressionRequestBase.ColumnInfo(){ ColumnName = "OrderDate"}
        },
        null) // (optional) Specifies custom or supported functions
                                                                                            // that the AI can use when building expressions.
);

Console.WriteLine("Generated Expression: " + response);

// Expected output (the actual output may vary):
// Generated Expression: [OrderDate] >= DateTime.Now.AddMonths(-1) && [Price] > 500

AIExtensionsContainerDefault RegisterAzureOpenAIClient(string azureOpenAIEndpoint, string azureOpenAIKey) {
    IChatClient client = new 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});
}

Inheritance

Object PromptToExpressionRequestBase.ColumnInfo

See Also

PromptToExpressionRequest

PromptToExpressionExtension

Prompt to Expression (WinForms)

Generate Expressions from Prompts (WinForms Report Designer)

Generate Expressions From Prompts (Web Report Designer)

PromptToExpressionRequestBase.ColumnInfo Members

DevExpress.AIIntegration.Extensions Namespace