AI-Powered Apps

Alastair Steele Jul 31, 2024 2:21:23 PM
AI-Powered Apps
5:39

Introduction

With the release of APEX 24.1 and Oracle 23ai (ADB date TBC), I was excited to experiment with their respective new features, assessing how they could be combined and manipulated to bring a new wave of user-centric improvements to our APEX applications.

Seeing my colleague Lee Burgess's initial success in building a Euro 2024 app with APEX and AI Assistance (so close England), I was encouraged to try using AI to see what capabilities I could add for the application user.

I had three areas in mind that I wanted to investigate to see what could be achieved: Chat Bots, Dynamic Reporting and ‘Intelligent’ Search.

AI-Powered Apps
Chat Bots

Chatbots in APEX are self-contained regions accessed via a dynamic action. They appear either inline when targeted at a specific region or as a pop-up. If you’ve ever used ChatGPT or something similar directly before - it’s essentially exactly that, only native to APEX. Credit where due, it does manage a lot of the leg work; we don’t need to style a comment system or handle the request/response back and forth between each reply, for instance. But it doesn’t go much further than that. APEX is primarily table and data-driven, so unless you have large amounts of text to help users interpret (T&Cs, user manuals or FAQs), there isn’t much here to engage an application user.

Opportunity

Allowing DBMS_CLOUD_AI AI Profiles to be set against the Open AI Assistant dynamic action would enable persistent, context-driven data conversations between the user and application.

 

AI-Powered Apps

Dynamic Reporting

Reporting-wise, again, I was looking for the ability to leverage AI Profiles to help users generate safe, scoped-to-schema SQL queries (in the background) that would feed directly into and refresh an associated report using APEX native components. Classic reports can already handle a dynamic number of columns, so it didn’t seem like a stretch to assume something in this direction had been improved with AI.

In short, it hasn’t.

I can at least say this functionality can be achieved using the latest features of the 23ai database (see DBMS_CLOUD_AI.GENERATE). But it would have been great to have an out-of-the-box low-code solution.

Opportunity

A new region is similar in implementation to Smart Filters or Faceted Search, where you can point the region handling the search functionality to a filtered region, obscuring the complicated bit in the middle of handling the prompt, interpreting a response and refreshing the report displaying the data.

Another area I was expecting enhancements in comes in two flavours: application level searching a la the existing Search region/Search Configurations under Shared Components. And string comparison searches as a further improvement to the already very capable Tokenized and Oracle Text search functions.

Again, nothing on this front, I’m afraid.

As before, for 1 of the nice-to-haves above, we can implement our own capability by making use of the new VECTOR column type and DBMS_VECTOR package in 23ai database, which would not only allow us to compare words or partial words within a string but also all contextually and (multi-)linguistically related words as well.

 

Opportunity

As an enhancement to application-wide (UI) searching, it would be good to set page and region-associated AI descriptions/prompts in new text-area-based attributes explicitly for the use of AI services in APEX. Then, our newly AI-powered Search region would be able to leverage that information to bring back relevant suggestions based on NL (natural language) interpretations.

Also, to facilitate vector comparisons between the user search text and column data, it would be good to have APEX native configurations to retrieve the embeddings of the text typed by a user automatically, in the same way, general AI services can be configured directly into an APEX workspace and used elsewhere by reference. Then, we could have a dedicated vector-based item or region that can be used with the VECTOR_DISTANCE function to filter and order by top results.

 

Summary

Overall, APEX has taken a big leap forward. Going from a large Workflows release into an equally impressive AI release. It seems the Oracle APEX team are aiming high and is certainly picking up momentum.

As with any new venture, some things land (developer assistance), and some fall short (user-facing features). But having tracked ongoing APEX development for a while now, it’s a certainty the APEX team will use this solid footing to build on and continuously improve their AI offerings.

I should also highlight that a lot of the functionality I’ve mentioned relies on the 23ai database. 23ai isn’t yet available for upgrade on production OCI ADBs, which almost certainly factors into the decision-making for feature and release planning. While we’re in this AI transition period, the APEX team will be balancing the desire to include what’s new & cool against what’s going to drive value for the majority of their APEX-using (non-23ai) customers.

Thank you for reading. I hope you found it informative and thought-provoking. I’m off to the Ideas & Feature Requests app to check if these thoughts haven’t been submitted already.

For more information, check out our Oracle APEX Services, and if you liked this blog, check out our other APEX blogs here.

Subscribe to Oracle APEX Insights if you want to stay tuned for more APEX updates.