在現今數據驅動的時代,有效地分析和利用數據變得至關重要。 然而,傳統的數據庫查詢方式需要使用者具備 SQL 語法知識,這對許多非技術背景的使用者來說是一個挑戰。 Oracle Autonomous Database Select AI 的出現,為這個問題提供了一個完美的解決方案。
Oracle Autonomous Database Select AI 是一種基於自然語言處理 (NLP) 技術的工具,它允許使用者使用自然語言(如英文、中文等)查詢 Autonomous Database 中的數據,而無需編寫複雜的 SQL 語句,Select AI 的主要功能如下:
使用者透過介面(例如 Oracle APEX、應用程式等)以自然語言提出問題,例如「顯示過去一年銷售額最高的十個產品」,這個問題可以透過文字輸入或語音輸入。
Select AI 接收使用者提出的自然語言問題,它會利用大型語言模型 (LLM) 來理解問題的語義。 接著Select AI 會自動從資料庫 Schema 中提取相關的 metadata(中繼資料),例如表格名稱、欄位名稱等,用來補充自然語言問題,使其更易於理解。 最後將補充後的資訊輸入 LLM,生成對應的 SQL 查詢語句。
Select AI 將生成的 SQL 查詢語句發送到 Autonomous Database 執行。
Select AI 將資料庫返回的結果傳回給使用者,並以使用者友好的方式呈現,例如表格、圖表等。
Select AI 會保留先前的問題和答案,以便在後續的互動中理解上下文,提供更準確的回應,就像與真人對話一樣。
Select AI 適合各種需要數據分析的場景,例如:
以下是一個簡單的範例,展示如何使用 Select AI 搭配 OCI Generative AI 服務來查詢 Autonomous Database 中的數據:
SQL> EXEC DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(provider => 'OCI'); |
SQL> EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(); |
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; / |
SQL> exec dbms_cloud_ai.set_profile('OCIAI_LLAMA') |
showsql : 將自然語言的提示轉換成 SQL 語法
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'" |
runsql : 執行自然語言提示的SQL 命令,這是預設操作。
SQL> SELECT AI runsql What is Tom Hanks best known for 結果: |
narrate : 將 LLM 執行的 SQL 查詢的結果傳回 LLM,以產生該結果的自然語言描述。
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