Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/workflows/vale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: vale-validation
on:
pull_request:
paths:
- README.md

jobs:
vale:
name: runner / vale
runs-on: ubuntu-latest
steps:
- name: clone repo
uses: actions/checkout@v4
- name: clone vale-styles repo
uses: actions/checkout@v4
with:
repository: DevExpress/vale-styles
path: vale-styles
ssh-key: ${{ secrets.VALE_STYLES_ACCESS_KEY }}
- name: copy vale rules to the root repo
run: shopt -s dotglob && cp -r ./vale-styles/vale/* .
- name: vale linter check
uses: DevExpress/vale-action@reviewdog
with:
files: README.md
fail_on_error: true
filter_mode: nofilter
reporter: github-check
1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @DevExpressExampleBot
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
<!-- default badges list -->
![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/1000886390/25.1.3%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/T1296609)
[![](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)
<!-- default badges end -->
# DevExpress VCL/Delphi - Integrate a 3rd-party AI/LLM provider library

Check failure on line 6 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L6

[DX.HeadingCapitalization] 'DevExpress VCL/Delphi - Integrate a 3rd-party AI/LLM provider library' should match our guidelines for title case
Raw output
{"message": "[DX.HeadingCapitalization] 'DevExpress VCL/Delphi - Integrate a 3rd-party AI/LLM provider library' should match our guidelines for title case", "location": {"path": "README.md", "range": {"start": {"line": 6, "column": 3}}}, "severity": "ERROR"}

This simple example integrates AI into DevExpress VCL Controls using a 3rd-party AI library (GenAI) available via the GetIt Package Manager.
VCL developers can switch between different AI providers and utilize commands that DevExpress AI Assistant adds to DevExpress Text Editors (such as `TcxMemo` or `TdxRichEditControl`).
VCL developers can switch between different AI providers and utilize commands that DevExpress AI Assistant adds to DevExpress Text Editors (such as [TcxMemo](https://docs.devexpress.com/VCL/cxMemo.TcxMemo) or [TdxRichEditControl](https://docs.devexpress.com/VCL/dxRichEdit.Control.TdxRichEditControl)).

![DevExpress VCL AI Example](./Images/vcl-text-editor-ai-demo.gif)
![DevExpress VCL AI Example](/CS/Images/vcl-text-editor-ai-demo.gif)

> [!NOTE]
> Until Embarcadero ships official AI-related SDK libraries, VCL developers can plug in third-party libraries or leverage own implementation to support different AI providers. For example, the DevExpress VCL Rich Text Editor demo ("%Public%\DevExpress VCL Demos\MegaDemos\Product Demos\ExpressRichEditControl\dxAI.ChatClient.Azure.pas" uses our Azure OpenAI service deployment via a simple `TdxAIAzureChatClient` implementation (extends our base `TdxAIChatClient` API).

Check warning on line 14 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L14

[Microsoft.We] Only use we/us when you refer to our organization.
Raw output
{"message": "[Microsoft.We] Only use we/us when you refer to our organization.", "location": {"path": "README.md", "range": {"start": {"line": 14, "column": 342}}}, "severity": "WARNING"}

Check warning on line 14 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L14

[Microsoft.We] Only use we/us when you refer to our organization.
Raw output
{"message": "[Microsoft.We] Only use we/us when you refer to our organization.", "location": {"path": "README.md", "range": {"start": {"line": 14, "column": 438}}}, "severity": "WARNING"}

<Screenshot or video goes here>

## Prerequisites

- Microsoft Windows 10 or newer
- Embarcadero RAD Studio IDE 12.0 or newer (Community Edition is not supported)

Check warning on line 21 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L21

[DX.RayRules-Alternatives] Use 'vXX.Y' instead of just 'XX.Y' when mentioning version numbers.
Raw output
{"message": "[DX.RayRules-Alternatives] Use 'vXX.Y' instead of just 'XX.Y' when mentioning version numbers.", "location": {"path": "README.md", "range": {"start": {"line": 21, "column": 31}}}, "severity": "WARNING"}
- The [GenAI](https://getitnow.embarcadero.com/genai-optimized-openai-integration-wrapper/) package installed from GetIt
- DevExpress VCL Components v25.1.3 or newer

## Running the example

Check failure on line 25 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L25

[DX.HeadingCapitalization] 'Running the example' should match our guidelines for title case
Raw output
{"message": "[DX.HeadingCapitalization] 'Running the example' should match our guidelines for title case", "location": {"path": "README.md", "range": {"start": {"line": 25, "column": 4}}}, "severity": "ERROR"}

To connect to an AI provider, uncomment the `TdxGenAIChatClient.Create` call for the required AI provider (OpenAI, DeepSeek, or Google Gemini) and insert a valid API key instead of `'YOUR-API-KEY'`:

Expand All @@ -49,9 +48,10 @@
> DevExpress AI-powered Extensions follow the "bring your own key" principle. DevExpress does not offer a REST API and does not ship any built-in LLMs/SLMs. You need an active subscription for the required AI service to obtain the REST API endpoint, key, and model deployment name. These variables must be specified at application startup to register AI clients and enable DevExpress AI-powered Extensions in your application.

<!-- feedback -->
## Does this example address your development requirements/objectives?

[<img src="https://www.devexpress.com/support/examples/i/yes-button.svg"/>](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-ai-memo-example&~~~was_helpful=yes) [<img src="https://www.devexpress.com/support/examples/i/no-button.svg"/>](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-ai-memo-example&~~~was_helpful=no)

## Does this example address your development requirements/objectives?

Check failure on line 51 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L51

[DX.HeadingCapitalization] 'Does this example address your development requirements/objectives?' should match our guidelines for title case
Raw output
{"message": "[DX.HeadingCapitalization] 'Does this example address your development requirements/objectives?' should match our guidelines for title case", "location": {"path": "README.md", "range": {"start": {"line": 51, "column": 4}}}, "severity": "ERROR"}

Check failure on line 51 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L51

[DX.HeadingPunctuation] Don't use end punctuation at the end of headings.
Raw output
{"message": "[DX.HeadingPunctuation] Don't use end punctuation at the end of headings.", "location": {"path": "README.md", "range": {"start": {"line": 51, "column": 69}}}, "severity": "ERROR"}
[<img src="https://www.devexpress.com/support/examples/i/yes-button.svg"/>](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-ai-memo-example&~~~was_helpful=yes) [<img src="https://www.devexpress.com/support/examples/i/no-button.svg"/>](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-ai-memo-example&~~~was_helpful=no)
(you will be redirected to DevExpress.com to submit your response)
<!-- feedback end -->

Loading