From 04aaab42f4dc5b137da83c977fd8164d5fe81910 Mon Sep 17 00:00:00 2001 From: "nikulina.svetlana" Date: Tue, 3 Sep 2024 23:39:14 +0400 Subject: [PATCH 1/4] add description --- README.md | 104 +++++++++++++++++++++++++++++++++++++++++++------ htmleditor.png | Bin 0 -> 34326 bytes richedit.png | Bin 0 -> 62857 bytes 3 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 htmleditor.png create mode 100644 richedit.png diff --git a/README.md b/README.md index 068507c..398ea4d 100644 --- a/README.md +++ b/README.md @@ -4,31 +4,113 @@ [![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) [![](https://img.shields.io/badge/💬_Leave_Feedback-feecdd?style=flat-square)](#does-this-example-address-your-development-requirementsobjectives) -# Product/Platform - Task +# Rich Text Editor and HTML Editor for Blazor - How to integrate AI-powered extensions -This is the repository template for creating new examples. Describe the solved task here. +This example integrates AI-powered extensions in Rich Text Editor and HTML Editor. These extensions add UI elements to an editor and allows users to process editor content with AI functions. -Put a screenshot that illustrates the result here. +## Implementation Details -Then, add implementation details (steps, code snippets, and other technical information in a free form), or add a link to an existing document with implementation details. +[DxRichEdit](https://docs.devexpress.com/Blazor/DevExpress.Blazor.RichEdit.DxRichEdit) and [DxHtmlEditor](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxHtmlEditor) components implement the `AdditionalSettings` property. You can populate this property with commands that allow users to process editor text. Available commands for both editors are the following: + +* `CustomAISettings` allows user to ask a custom question to editor content. +* `ExpandAISettings` makes the text longer. +* `ExplainAISettings` explains the text. +* `ProofreadAISettings` proofreads the text. +* `RewriteAISettings` rewrites the text in the specified style. +* `ShortenAISettings` makes the text shorter. +* `SummaryAISettings` creates text summary. +* `ToneAISettings` - rewrites the text in the specified tone. +* `TranslateAISettings` translates text into the specified language. + +### Register AI Services + +Add the following code to the _Program.cs_ file to register AI services in the application: + +```cs +using DevExpress.AIIntegration; + +string azureOpenAIEndpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT"); +string azureOpenAIKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); +... +builder.Services.AddDevExpressAI((config) => { + var client = new AzureOpenAIClient( + new Uri(azureOpenAIEndpoint), + new AzureKeyCredential(azureOpenAIKey)); + config.RegisterChatClientOpenAIService(client, "gpt4o"); + config.RegisterOpenAIAssistants(client, "gpt4o"); +}); +``` + +### AI-powered extension for Rich Text Editor + +AI-powered extension for Rich Text Editor adds AI-related commands in the editor's context menu. + +Declare DxRichEdit's `AdditionalSettings` and populate it with commands in the following manner: + +```razor +@using DevExpress.AIIntegration.Blazor.RichEdit +@using DevExpress.Blazor.RichEdit + + + + + + + + + + + + + + +``` + +![](richedit.png) + +### AI-powered extension for HTML Editor + +AI-powered extension for HTML Editor adds AI-related commands in the editor's toolbar. + +Declare DxHtmlEditor's `AdditionalSettings` and populate it with commands in the following manner: + +```razor +@using DevExpress.AIIntegration.Blazor.HtmlEditor + + + + + + + + + + + + + + +``` + +![](htmleditor.png) ## Files to Review -- link.cs (VB: link.vb) -- link.js -- ... +* [RichEdit.razor](./CS/DevExpress.AI.Samples.Blazor.Editors/Components/Pages/RichEdit.razor) +* [HtmlEditor.razor](./CS/DevExpress.AI.Samples.Blazor.Editors/Components/Pages/HtmlEditor.razor) +* [Program.cs](./CS/DevExpress.AI.Samples.Blazor.Editors/Program.cs) + ## More Examples -- link -- link -- ... +* [AI Chat for Blazor - How to add DxAIChat component in Blazor, MAUI, WPF, and WinForms applications](https://github.com/DevExpress-Examples/devexpress-ai-chat-samples) + ## Does this example address your development requirements/objectives? diff --git a/htmleditor.png b/htmleditor.png new file mode 100644 index 0000000000000000000000000000000000000000..55bf3eb8c76d47c31a3c2e200f56fcf193141896 GIT binary patch literal 34326 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 X`C#3zh|o~*%dfJMiW0?Q`hNcdUua3O literal 0 HcmV?d00001 diff --git a/richedit.png b/richedit.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca36979cb01660fe949f1fc77aaeed7608f8fbc GIT binary patch literal 62857 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%0A_7}#KuN$YdQy_&6%Rp%!G@~} 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 btr3W1)Xtk8AvNTT8IPm`gohT6Q literal 0 HcmV?d00001 From add158d172df6b6d8b9f0d54c0b2b7285cfcdc56 Mon Sep 17 00:00:00 2001 From: DevExpressExampleBot Date: Tue, 3 Sep 2024 23:41:25 +0400 Subject: [PATCH 2/4] README auto update [skip ci] --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 398ea4d..10a394e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/851771053/24.2.1%2B) [![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/T1251646) [![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) [![](https://img.shields.io/badge/💬_Leave_Feedback-feecdd?style=flat-square)](#does-this-example-address-your-development-requirementsobjectives) From 65e8dba7ea06dee1a84c30b9942eb0451bc2935f Mon Sep 17 00:00:00 2001 From: Svetlana Nikulina Date: Thu, 5 Sep 2024 23:13:52 +0400 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: Abadzhev --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 10a394e..e7de19a 100644 --- a/README.md +++ b/README.md @@ -5,21 +5,21 @@ # Rich Text Editor and HTML Editor for Blazor - How to integrate AI-powered extensions -This example integrates AI-powered extensions in Rich Text Editor and HTML Editor. These extensions add UI elements to an editor and allows users to process editor content with AI functions. +This example enables AI-powered extensions for Rich Text Editor and HTML Editor. These extensions supply AI functions that process editor content. ## Implementation Details [DxRichEdit](https://docs.devexpress.com/Blazor/DevExpress.Blazor.RichEdit.DxRichEdit) and [DxHtmlEditor](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxHtmlEditor) components implement the `AdditionalSettings` property. You can populate this property with commands that allow users to process editor text. Available commands for both editors are the following: -* `CustomAISettings` allows user to ask a custom question to editor content. -* `ExpandAISettings` makes the text longer. +* `CustomAISettings` allows user to process text according to a custom prompt. +* `ExpandAISettings` expands the text. * `ExplainAISettings` explains the text. * `ProofreadAISettings` proofreads the text. * `RewriteAISettings` rewrites the text in the specified style. -* `ShortenAISettings` makes the text shorter. -* `SummaryAISettings` creates text summary. -* `ToneAISettings` - rewrites the text in the specified tone. -* `TranslateAISettings` translates text into the specified language. +* `ShortenAISettings` shortens the text. +* `SummaryAISettings` summarizes the text. +* `ToneAISettings` rewrites the text in the specified tone. +* `TranslateAISettings` translates the text into the specified language. ### Register AI Services @@ -40,9 +40,9 @@ builder.Services.AddDevExpressAI((config) => { }); ``` -### AI-powered extension for Rich Text Editor +### Enable AI-powered extension for Rich Text Editor -AI-powered extension for Rich Text Editor adds AI-related commands in the editor's context menu. +AI-powered extension for Rich Text Editor adds AI-related commands to the editor's context menu. Declare DxRichEdit's `AdditionalSettings` and populate it with commands in the following manner: @@ -67,9 +67,9 @@ Declare DxRichEdit's `AdditionalSettings` and populate it with commands in the f ![](richedit.png) -### AI-powered extension for HTML Editor +### Enable AI-powered extension for HTML Editor -AI-powered extension for HTML Editor adds AI-related commands in the editor's toolbar. +AI-powered extension for HTML Editor adds AI-related commands to the editor's toolbar. Declare DxHtmlEditor's `AdditionalSettings` and populate it with commands in the following manner: From 2a90a686db53fd704050096af7baf79049992ec2 Mon Sep 17 00:00:00 2001 From: Natalia Kazakova <17986517+natakazakova@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:58:18 +0400 Subject: [PATCH 4/4] Update README.md --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e7de19a..6de889f 100644 --- a/README.md +++ b/README.md @@ -5,20 +5,20 @@ # Rich Text Editor and HTML Editor for Blazor - How to integrate AI-powered extensions -This example enables AI-powered extensions for Rich Text Editor and HTML Editor. These extensions supply AI functions that process editor content. +This example enables AI-powered extensions for both the DevExpress Blazor Rich Text Editor and HTML Editor. These extensions supply AI functions designed to process text/HTML content. ## Implementation Details -[DxRichEdit](https://docs.devexpress.com/Blazor/DevExpress.Blazor.RichEdit.DxRichEdit) and [DxHtmlEditor](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxHtmlEditor) components implement the `AdditionalSettings` property. You can populate this property with commands that allow users to process editor text. Available commands for both editors are the following: +Both the DevExpress Blazor Rich Text Editor ([DxRichEdit](https://docs.devexpress.com/Blazor/DevExpress.Blazor.RichEdit.DxRichEdit)) and Blazor HTML Editor ([DxHtmlEditor](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxHtmlEditor)) ship with an `AdditionalSettings` property. You can populate this property with commands and allow users to process editor text as needs dictate. Available commands for both editors are as follows: * `CustomAISettings` allows user to process text according to a custom prompt. * `ExpandAISettings` expands the text. * `ExplainAISettings` explains the text. * `ProofreadAISettings` proofreads the text. -* `RewriteAISettings` rewrites the text in the specified style. +* `RewriteAISettings` rewrite text using a specified style. * `ShortenAISettings` shortens the text. * `SummaryAISettings` summarizes the text. -* `ToneAISettings` rewrites the text in the specified tone. +* `ToneAISettings` rewrite text using a specified tone. * `TranslateAISettings` translates the text into the specified language. ### Register AI Services @@ -40,7 +40,7 @@ builder.Services.AddDevExpressAI((config) => { }); ``` -### Enable AI-powered extension for Rich Text Editor +### Enable AI-powered extension for the DevExpress Rich Text Editor AI-powered extension for Rich Text Editor adds AI-related commands to the editor's context menu. @@ -67,9 +67,9 @@ Declare DxRichEdit's `AdditionalSettings` and populate it with commands in the f ![](richedit.png) -### Enable AI-powered extension for HTML Editor +### Enable AI-powered extension for the DevExpress HTML Editor -AI-powered extension for HTML Editor adds AI-related commands to the editor's toolbar. +The AI-powered extension for our HTML Editor adds AI-related commands to the editor's toolbar. Declare DxHtmlEditor's `AdditionalSettings` and populate it with commands in the following manner: