在 Oracle APEX 中使用 AI 輔助開發的專案管理應用

Oracle APEX 是用於 Oracle 資料庫的低代碼應用開發平台,我們會依照 Oracle LiveLabs 這篇文章 Smart Project Management App with AI-Assisted Development in Oracle APEX 中的一步一步的教學引導,在 Oracle APEX AI Assistant 輔助(沒有AI幫忙不會寫程式了😂)下建立一個專案管理應用程式,詳細請看 這篇教學

立即體驗

透過連結登入並先體驗 AI 生成的 專案管理應用程式

帳號: stelladai
密碼: 00000000

oracle-apex-ai-development-10-1

獲取免費開發環境

進入並註冊 Oracle Apex,點擊 Free APEX Workspace,完成資料填寫。

oracle-apex-ai-development-1

完成資料填寫後,幾分鐘後應該會收到一封 Oracle APEX 的電子郵件。
oracle-apex-ai-development-2

Workspace 在登入 Oracle Apex 環境時會用到喔!

點擊電子郵件中的 Create Workspace,引導你建立工作區。
oracle-apex-ai-development-3

接著,引導你變更密碼。
oracle-apex-ai-development-4

帳號密碼 在登入 Oracle Apex 環境時會用到喔!

註冊完成後即可使用Workspace及帳號密碼登入 Oracle APEX Workspace
oracle-apex-ai-development-5

創建 AI Service

點擊「應用程式產生器」,點擊「工作區公用程式」,點擊「生成式 AI」,建立 OpenAI Service。
oracle-apex-ai-development-6-1

oracle-apex-ai-development-6-2

記得要先去取得一組 OpenAI API keys

安裝範例數據集

點擊「SQL 工作室」,點擊「公用程式」,點擊「範例資料集」,找到「專案資料」後點擊「安裝」、「下一頁」、「安裝資料集」、「結束」。
oracle-apex-ai-development-7-1

安裝完後可查看資料庫物件。點擊「SQL 工作室」,點擊「物件瀏覽器」,找到左側的「表格」後,即可看到每個表格的資料欄位資訊及內容。
oracle-apex-ai-development-7

AI 創建應用

點擊「應用程式產生器」,點擊「建立」,點擊「使用生成式 AI 建立應用程式」。

提示詞:
創建具有 Projects, Milestones, Status, Tasks, To Dos, Links 和 Comments 的專案管理應用程式,並啟用所有功能
Create an application with Projects, Milestones, Status, Tasks, To Dos, Links, and Comments. Also, enable all the Features

注意,頁面每次生成結果不一定相同喔!可以再給提示詞來修正應用程式,因為一旦建立就無法再用提示詞的方式修改了,所以確認都沒問題,再點擊「建立應用程式」。
oracle-apex-ai-development-8

點擊「設定外觀」,點擊「Redwood Light」。
oracle-apex-ai-development-9-1

oracle-apex-ai-development-9-2

點擊「建立應用程式」,AI 開始自動生成應用程式。
oracle-apex-ai-development-10-3

生成完後會跳轉至應用程式後台頁面,即可點擊「執行應用程式」。
oracle-apex-ai-development-10-2

一個專案管理的應用程式就建立完成囉!(OH YA!)
oracle-apex-ai-development-10-1

AI 優化應用

接下來,我們來用 AI 輔助優化應用程式。

更改選單格式

將原本向下滾動長清單,改成可搜尋的、有不同欄位的列表格式。
oracle-apex-ai-development-11

進入「14 - Project Task Todo」的頁面設計工具頁面。

點擊「P14_PROJECT_ID」元件,在右側窗格中「值清單」,點擊「前往 值清單」。
oracle-apex-ai-development-12

點擊「編輯元件」。
oracle-apex-ai-development-13

點擊「選取資料欄」。
oracle-apex-ai-development-14

加入 STATUS_ID, DESCRIPTION, COMPLETED_DATE 欄位。
oracle-apex-ai-development-15

點擊「套用變更」。
oracle-apex-ai-development-16

回到「14 - Project Task Todo」的頁面設計工具頁面。

點擊「P14_PROJECT_ID」元件,修改右側窗格內容。

  • 識別的類型: 選擇「彈出視窗 LOV (Popup LOV)」

oracle-apex-ai-development-17

點擊「儲存」並執行應用程式,即可看到原本 Project 向下滾動長清單,改成了可搜尋的、有加入 STATUS_ID, DESCRIPTION, COMPLETED_DATE 欄位的列表格式。
oracle-apex-ai-development-11

連動選單選項

將選項內容根據上一個選單所選擇的項目而連動改變。
oracle-apex-ai-development-24

進入「14 - Project Task Todo」的頁面設計工具頁面。

點擊「共用的元件」。
oracle-apex-ai-development-18

點擊「值清單」。
oracle-apex-ai-development-19

在值清單頁面中,點擊 EBA_PROJECT_MILESTONES.NAME 右方的「複製」。
oracle-apex-ai-development-20

新值清單名稱輸入 EBA_PROJECT_MILESTONES.NAME_P14。
oracle-apex-ai-development-21

進入「EBA_PROJECT_MILESTONES.NAME_P14」,在 Where 子句中輸入以下語法。即會根據 Project 選項的當前值 P14_PROJECT_ID 限制返回 Milestone 選項。

1
project_id = :P14_PROJECT_ID

oracle-apex-ai-development-22

回到「14 - Project Task Todo」的頁面設計工具頁面。

點擊「P14_MILESTONE_ID」元件,修改右側窗格內容。

  • 值清單: 選擇「EBA_PROJECT_MILESTONES.NAME_P14」。
  • 父項項目: 選擇「P14_PROJECT_ID」。

oracle-apex-ai-development-23

點擊「儲存」並執行應用程式,即可看到 Milestone 選項內容會根據 Project 選項而連動改變。
oracle-apex-ai-development-24

增加表格欄位

在表格中增加 Project Name 和 Milestone Name 欄位,需要使用 SQL 將 Projects 和 Milestones 表關聯起來。我們將會使用 Oracle APEX AI Assistant 來產生此 SQL 語法。
oracle-apex-ai-development-33

進入「13 - 代辦事項」的頁面設計工具頁面。

點擊「Project Task Todos」元件,修改右側窗格內容。

  • 來源的類型: 選擇「SQL 查詢」
  • SQL 查詢: 點擊「程式碼編輯器」

oracle-apex-ai-development-25

點擊「APEX 輔助程式」,輸入所需的提示詞。
oracle-apex-ai-development-26

提示詞:
通過使用子查詢連接 EBA_PROJECTS、EBA_PROJECT_TASKS 和 EBA_PROJECT_MILESTONES 表,從 EBA_PROJECT_TASK_TODOS 表中檢索詳細資訊,包括關聯的專案和里程碑名稱
Write a query to retrieve details from the EBA_PROJECT_TASK_TODOS table, including associated project and milestone names, by using subqueries to join the EBA_PROJECTS, EBA_PROJECT_TASKS, and EBA_PROJECT_MILESTONES tables

APEX 會生成 SQL 語法,點擊「插入」,並點擊程式碼編輯器的「驗證」,驗證成功即可點擊確定。
oracle-apex-ai-development-27

點擊「儲存」並執行應用程式。
oracle-apex-ai-development-28

進入專案管理應用程式的代辦事項頁面,點擊「動作」的「資料欄」。
oracle-apex-ai-development-29

將 Project Name 和 Milestone Name 選入顯示在報表中的欄位。
oracle-apex-ai-development-30

點擊「動作」的「報表」的「儲存報表」。
oracle-apex-ai-development-31

選擇「另存為預設報表設定值」及「主要」報表類型。
oracle-apex-ai-development-32

我們就成功在表格中成功增加 Project Name 和 Milestone Name 欄位囉。
oracle-apex-ai-development-33

增加選單欄位

將選單改成可搜尋的、有不同欄位的列表格式。
oracle-apex-ai-development-42

進入「14 - Project Task Todo」的頁面設計工具頁面。

進入「共用的元件」,複製一個新的「EBA_PROJECT_TASKS.NAME_P14」。
oracle-apex-ai-development-34

點擊「P14_TASK_ID」元件,修改右側窗格內容。

  • 值清單: 選擇「EBA_PROJECT_TASKS.NAME_P14」
  • 點擊「前往 值清單」

oracle-apex-ai-development-35

來源類型選擇「SQL 查詢」。
oracle-apex-ai-development-36

點擊「APEX 輔助程式」,輸入所需的提示詞。
oracle-apex-ai-development-37

提示詞:
通過使用子查詢連接 EBA_PROJECTS 和 EBA_PROJECT_MILESTONES 表,從 EBA_PROJECT_TASKS 表中檢索 id 和 name,包括關聯的專案和里程碑名稱
Write a query that retrieves id and name from the EBA_PROJECT_TASKS table, including the associated project and milestone names, by using subqueries to join EBA_PROJECTS and EBA_PROJECT_MILESTONES tables

APEX 會生成 SQL 語法,點擊「插入」,並點擊程式碼編輯器的「驗證」,驗證成功即可點擊確定。
oracle-apex-ai-development-38

點擊「選取資料欄」。
oracle-apex-ai-development-40

將 Project Name 和 Milestone Name 選入顯示欄位。
oracle-apex-ai-development-39

回到「14 - Project Task Todo」的頁面設計工具頁面。

點擊「P14_TASK_ID」元件,修改右側窗格內容。

  • 識別的類型: 選擇「彈出視窗 LOV (Popup LOV)」。
  • 值清單: 選擇「EBA_PROJECT_TASKS.NAME_P14」。

oracle-apex-ai-development-41

點擊「儲存」並執行應用程式,即可看到原本 Task 向下滾動長清單,改成了可搜尋的、有加入 Project Name 和 Milestone Name 欄位的列表格式。
oracle-apex-ai-development-42

創建 AI 專案助手

創建 AI 專案助手,點擊「Chat with AI Assistant」即可詢問與所選專案相關的任何問題。
oracle-apex-ai-development-62

設置 AI

點擊「編輯應用程式定義」。
oracle-apex-ai-development-43

點擊「AI」,選擇「OpenAI Service」。
oracle-apex-ai-development-44

創建頁面

點擊「建立頁面」。
oracle-apex-ai-development-45

點擊「空白頁面」。
oracle-apex-ai-development-46

頁面定義:

  • 頁碼: 17
  • 名稱: Inline Assistant
  • 頁面模式: 強制回應對話方塊

oracle-apex-ai-development-47

頁碼在接下來的步驟都會用到喔!(我的是 17)

創建項目

進入「17 - Inline Assistant」的頁面設計工具頁面。

點擊「元件」,右鍵點擊「建立 項目」。
oracle-apex-ai-development-48

建立以下 3 個項目。

名稱 類型
P17_PROJECT_ID 隱藏
P17_PROJECT_NAME 隱藏
P17_PROJECT_DETAILS 隱藏

oracle-apex-ai-development-49

創建區域

點擊「元件」,右鍵點擊「建立 區域」。
oracle-apex-ai-development-50

修改右側窗格內容。

  • 名稱: Interact with AI about the Project: &P17_PROJECT_NAME.
  • 類型: 靜態內容
  • 靜態 ID: inline-assist

oracle-apex-ai-development-51

注意名稱中有.喔,是變數名稱一部份要加上去!(&P17_PROJECT_NAME.)

創建運算

點擊「標頭之前」,右鍵點擊「建立 運算」。
oracle-apex-ai-development-52

修改右側窗格內容。

  • 項目名稱: P17_PROJECT_DETAILS
  • 類型: SQL 查詢(返回單一值)
  • SQL 查詢: 開啟程式碼編輯器

oracle-apex-ai-development-53

輸入以下 SQL 語法。

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
'Project Name : '|| NAME ||chr(10) || chr(13)||
'Status : '||Status||chr(10) || chr(13)||
'Project Lead : '||PROJECT_LEAD||chr(10) || chr(13)||
'Completed Date: '||COMPLETED_DATE||chr(10) || chr(13)||
'Budget : '|| BUDGET || chr(10) ||chr(13)||
'COST: '|| COST || chr(10) ||chr(13)||
'Budget versus Cost: '||BUDGET_V_COST || chr(10) ||chr(13)||
'Number of Milestones : '||MILESTONES || chr(10) ||chr(13)||
'Number of Tasks : '|| TASKS || chr(10)||chr(13)
as prompt_context
FROM EBA_PROJECTS_V
WHERE id = :P17_PROJECT_ID;

oracle-apex-ai-development-54

項目名稱、id是使用你的頁碼!(我的是 17)

點擊「標頭之前」,右鍵點擊「建立 運算」。
oracle-apex-ai-development-52

修改右側窗格內容。

  • 項目名稱: P17_PROJECT_NAME
  • 類型: SQL 查詢(返回單一值)
  • SQL 查詢: 開啟程式碼編輯器
1
2
3
4
SELECT
NAME
FROM EBA_PROJECTS_V
WHERE id = :P17_PROJECT_ID;

oracle-apex-ai-development-55

創建動態動作

進入「動態動作」的「載入頁面」,右鍵點擊「建立 動態動作」。
oracle-apex-ai-development-56

點擊「Open Chat Widget」元件,修改右側窗格內容。

  • 名稱: Open Chat Widget。
  • 事件: 載入頁面。

oracle-apex-ai-development-57

點擊「真」的「顯示」元件,修改右側窗格內容。

  • 名稱: Open Assitant。
  • 動作: 開啟 AI 輔助程式。
  • 糸統提示: 使用以下說明回答所有問題。&P17_PROJECT_DETAILS.
  • 歡迎訊息: 您好,歡迎來到專案小幫手。請隨時詢問有關所選專案的任何問題。
  • 顯示方式: 內嵌。
  • 容器選取器: #inline-assist。

oracle-apex-ai-development-58

設定頁面

進入「3 - 里程碑概覽」的頁面設計工具頁面。

點擊「動作」,右鍵點擊「建立 動作」。
oracle-apex-ai-development-59

修改右側窗格內容。

  • 類型: 按鈕
  • 標籤: Chat with AI Assistant
  • 連結的類型: 重新導向至此應用程式中的頁面
  • 熱鈕: 勾選
  • 連結產生器-目標
    • 頁面: 17
    • 名稱: P17_PROJECT_ID
    • 值: &ID.
    • 清除快取: 17

oracle-apex-ai-development-60

設定完成後,點擊「儲存」並執行應用程式。

點擊「Chat with AI Assistant」。
oracle-apex-ai-development-61

使用「Chat with AI Assistant」,並詢問與所選專案相關的任何問題。
oracle-apex-ai-development-62

總結

本篇文章介紹了在 Oracle APEX 中使用 Oracle APEX AI Assistant 輔助開發一個專案管理應用程式,生成初版應用程式時間應該不到 1 分鐘,最後還打造 AI 專案助手讓 AI 使用資料庫內容來回答各專案相關問題,有效解決 LLM 常見的幻覺問題,提高回答的準確性。