diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6944596 --- /dev/null +++ b/.gitignore @@ -0,0 +1,113 @@ +# Uncomment these types if you want even more clean repository. But be careful. +# It can make harm to an existing project source. Read explanations below. +# +# Resource files are binaries containing manifest, project icon and version info. +# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. +#*.res +# +# Type library file (binary). In old Delphi versions it should be stored. +# Since Delphi 2009 it is produced from .ridl file and can safely be ignored. +#*.tlb +# +# Diagram Portfolio file. Used by the diagram editor up to Delphi 7. +# Uncomment this if you are not using diagrams or use newer Delphi version. +#*.ddp +# +# Visual LiveBindings file. Added in Delphi XE2. +# Uncomment this if you are not using LiveBindings Designer. +#*.vlb +# +# Deployment Manager configuration file for your project. Added in Delphi XE2. +# Uncomment this if it is not mobile development and you do not use remote debug feature. +#*.deployproj +# +# C++ object files produced when C/C++ Output file generation is configured. +# Uncomment this if you are not using external objects (zlib library for example). +#*.obj +# + +# Delphi compiler-generated binaries (safe to delete) +*.exe +*.dll +*.bpl +*.bpi +*.dcp +*.so +*.apk +*.drc +*.map +*.dres +*.rsm +*.tds +*.dcu +*.lib +*.a +*.o +*.ocx + +# Delphi autogenerated files (duplicated info) +*.cfg +*.hpp +*Resource.rc + +# Delphi local files (user-specific info) +*.local +*.identcache +*.projdata +*.tvsconfig +*.dsk + +# Delphi history and backups +__history/ +__recovery/ +*.~* + +# C++Builder compiler-generated binaries +*.obj +*.tds +*.pch +*.ilc +*.ild +*.ilf +*.ils + +# C++Builder libraries and debug info +*.lib +*.a +*.bpi +*.bpl +*.dcp +*.dcu +*.map + +# C++Builder intermediate files +*.res +*.rsm +*.exp +*.idb +*.pdb + +# C++Builder autogenerated headers +*.hpp +*.d + +# C++Builder local/IDE specific +*.local +*.dsk +*.tvsconfig +*.identcache + +# Build output directories +Win32/ +Win64/ +Win64x/ + +# Castalia statistics file (since XE7 Castalia is distributed with Delphi) +*.stat + +# Boss dependency manager vendor folder https://github.com/HashLoad/boss +modules/ + +# Excessive project files + +*.delphilsp.json diff --git a/README.md b/README.md index e5c852c..cd7edd7 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ This example adds AI-powered filter capabilities to the [DevExpress VCL Data Grid](https://docs.devexpress.com/VCL/171093/ExpressQuantumGrid/vcl-data-grid) (using a lightweight ONNX model and a BERT tokenizer). Unlike built-in search/filter operations, Smart AI Filter compares strings based on semantic similarities rather than exact matches. +![An application that displays a search query "accessories" and a list of items filtered using the AI-powered smart search](./images/accessories.png) + ## Third-Party Dependencies * [TONNXRuntime](https://github.com/hshatti/TONNXRuntime) @@ -22,20 +24,28 @@ This example adds AI-powered filter capabilities to the [DevExpress VCL Data Gri ## Deploy and Run -1. Clone this repository. Required dependencies automatically appear in **BertTokenizer4D** and **TONNXRuntime** folders. +1. Clone this repository (including submodules): + ```sh + git clone --recurse-submodules git@github.com:DevExpress-Examples/vcl-grid-smart-semantic-filter.git + ``` + If you have already cloned the repository without submodules, initialize them using the following command: + ```sh + git submodule update --init --recursive + ``` + 2. Open and build the **SimilaritySearch** project (DPR). 3. If using Windows 10 (64-bit), place the latest version of `onnxruntime.dll` (available in the [official repository](https://github.com/microsoft/onnxruntime)) into the executable file folder. 4. Run the sample project. -## Testing the Example +## Test the Example Type a word or phrase into the **Smart Search AI Filter** field and click **Apply**. -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-grid-smart-semantic-filter&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-grid-smart-semantic-filter&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-grid-smart-semantic-filter&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-grid-smart-semantic-filter&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response) diff --git a/images/accessories.png b/images/accessories.png new file mode 100644 index 0000000..b6965fb Binary files /dev/null and b/images/accessories.png differ