今天要來處理的內容是:將工作流產生的圖片回傳至Line聊天室。
我們可以先看到Line的message api指南:
我們需要一個照片連結跟一個預覽連結,才可以將圖片傳到LINE,所以我們需要一個可以存放照片,並且能公開連結的平台。
經過尋找之後,我認為使用「supabase」作為照片存儲的地方是最適合的,除了有免費方案以外,進行照片刪除也可以透過api進行,並且在n8n中也有節點可以使用,所以我選擇這個網站。
首先我們需要在圖生圖的工作流中新增這個流程:
可以看到流程被分成了兩個,判斷從Agent傳過來的query中是否有圖片的資訊,如果有的畫,則進入圖生圖流程,沒有的話則進入文生圖流程。生成圖片之後,就將圖片傳到supabase中:
完成上傳以後,再將網址從set節點組裝後回傳給Agent。
回到Agent工作流中,我們一樣再輸出的節點新增一個判斷條件,判斷Agent回傳內容中是否有圖片網址,有的話則回傳該網址:
接下來就要處理檔案大小的問題,由於Gemini2.0-flash-image-preview沒有提供指定解析度的功能,所以我們需一另外尋找替代方案,其中我發現n8n有一個內建的image節點,可以調整影像大小,不過我嘗試使用後發現他好像無法正常運作,因此我需要再尋找一個方案。
經過尋找以後,我發現可以使用tinyPNG來作為替代方案,每個月免費500次請求的額度也是夠用的,所以我們可以在圖生圖流程中先將圖片壓縮,再將回傳的網址一樣輸入至set中:
最終的結果會是這樣。這麼一來我們就可以把預覽圖片的大小壓縮至1mb以內了。如此一來我們就可以再回到Agent工作流中把最後的步驟完成:
將各項文字、網址的內容mapping到http request節點上,就可以成功回傳訊息了:
這是在Line上面查看的結果(因為我忘記把測試時打上的任天堂星星刪掉,所以圖片會出現那顆星星)。
這樣一來我們就幾乎完成了這個助理的運作,剩下如果有甚麼想要補上的功能也會在明天一併說明。
今天我們把輸出格式的問題給解決了,這樣一來這個agent算是能夠運作了,接下來就要進入測試與除錯的環節,我們將會把這個agent能夠使用的功能都使用一遍,沒有問題時就可以正式啟用這個工作流了。