繼上一篇RPA程式思維系列:API是什麼?讓你的流程連上外部世界的觀念介紹之後,大家應該對API有了初步的認識。今天這篇是承諾發的API實戰篇,讓大家可以更了解怎麼樣在實際流程中加上API,今天就來做一個簡易版的AI Agent 因為結合大型語言還是現在很實用的需求,這邊就來串接一下~之後大家也可以參考這個例子套用到你的流程當中。
最近開始工作後也比較少時間,更新時間盡量維持一定的頻率:P
廢話不多說,就來快速講解!
如果之前就有關注會計自動化研究社可能還記得我們這篇文章,[RPA]台銀匯率下載+寄信自動化流程 ,這次我想要接續之前的文章來做個延續應用,假設我們累積了匯率資料,想要進一步比較今日跟昨日的漲幅做出分析,我們大致上可以有三部分:
Step 1|RPA:每天抓資料
- 台銀匯率
- 存成表格(今日&昨日兩個csv)
Step 2|Rule:用程式計算+判斷
- 判斷條件: 今日漲幅超過 1%
Step 3|Gemini: 分析報告
- 輸入:提供數據請大型語言模型進行初階分析
- Prompt(提示詞)格式設計(很重要)
- 輸出:結構化文字分析
先放個分析結果圖

Gemini前期準備
大型語言現在很多種,我選用的是gemini,它目前的API KEY是免費開放的,所以直接決定選擇它。
API KEY是當我們要使用這個API時要先給它我們的認證碼的概念,當它接收到認證碼後認證沒問題就會把資料提供給使用者,所以API KEY會由開發商提供(如果要付費的話通常是付費之後會提供)
會在這個介面取得Gemini API的KEY

先建立一個projects

右上角按Create API key (請忽略反黑的部分是我之前已經有建立的key)

這邊就可以自己取名 key的名稱,並選擇剛剛創建的project
這個KEY請自己保留好不要外流,之後也會把這個KEY放到RPA中
Gemini API呼叫
跟Gemini API互動,我們要先給他我們要問的問題也就是Prompt,在Prompt中我們也去定義它是什麼角色跟我們希望收到怎麼樣格式或風格的回覆,這樣會更有效果。以下是我這次寫的Prompt:
"你是一位資深外匯分析師。請分析下方數據中各幣別的波動,並嚴格按此格式輸出:
回復:
1.現況摘要:(一句話說明市場走勢)
2.數字比對分析:(各幣別跟上漲幅到要顯示出來並說明可能原因)
3.風險提醒:(說明對進出口或市場的影響)
這邊的清單是上漲幅度大於1%%
待分析數據:%currencyPrompt%"
流程步驟
- 將剛剛取得的API_KEY放到設定變數中
- 使用呼叫Web服務: 呼叫Gemini API!
- 將JSON轉換為自訂物件: 這部會將收到API的回覆結果轉換成可以取得的模式
- 用設定變數,抓取AI回復的文字
- 顯示訊息: 訊息視窗通知的功能

2使用呼叫Web服務: 呼叫Gemini API

在呼叫Gemini URL請填寫gemini API endpoint網址
方法: POST (因為我們要傳送資料給Server)
接受/內容類型: application/json (我們傳送資料的格式是使用JSON格式)
自訂標頭: 放上google規定的API_KEY
要求文本: 照google規定的送資料的格式,把我們的Prompt放在"text"後方
{
"contents": [
{
"parts": [
{
"text": "你是一位資深外匯分析師。請分析下方數據中各幣別的波動,並嚴格按此格式輸出:
回復:
1.現況摘要:(一句話說明市場走勢)
2.數字比對分析:(各幣別跟上漲幅到要顯示出來並說明可能原因)
3.風險提醒:(說明對進出口或市場的影響)
這邊的清單是上漲幅度大於1%%
待分析數據:%currencyPrompt%"
}
]
}
]
}
成功呼叫Gemini API後 它會回傳以下這一串東西,而我們要的回復是在放在"text"後面那一串文字,我們要把那一區塊的字串取出來
{
"candidates": [
{
"content": {
"parts": [
{
"text": "回復:\n1.現況摘要:市場普遍呈現非美元貨幣及新興市場貨幣的顯著上漲,暗示風險偏好回歸。\n\n2.數字比對分析:\n* **「SEK」(瑞典克朗) 與「ZAR」(南非蘭特)** 分別以2.9%和2.8%的漲幅領跑,顯示市場...."
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": 184,
"candidatesTokenCount": 475,
"totalTokenCount": 2860,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 184
}
],
"thoughtsTokenCount": 2201
},
"modelVersion": "gemini-2.5-flash",
"responseId": "WclXaaT-H86D1e8PwYrY8AM"
}
3將JSON轉換為自訂物件
而要取出資料就要使用將JSON轉換為自訂物件功能,這部會將收到API的回覆結果轉換成可以取得的模式,在方框內放%WebServiceResponse2%這個變數即是上面回覆回來的那一大串資料。

JSON轉物件
4用設定變數,抓取AI回復的文字
轉換成物件之後,就可以去抓取裡面的文字內容,這裡的意思表示
- 抓candidates清單(=陣列=List=Array)的第0個元素(=index)
- 抓content(Key)後面的Value會抓到parts
- 抓parts(Key)後面的Value(清單=陣列=List=Array)的第0個元素(=index)
- 抓text(Key)後面的Value -> 終於抓到text文字了

設定變數名稱ai_text
5顯示訊息: 訊息視窗通知的功能
最後一步就是把剛剛的ai_text放到訊息視窗呈現結果。

RPA - Power Automate流程
上一部分先提供API串接的方式讓大家知道如何使用Power Automate的API功能,但整個流程其實還有一大部分是處理資料清洗/準備,整個流程拉完發現有34行,每格區塊都有自己的設定因為版面關係好像沒辦法一個一個截圖放上來說明,有興趣了解設定細節的話可以到我們的商品區域,那裡我提供了完整程式碼可以下載來使用,這裡就附上RPA流程圖讓大家可以知道我這個流程在拉的時候思路是怎麼走的

流程圖,可以照這樣的思路去拉流程
總結一下
在拉Power Automate流程時前面一大段是在做資料處理(也是前面幾篇文章有提到的資料清洗也包含資料計算)。可以回去複習RPA程式思維系列:資料格式轉換,確保自動化流程順暢的關鍵
等待資料準備就緒,也篩選出漲幅超過1%的幣別後再整合Prompt指令,把指令送給Gemini API(Gemini接收我的請求),最後顯示分析報告(Gemini做出回應)。上一篇API篇提到的文章RPA程式思維系列:API是什麼?讓你的流程連上外部世界
現在把流程都拉出來,但是整個流程一直線下來變得非常難看懂也會越來越難維護,尤其是如果這個流程越拉越長的話,未來重新回去看前面可能都忘記自己做了什麼關鍵性的操作,除了仰賴好習慣,有做好的註解之外,還有什麼方法? 可以期待一下之後的模組化思維文章,在這篇文章中將會帶你整理好流程,讓你無痛維護也可以無痛交接!
PS by Chi: 這邊用了小小的例子來做到和現在常用的AI做一點互動,但實際上的案例一定複雜多了吧!歡迎你提供你的想法,讓會計自動化研究社有機會來實現這些流程分享給大家~














