技術專欄

Oracle Autonomous Database Select AI 介紹

Oracle 甲骨文 企業軟體供應商
2025/02/14

前言

在現今數據驅動的時代,有效地分析和利用數據變得至關重要。 然而,傳統的數據庫查詢方式需要使用者具備 SQL 語法知識,這對許多非技術背景的使用者來說是一個挑戰。 Oracle Autonomous Database Select AI 的出現,為這個問題提供了一個完美的解決方案。

功能介紹

Oracle Autonomous Database Select AI 是一種基於自然語言處理 (NLP) 技術的工具,它允許使用者使用自然語言(如英文、中文等)查詢 Autonomous Database 中的數據,而無需編寫複雜的 SQL 語句,Select AI 的主要功能如下:

運作流程

  1. 使用者提問:

使用者透過介面(例如 Oracle APEX、應用程式等)以自然語言提出問題,例如「顯示過去一年銷售額最高的十個產品」,這個問題可以透過文字輸入或語音輸入。

  1. Select AI 接收問題並進行處理:

Select AI 接收使用者提出的自然語言問題,它會利用大型語言模型 (LLM) 來理解問題的語義。 接著Select AI 會自動從資料庫 Schema 中提取相關的 metadata(中繼資料),例如表格名稱、欄位名稱等,用來補充自然語言問題,使其更易於理解。 最後將補充後的資訊輸入 LLM,生成對應的 SQL 查詢語句。

  1. 執行 SQL 查詢:

Select AI 將生成的 SQL 查詢語句發送到 Autonomous Database 執行。

  1. 傳回查詢結果:

Select AI 將資料庫返回的結果傳回給使用者,並以使用者友好的方式呈現,例如表格、圖表等。

  1. 保留歷史紀錄:

Select AI 會保留先前的問題和答案,以便在後續的互動中理解上下文,提供更準確的回應,就像與真人對話一樣。

使用情境

Select AI 適合各種需要數據分析的場景,例如:

實際演示

以下是一個簡單的範例,展示如何使用 Select AI 搭配 OCI Generative AI 服務來查詢 Autonomous Database 中的數據:

  1. 使用 ADMIN 登入 Autonomous Database,建立 OCI Resource Principal,此程序為指定的 AI 提供者啟用身份驗證

SQL> EXEC DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(provider  => 'OCI');

  1. 啟用 Resource principal credential,此程序會建立 OCI$RESOURCE_PRINCIPAL

SQL> EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL();

  1. 建立 profile,指定使用的模型,以及要使用自然語言查詢的 schema 與 table  列表

SQL> BEGIN

    DBMS_CLOUD_AI.create_profile (                                             

        profile_name => 'OCIAI_LLAMA',

        attributes   =>

        '{"provider": "oci",

            "credential_name": "OCI$RESOURCE_PRINCIPAL",

            "object_list": [

                {"owner": "moviestream", "name": "GENRE"},

                {"owner": "moviestream", "name": "CUSTOMER"},

                {"owner": "moviestream", "name": "PIZZA_SHOP"},

                {"owner": "moviestream", "name": "STREAMS"},           

                {"owner": "moviestream", "name": "MOVIES"},

                {"owner": "moviestream", "name": "ACTORS"},

                {"owner": "moviestream", "name": "CUSTOMER_SEGMENT"},

                {"owner": "moviestream", "name": "CUSTOMER_CONTACT"},

                {"owner": "moviestream", "name": "CUSTOMER_EXTENSION"},

                {"owner": "moviestream", "name": "ACTIVITY"},

                {"owner": "moviestream", "name": "CUSTSALES"},

                {"owner": "moviestream", "name": "MOVIE"},

                {"owner": "moviestream", "name": "MOVIESTREAM_CHURN"},

                {"owner": "moviestream", "name": "PIZZA_LOCATION"},

                {"owner": "moviestream", "name": "SALES_SAMPLE"},

                {"owner": "moviestream", "name": "WEATHER"}

            ],

            "model": "meta.llama-3.1-70b-instruct"

            }');

END;                                                                        

/

  1. 對目前的資料庫 session 啟用 AI profile

SQL> exec dbms_cloud_ai.set_profile('OCIAI_LLAMA')

  1. 執行SELECT 語法並使用 AI 關鍵字來輸入自然語言來查詢資料庫,可搭配使用多種參數,例如:

SQL> SELECT AI showsql

What is Tom Hanks best known for /**自然語言**/

結果:

"SELECT m."MAIN_SUBJECT"

FROM "MOVIESTREAM"."MOVIES" m

JOIN "MOVIESTREAM"."ACTORS" a ON m."MOVIE_ID" = a."MOVIE_ID"

WHERE a."ACTOR" = 'Tom Hanks'"

SQL> SELECT AI runsql

What is Tom Hanks best known for

結果:

SQL> SELECT AI narrate

What is Tom Hanks best known for

結果:

"Tom Hanks is best known for his roles in movies about:

* Apollo 13

* The Vietnam War

* Invasion of Normandy

He has also appeared in films that feature themes of:

* Terrorism

* Homophobia

* Body swap

* Motor cars

Additionally, he has been in movies with mad scientists and has explored the concept of solitude."

簡單來說,Select AI 的運作流程就是將使用者的自然語言問題轉換為 SQL 查詢,並從資料庫中獲取答案,最終以易於理解的方式呈現給使用者。

更多的資訊請參考以下連結或是洽詢邁達特,我們將有專員提供諮詢。

 

參考資訊:

[1] https://www.oracle.com/tw/autonomous-database/select-ai/

[2] https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=383

聯絡 我們