Skip to main content
All docs
V25.1
  • SmartSearchRequest Class

    A Smart Search request.

    Namespace: DevExpress.AIIntegration.Extensions

    Assembly: DevExpress.AIIntegration.v25.1.dll

    NuGet Package: DevExpress.AIIntegration

    Declaration

    public class SmartSearchRequest :
        BaseRequest

    Remarks

    “Smart Search” works alongside traditional search algorithms to offer a more powerful and user-friendly search experience. It filters Items to offer results that are more aligned with what the user is seeking, even if the search query (SearchText) contains misspellings.

    The following example registers an Azure OpenAI client and uses the Smart Search AI-powered extension to filter items based on the searchQuery:

    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 searchQuery = "furniture";
    var response = await defaultAIExtensionsContainer.SmartSearchAsync(
        new SmartSearchRequest(searchQuery, new List<SmartSearchRequest.ItemInfo>() {
            new SmartSearchRequest.ItemInfo("item1", "chair"),
            new SmartSearchRequest.ItemInfo("item2", "sofa"),
            new SmartSearchRequest.ItemInfo("item3", "knife"),
            new SmartSearchRequest.ItemInfo("item4", "clock"),
            new SmartSearchRequest.ItemInfo("item5", "bed"),
        })
    );
    
    foreach (SmartSearchResponse.ItemInfo info in response.Values)
        Console.WriteLine(string.Format("{0}: {1}", info.Id, info.Value));
    
    /* Output:
     * item1: chair
     * item2: sofa
     * item5: bed
     */
    
    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});
    }
    

    Inheritance

    Object
    DevExpress.AIIntegration.Extensions.BaseRequest
    SmartSearchRequest
    See Also