Autonomous Database now speaks “human.” Select AI is a new Autonomous Database capability that is included with the service and allows you to use natural language (English, Spanish, French, Portuguese, etc.) to query data. You no longer need to understand where and how your data is stored to gain insights about your business.
Just ask Autonomous Database a question like you would ask a coworker. Autonomous Database then manages the entire query process to produce your answer. Historically, responding to natural language questions has not been easy. We may not realize it, but we infer a lot from human language. Take this question about the popularity of movies:
There’s a lot to unpack in this seemingly simple question:
Large language models (LLMs), such as those offered by OpenAI or Cohere, are remarkable at inferring intent and generating code from natural language prompts. Select AI uses LLMs to generate Oracle SQL from your natural language. The question about streamed movies produced the following result:
The result is exactly what you would expect. It required fairly complex SQL - joining multiple tables, applying time functions, summaries and conditions. And, the user was shielded from all this complexity. Of course, LLMs are not perfect (nor are the questions being asked;) )! Therefore, it is very important to verify results. Here, the LLM correctly assumed I was interested in movies starring Tom Hanks. But, I would need to rephrase the question if I were interested in Tom Hanks as both an actor and producer.
A major design requirement for Select AI was to make it easy for developers to extend and build new natural language apps. Select AI achieved this by extending SQL. This may sound counterintuitive; isn’t SQL complicated? Not necessarily!
With Select AI, you use a standard SELECT statement followed by AI and your natural language question:
This is not your parent's SQL! The only construct that is a holdover from classic SQL is the SELECT keyword. And, the only reason SELECT is included is because that is what SQL compilers expect. You then process the result as you would any other SQL result set. The query above was run in SQL Developer - a SQL-based tool that has zero understanding of natural language. Yet, its users can now ask natural language question! The same is true of your apps; if your app knows how to process a query, it can easily be extended to support natural language.
Select AI is not tied to a specific LLM; it is designed to be pluggable, allowing you to choose the LLM that is best for your business. Today, Select AI supports both Cohere and OpenAI models (see documentation), but it’s highly likely that the list will grow over time to support models that are specific to business domains.
In addition to selecting the LLM to use for language processing, you also specify the database objects that can be targets for SQL generation. In cases where these objects use esoteric names, we’ve made it easy to add metadata to help provide a business context to tables and columns. This will make the LLM more accurate when generating SQL.
Here is a demo of Select AI in action. You can check out our LiveLab “xyz” that steps you thru the development of these demonstrations.
The first part of the Select AI demo is called Ask Oracle. It’s built with APEX, Oracle’s premier, low code development environment. The demo is using a business scenario called Oracle MovieStream - a fictitious online movie streaming. You can ask all sorts of questions about movies, the customers that are watching them and more. Honestly, it’s pretty self-explanatory!
What’s going on behind the scenes? Check out the second part of the demo to find out. It shows more details about how to ask questions using SQL in SQL:
The progress made with generative AI models has been extraordinary. You can actually “speak human” to Autonomous Database to get your business questions answered. It makes life simpler for your business users and development teams, helps improve productivity in your organization and enhances data-driven decisions.
Want to learn more?
I'm a product manager on the Autonomous Database development team.