2024-10-03|閱讀時間 ‧ 約 10 分鐘

【AI 寫程式】「合併列印」落伍了?問對問題讓 AI 教你製作 Google 自動化收據系統!

本篇適合:
+ 小企業、組織,有「大量發通知」、「印收據」的需求,且需要便於管理的工具。
+ 對 生成式 AI 應用有興趣的朋友
+ 就算你不會寫程式,也有機會快速上手!
本篇目標:
1. 學習如何與AI互動解決內心真正的問題
2. 製作出一個自動化收據開立系統!

筆者雖然過去寫過一些小程式,但比起真正企業的工程師大概還差一大截。這幾個月來生成式 AI (Generative Artifical Intelligence,後文簡稱 GAI)的快速發展,實在令不少人跌破眼鏡。

一直都知道「Google Apps Script」的存在,是一個可以允許你控制和自動化Google文件、試算表、簡報工具,但一來不知道應用場景,一來更不知道怎麼使用,要重新學習一個東西也相當需要門檻(仿間也出了不少工具書、付費課程)。

現在有了 GAI,叫 AI 教你一步一步做吧!以下比較不像是教你怎麼做,而是教你怎麼請AI教你做


開始吧!怎麼「下指令」


首先,我們需要定義任務。切記,這個「任務」你需要好好審慎思考。

錯誤指令:「我想用 Google 做一個自動化收據系統」

當然,AI 可能也會給你一個答案,但它可能並不完全符合你的想像情境。


「想像情境」。有想像,且試圖去「描述想像」,才會有機會讓 AI 正確教你,且做出來符合使用者要求的東西。


以下給你參考我的指令
(很多人會稱之為「Prompt」,而這個動作叫做「Prompt Engineering」):


同時,現在大部分的 AI 都已經支援圖片上傳,也請你上傳幾個相關的圖片,讓 AI 自己去辨識揣摩。

本文使用 Claude.ai 為例


Google Apps Script 使用


先寫在前面,AI 認識的「Google Apps Script」,可能是幾年前的 Google Apps Script,因此他對你的指示是有可能有所落差,不過應該會大同小異,你可以切記這點。

而這邊簡單介紹一下這個工具,可以從 Google 試算表中上層選單「擴充功能 > Apps Script」進入畫面。

Google Apps Script 介面

進入畫面後,就會看到輸入程式碼的區塊,此時你可以把 AI 給你的程式碼直接挑到主要區塊當中,把預設的「funciton myFunction()」覆蓋掉。如果你從來沒寫過程式,請勇敢做這件事,它不會被你玩壞的!儘管玩!(很重要XD)

接著帶你介紹介面,左邊欄位的時鐘號誌是「觸發器(Trigger)」,當你做的自動化工具是「因為某個動作」或「到了某個時間」就要觸發,通常會使用這個工具,有時候我知道了我需要有這樣的功能,會直接在 Prompt 裡面告訴 AI 說我需要使用觸發器。

左邊欄位有「觸發器」和「執行項目」

觸發器:如果有設定觸發器,這邊就會顯示。


(當然,AI 有時候也會自己判斷是否需要觸發器)

觸發器下面是「執行項目」,也就是可以看到所有程式碼執行情況的地方。比起其他程式碼,我覺得 Apps Script 更難去針對錯誤解決問題。因此你的 Prompt 可以多加「能否幫我把程式碼做一些log讓我可以看?」

這裡的 log 不是數學的對數,在程式語言中指的是日誌(logging),通常會有視窗(或檔案)記錄程式執行的過程,幫助開發者理解程式的運行狀況,診斷錯誤和問題。因此,我在 Prompt 裡增加「能否幫我把程式碼做一些log讓我可以看?」後,我就可以在「執行項目」裏看到他執行的過程,讓我更好理解發生什麼事、程式執行到哪。

執行項目裡,如果你有請 AI 輸出 log,則會有一些執行過後的文字放在這邊。


調整細部工作內容、調整錯誤

雷點 1 - 把自己當白癡,跟著 AI 一步一步做

切記,跟著 AI 一步一步做,不要漏掉!

AI 可能出錯,但常常我自己的錯是漏掉 AI 給的步驟,因此請記得鉅細靡遺的嘗試一步一步來,不會的話,也可以反覆詢問AI。

雷點 2 - AI 可能出錯,貼錯誤訊息給他!

貼錯誤訊息,或說「無法成功,請重新思考一次」,都是一種方式,不過,如果能有錯誤訊息,會更能讓 AI 知道怎麼改善!

我的任務:製作收據

最後,直接附上我的成果。

首先準備好一份已經處理好的 Spreadsheet 表格,以及一份收據模板:

Google Spreadsheet 格式

Google Doc 收據模板


在這邊,根據 Claude 最後給我的 code,設定的觸發條件是當 J 欄(收據製作)文字是「未電子開立」且 K欄沒有任何值,我就會開始進行收據製作,並也會轉成 PDF 檔存放到指定的位址!

如果想要直接使用我的程式碼,你需要準備上面兩份資料,搭配我的 Prompt 就可以使用!(記得相關的資料夾也要設定喔!詳見我給 AI 的指令)

成果:清晰影片可看此

成果



Claude 回覆與 完整程式碼


  1. 設置步驟:
    a. 將上面的代碼添加到您的腳本中。
    b. 運行 createEditTrigger 函數來創建安裝的觸發器。
    c. 在腳本編輯器中,轉到 "觸發器" 頁面(左側邊欄時鐘圖標)。
    d. 您應該能看到一個新的觸發器被創建。
  2. 授予權限:
    a. 在觸發器頁面,點擊新創建的觸發器。
    b. 在彈出的窗口中,您可能需要再次授予權限。
    c. 仔細閱讀權限請求,然後點擊 "允許"。
  3. 測試:現在,當您在試算表中編輯 J 列時,應該會觸發 onEditTrigger 函數,而不是原來的 onEdit。這個函數應該有足夠的權限來訪問 Drive。
  4. 錯誤處理和日誌:為了更好地捕獲可能的錯誤,我們可以在 generateReceipt 函數中添加更多的錯誤處理和日誌記錄。

這些更改應該能幫助解決權限問題,並提供更詳細的錯誤信息。如果您仍然遇到問題:

  1. 檢查觸發器是否正確創建和授權。
  2. 如果問題持續,請查看執行日誌並分享詳細的錯誤信息。

如果您需要進一步的幫助或有任何疑問,請告訴我。我們會繼續調試直到問題解決。

程式碼:





分享至
成為作者繼續創作的動力吧!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

作者的相關文章

CT 的其他內容

你可能也想看

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.