Skip to main content
All docs
V24.2

Summarize and Translate Reports in the WPF Document Preview

  • 4 minutes to read

Follow instructions in this article to integrate AI-powered Summarize and Translate commands into the DocumentPreviewControl.

Summarize
Uses generative AI to summarize report content and displays core insights associated with this report.
Translate
Uses AI services to translate report content to another language.

Activate AI Assistant

Install NuGet Packages

Install the following NuGet packages:

The following tutorial uses Azure OpenAI. Refer to the requirements section for information about NuGet packages required for other supported AI services.

Register AI Client

The following code snippet registers an Azure OpenAI client at application startup:

using Azure.AI.OpenAI;
using DevExpress.AIIntegration;
using Microsoft.Extensions.AI;
using System.ClientModel;
// ...
public partial class App : Application {
    static string AzureOpenAIEndpoint { get { return "AZURE_OPENAI_ENDPOINT"; } }
    static string AzureOpenAIKey { get { return "AZURE_OPENAI_APIKEY"; } }
    static string DeploymentName { get { return "gpt-4o-mini"; } }

    public App() {
        IChatClient client = new AzureOpenAIClient(
           new Uri(AzureOpenAIEndpoint),
           new ApiKeyCredential(AzureOpenAIKey))
               .AsChatClient(DeploymentName);
        AIExtensionsContainerDesktop.Default.RegisterChatClient(client);
    }
}

Note

Review the following help topic for information on how to register other supported AI services: Register AI Clients.

Create and Configure AI Assistant Behaviors

Register DocumentSummarizeBehavior and DocumentTranslateBehavior, specify their setting, and assign them to the Document Preview control.

The following settings are available:

  • SummarizationMode (for Summarize behavior)

    Abstractive mode understands the text and rephrases it in a concise form. Extractive mode extracts key sentences or phrases from the original text.

  • Languages (for Translate behavior)

    Specifies target languages/cultures for text translation.

  • Temperature

    Controls the randomness of the output. Lower temperatures (value: 0-1) yield more predictable and focused outputs, while higher temperatures (value: 1-2) produce more diverse and creative responses.

Markup:

xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing" 
xmlns:dxai="http://schemas.devexpress.com/winfx/2008/xaml/ai" 
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"  
... 
<dxp:DocumentPreviewControl Name="preview"> 
    <dxmvvm:Interaction.Behaviors> 
        <dxai:DocumentTranslateBehavior> 
            <dxai:LanguageInfo Culture="de-DE"/> 
            <dxai:LanguageInfo Culture="es-ES"/> 
            <dxai:LanguageInfo Culture="pt-BR"/> 
        </dxai:DocumentTranslateBehavior> 
        <dxai:DocumentSummarizeBehavior SummarizationMode="Abstractive" /> 
    </dxmvvm:Interaction.Behaviors> 
</dxp:DocumentPreviewControl> 

Code-Behind:

using System.Collections.Generic;
using System.Globalization;
using DevExpress.AIIntegration;
using DevExpress.AIIntegration.Wpf;
using DevExpress.Mvvm.UI.Interactivity;
// ...
public partial class MainWindow : Window {
    public MainWindow() {
        InitializeComponent();
        AddAIBehaviors();
    }
    void AddAIBehaviors() {
        var translateBehavior = new DocumentTranslateBehavior() {
            Languages = new List<LanguageInfo>() {
                new LanguageInfo() { Culture = new CultureInfo("de-DE") },
                new LanguageInfo() { Culture = new CultureInfo("es-ES") },
                new LanguageInfo() { Culture = new CultureInfo("pt-BR") },
            }
        };
        var summarizeBehavior = new DocumentSummarizeBehavior() { 
            SummarizationMode = SummarizationMode.Abstractive
        };
        var behaviors = Interaction.GetBehaviors(preview);
        behaviors.Add(translateBehavior);
        behaviors.Add(summarizeBehavior);
    }
}

Use Translate Command

You can access the Translate command in the AI context menu of the Document Preview control.

Right-click an opened report or selected report content. Select Translate from the AI Assistant submenu.

AI Assistant submenu

A dialog appears. Specify the input text range (selected content, document page, or entire document) and target language. Click “Translate” to generate and display a translation.

Translate dialog

Click the copy icon to copy operation output.

Use Summarize Command

You can access the Summarize command in the AI context menu of the Document Preview control.

Right-click an open report or selected report content. Select Summarize from the AI Assistant submenu.

AI Assistant submenu

A dialog appears. Specify the input text range for summarization (selected content, document page, or entire document). Click “Summarize” to display the summary.

Summarize dialog

Click the copy icon to copy operation output.