officefileapi-devexpress-dot-aiintegration-dot-docs-dot-iaidocprocessingservice-dot-summarizeasync-x28-richeditdocumentserver-summarizationmode-cancellationtoken-x29.md
Generates a brief summary of a document content.
Namespace : DevExpress.AIIntegration.Docs
Assembly : DevExpress.AIIntegration.Docs.v25.2.dll
NuGet Package : DevExpress.AIIntegration.Docs
Task<string> SummarizeAsync(
RichEditDocumentServer wordProcessor,
SummarizationMode mode = SummarizationMode.Abstractive,
CancellationToken cancellationToken = default(CancellationToken)
)
Function SummarizeAsync(
wordProcessor As RichEditDocumentServer,
mode As SummarizationMode = SummarizationMode.Abstractive,
cancellationToken As CancellationToken = Nothing
) As Task(Of String)
| Name | Type | Description |
|---|---|---|
| wordProcessor | RichEditDocumentServer |
The RichEditDocumentServer instance which content should be summarized.
|
| Name | Type | Default | Description |
|---|---|---|---|
| mode | SummarizationMode | Abstractive |
An enumeration value that indicates summarization mode.
| | cancellationToken | CancellationToken | null |
The token that cancels the task.
|
| Type | Description |
|---|---|
| Task<String> |
The response that contains AI-generated summary.
|
The following code snippet obtains an AI-generated summary of a Word document and inserts it at the start:
using DevExpress.AIIntegration.Docs;
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
// See "Register AI extension service" section for implementation code
var docProcessingService = defaultAIExtensionsContainer.CreateAIDocProcessingService();
var wordProcessor = new RichEditDocumentServer();
wordProcessor.LoadDocument("Documents/FirstLookShortened.docx");
string summary = await docProcessingService.SummarizeAsync(
wordProcessor,
SummarizationMode.Extractive,
CancellationToken.None);
wordProcessor.Document.Paragraphs.Insert(wordProcessor.Document.Paragraphs[0].Range.Start);
Paragraph summaryParagraph = wordProcessor.Document.Paragraphs[0];
// This method resets formatting for the inserted paragraph
ClearFormatting(summaryParagraph);
wordProcessor.Document.InsertText(
summaryParagraph.Range.Start,
"Document Summary:\n" + summary);
wordProcessor.SaveDocument("Documents/SummarizationResult.docx", DocumentFormat.Docx);
void ClearFormatting(Paragraph paragraph)
{
CharacterProperties cp = wordProcessor.Document.BeginUpdateCharacters(paragraph.Range);
cp.Reset();
cp.Style = wordProcessor.Document.CharacterStyles["Normal"];
wordProcessor.Document.EndUpdateCharacters(cp);
ParagraphProperties pp = wordProcessor.Document.BeginUpdateParagraphs(paragraph.Range);
pp.Reset();
pp.Style = wordProcessor.Document.ParagraphStyles["Normal"];
wordProcessor.Document.EndUpdateParagraphs(pp);
}
Imports DevExpress.AIIntegration.Docs
Imports DevExpress.XtraRichEdit
Imports DevExpress.XtraRichEdit.API.Native
Imports System.Threading.Tasks
Imports System.Threading
Async Function Main() As Task
' See "Register AI extension service" section for implementation code
var docProcessingService = defaultAIExtensionsContainer.CreateAIDocProcessingService()
Dim wordProcessor As New RichEditDocumentServer()
wordProcessor.LoadDocument("Documents/FirstLookShortened.docx")
Dim summary As String = Await docProcessingService.SummarizeAsync( _
wordProcessor, _
SummarizationMode.Extractive, _
CancellationToken.None)
wordProcessor.Document.Paragraphs.Insert(wordProcessor.Document.Paragraphs(0).Range.Start)
Dim summaryParagraph As Paragraph = wordProcessor.Document.Paragraphs(0)
' This method resets formatting of the obtained paragraph
ClearFormatting(wordProcessor, summaryParagraph)
wordProcessor.Document.InsertText( _
summaryParagraph.Range.Start, _
"Document Summary:" & vbLf & summary)
wordProcessor.SaveDocument("Documents/SummarizationResult.docx", DocumentFormat.Docx)
End Function
Sub ClearFormatting(wordProcessor As RichEditDocumentServer, paragraph As Paragraph)
Dim cp As CharacterProperties = wordProcessor.Document.BeginUpdateCharacters(paragraph.Range)
cp.Reset()
cp.Style = wordProcessor.Document.CharacterStyles("Normal")
wordProcessor.Document.EndUpdateCharacters(cp)
Dim pp As ParagraphProperties = wordProcessor.Document.BeginUpdateParagraphs(paragraph.Range)
pp.Reset()
pp.Style = wordProcessor.Document.ParagraphStyles("Normal")
wordProcessor.Document.EndUpdateParagraphs(pp)
End Sub
The following code snippet (auto-collected from DevExpress Examples) contains a reference to the SummarizeAsync(RichEditDocumentServer, SummarizationMode, CancellationToken) method.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.
office-file-api-ai-implementation/CS/Controllers/SummarizeController.cs#L47
case RichEditDocumentPart.WholeDocument:
summaryText = await docProcessingService.SummarizeAsync(wordProcessor, summarizationMode);
break;
See Also
IAIDocProcessingService Interface