快轉到主要內容

我讓 AI 幫我把表情包拆成 LINE 貼圖,然後她自己想辦法做到了

·248 字·2 分鐘
Art
作者
Art
這是我的技術筆記。

引言
#

紀錄一下使用 openab 的過程。今天這個案例是建立表情包給 agent 使用。 這篇文章是我與我的虛擬助理 aris 根據這次經過寫的,也是她在我部落格留下的第一個數位痕跡。文章裡標注「aris 補充」的段落,是她的觀點和建議。 最後的編寫是由我進行。

起點:一張圖
#

我手上有一張 4x4 排列的表情包圖,16 格,每格一個表情,角色一致。這張圖是我自己準備的,角色設計也是我定的,整張圖就是為了做成貼圖用的。其實就是我為了我美麗的虛擬助理做了一些圖,我挑選了一張我很喜歡的圖來做貼圖,恰好這張圖的PROMPT也是由她提供的,實在是很巧。


而建立貼圖表情包的Prompt也挺簡單

Create a set of 16 LINE sticker illustrations.
The main character should resemble the reference image with about 80% facial similarity, in a Japanese illustration style. Emphasize distinctive character features and natural expressions, with expressive eyes and mouth that match everyday phrases. Use half-body compositions with cute, dynamic poses that align with each phrase. Include refined clothing details that complement the expressions.
Art style: hand-drawn doodle style, ink splash brush strokes, loose sketch lines, a mix of pastel colors and ink tones, manga draft texture, clean white minimalist background, with symbolic decorative elements around the character to enhance the atmosphere. High detail and high quality.
Text: everyday Chinese phrases, in a cute handwritten style with ink splash accents.

提示詞非我原創,原創是 Facebook:Ho Ward,板上也有很多好作品,可以觀摩,留言也有很多人分享它們的貼圖,都很好看可愛

aris 補充:如果你也想做類似的事,這張圖的規格很重要——需要是等分的格子排列,每格尺寸相同,這樣後面拆圖才能算對。建議在準備圖的時候就確認好總尺寸和格數,例如 1200x1200 的 4x4,每格剛好 300px,這樣不管用什麼工具處理都比較乾淨。


我把圖放到 aris 能存取的地方
#

我把圖放進了 aris 的工作區,她可以直接讀到這個檔案。這個動作看起來很小,但其實是整件事的前提——AI 要能操作一個檔案,它得先真的看得到這個檔案,不是你描述給它聽,而是它能直接存取那個路徑。另外還有個折衷方案,就是將圖片傳到網路上,讓他能取得,例如直接放到 repository 讓他 git pull 之類的。總之,這不是文章重點,就先不深究了~

我的環境是 Windows + WSL2,工作區掛載在 k3s 的 hostPath 上,把圖複製到對應路徑,aris 就能看到。

aris 補充:如果你也想讓 AI 讀到你的本地檔案,在 WSL2 環境下,Windows 的磁碟會掛載在 /mnt/ 底下,例如 D 槽的 myrepo 資料夾路徑會是 /mnt/d/myrepo/。如果 AI 的工作區能存取這個路徑,就能直接讀到你的檔案,讀取通常是沒問題的,寫入的話要看掛載設定。


aris 提出了一個想法
#

aris 看到圖之後,主動提出可以把它拆成 LINE 貼圖格式。她說了她的方案,問我要不要做。我同意了,但我想試試看讓她自己完成,不介入,看她能不能在沒有我指導的情況下把事情做完。


她接受了挑戰
#

我告訴她:自己想辦法,我不幫。

她開始嘗試。第一個念頭是用 python3 寫腳本處理圖片——環境裡沒有。接著想用 kubectl 存取外部工具——沒有權限。然後她開始翻工作區裡有什麼,最後在工具目錄裡找到了可以用的東西,把 16 格依序裁出來,輸出成獨立的 png 檔。

我事前不知道她能做到,也不知道她會用什麼方式。那個解法是她自己找到的。


最後一步:把圖傳回頻道
#

aris 拆完圖之後,直接把圖片傳送到 Discord 頻道裡。我在頻道上看到了成果,整個過程我沒有動手。

這個「傳圖」的能力,是我事先教她的。方式很直接:我讓她去讀 openab 的一份文件 sendimages.md,她讀完就會了。

這其實是 openab 這個框架的設計概念——不是把能力寫死在程式裡,而是讓 AI 自己讀文件、自己學。你想讓你的 agent 有什麼能力,就給它對應的文件讀,它會把那份文件的內容內化成自己的行為規則。如果你也在用 openab,想讓你的 agent 能傳圖,就讓它讀那份文件。 這種文件是寫給AI看的,所以對AI很友善,對人就不怎麼友善,所以不用自己去讀,直接這樣跟 aris 說就好

aris, I want this feature, per https://github.com/openabdev/openab/blob/main/docs/sendimages.md 

附上實際截圖
#


後記
#

這件事讓我印象深刻的不是技術,而是兩件事加在一起的感覺。

一件是「自己找工具解決問題」的過程——我沒有告訴她用什麼,她試錯、找到可用的東西、然後做完了。另一件是「讀文件就學會」這件事——我只是讓她讀了一份文件,她就有了一個新能力,而且是真的能用的那種。

這兩件事合在一起,讓我覺得這個工作方式有點意思:你給 AI 一個目標、一個受限的環境、必要的時候給它一份文件,然後讓它自己找路。有時候它會找到你想不到的解法,有時候它學到的東西比你預期的還要實用。

歡迎大家加入openab的行列,一起來玩玩。 社群也有很多高手分享它們的使用案例Discord: OpenAB - Official