跳至主要內容

我在不會寫 code 的情況下做出一個桌面工具

當各種AI工具迅速發展的情況下,大家也開始製作自己常用的工具,更進一步公開分享給大家使用,例如 Jimmy Su 就分享自製的沉浸式翻譯工具,滿足一般人平時上網閱讀外文頁面的需求;進一步像是Justin Lee 開發的 ccxray,讓Claude Code的使用者可以監看Claude Code與Anthropic API之間的互動,使 AI Token 的消耗變成視覺化的儀表板。

為什麼做這個工具

AI 幫助許多一般網路使用者做出適合自己使用的工具,我自己也曾分享自己的經驗,現在做出一個應用程式的門檻已經降低許多,AI不會讓程式設計工作消失,反而讓更多人投入這樣的工作,從這個角度看應該是好事。

我自己也用AI打造一些工作上會使用的工具,包括後來做的這個「AI-Doc-Translator」,這是獨立自我日常工作使用的工具的其中一個功能,做成一支桌面程式。

由於每天都會接觸到外文論文、期刊,很多PDF檔下載後,只會放在儲存空間裡,或是丟到電子書應用程式裡,但什麼時候再打開?打開還要再閱讀外文的摘要、從頭理解?這些都會消耗掉耐心,於是我讓AI先幫我摘要重點,讓我大致了解檔案內容、記錄後,再做關聯成為自己的知識庫。

這個工具主要的功能是翻譯、摘要,它不是通篇翻譯,也不是改寫作者的內容,只做摘要,長期累積起來的文件會相當可觀,就可以做成知識庫應用。人們通常在下載文件時,自己已經先篩選過資料了,也不是隨便下載,所以使用者自己就是守門員。

為什麼不用 Notebook LM 就好

當然也有很多人習慣把檔案抓下來後丟進各種AI工具,Notebook LM、各種AI Chatbot或是翻譯軟體,但我自己在使用後的心得是,因為資料量太多,Notebook LM的效能會很差,而各種AI Chatbot 在對話結束後,使用者要再找回對話記錄可能還要花時間找尋。那為什麼不平時就開始做知識庫呢?所以在翻譯、摘要的過程中,也是在建立自己的知識庫,存在某個資料夾,可以再利用各種工具來搭建。

我自己是使用 Obsidian 配合 Claudian Plugin 一起使用。在閱讀由LLM產出的摘要時,我一定會遇到無法理解的內容,就可以再使用Claudian進一步「討論」內容,或請它解釋。於是文件就不是只有文件,而是可互動性的內容,也不會只在電腦裡積灰塵。

製作「AI-Doc-Translator」的過程

這不是我第一次用 AI 做工具。之前做過 DeepTechScout 的經驗,也用 AI 協助文字探勘的網站,所以對「把想法說清楚、讓 AI 幫你實踐」這件事已經有一些感覺。這 次的「AI-Doc-Translator」起點很簡單:我知道自己要什麼,也知道 AI 能幫我做到。

過程中最讓我意外的,是整個開發過程比我預期的更有趣。做網站的經驗讓我知道無障礙支援很重要,所以一開始就要求符合 WCAG 2.2 AA 標準,支援螢幕閱讀器、完整鍵盤操作,AI 幫我把這些實作進去。安全性也是,API 金鑰不能存成純文字、日誌輸出要自動遮蔽金鑰字串、輸出路徑要限制在指定目錄內,這些在對話過程中逐步確認、修改,最後還一起整理出 SECURITY.md,說明漏洞回報流程。README 的著作權聲明和免責聲明也是從討論著作權風險開始,把使用者需要知道的事情一起寫清楚,也許不是什麼大工程,但試著在設計階段就納入Security by design 與 Accessibility by design的概念,不等做完再補。

回頭看,技術門檻確實降低許多。GitHub 現在甚至可以直接從程式碼生成桌面安裝工具,很多過去需要時間、外力協助的事現在快很多。但知道要問什麼問題,來自以前的工作積累。無障礙的意識、著作權的判斷、安全性的概念,這些是我帶進來的,AI 幫我實現。AI 降低的是執行門檻,經驗的門檻依然存在,只是現在可以想到什麼就做什麼,不再被「不會寫程式」這件事卡住。

Image by Gerd Altmann from Pixabay

留言

此網誌的熱門文章

為什麼我支持《數位中介服務法》草案

在經歷許多次反抗台灣政府所立的網路相關法案後,我其實沒想過除了《數位通傳法》草案外,我還會再支持另一部法律草案,雖然 《數位通傳法》草案還壓在某處,但如果有人讀過《數位通傳法》的草案,再讀這部《數位中介服務法》草案,就會知道這部草案的重要性,而且也可以顯示台灣網路使用者的成熟度,更重要的,這是我第一次看到引入國際網路治理多方利害關係人機制的法律草案,而且是用在正確的地方。 有興趣想知道我在讀法條時的筆記和當下的感想,可以看我這則  Tweet 。這篇不使用逐條讀法條的方式來寫,因為那會讓人昏昏欲睡,我也不去比對歐盟《數位服務法》,因為我在讀《數位服務法》草案時,該草案特別強調是加強歐盟 E-Commerce Directive  ,而不是取代它,而且更多著重在預防盜版、仿冒,保護消費者的法案。所以當有輿論提到參考自《數位服務法》的《數位中介服務法》草案限縮言論自由時,我其實是一頭問號的,但一直到今天我才有時間讀《數位中介服務法》草案,這篇文章出自於我的個人經驗和閱讀法案的心得,與擔任的職務無關。 如果最近注意一下網路的資訊,有幾件事該注意一下: 有許多人在社群平台,如Facebook或是其他網路看到一些廣告,而這些廣告可能是要你支持台灣農產品、台灣製的產品,結果你收到時,上面還寫著簡體字,通常這是所謂的一頁式廣告詐騙,而行政院的消費者保護會在 2019 年時就有新聞稿在警告「 一頁式廣告詐騙多 小心查證保障多 」,之後像公視或是其他單位都有相關的活動在提醒大家小心這類廣告。但目前這些廣告其實多數不易處理,因為不容易取證、保留證據,等到追查到時已經找不到對方了。 有不少親密照片與影片在情侶分手後,被報復性的上傳到情色網站或透過即時通訊傳到親友的帳號裡,或是被洩露個資,遭到公開的霸凌。 之前有一個專題:「 青春煉獄:網路獵騙性私密影像事件簿 」,光是讀完這個專題報導我就覺得受傷。 有人使用 Deep Fake 把台灣名人的臉部照片合成至色情影片再上傳至色情影片平台,今年 7 月才被判刑。 還有許多創作者藉由網路分享作品時,被人盜用,甚至有國外的使用者修改台灣人的作品去參與比賽還獲獎。 有一次打電話問某個部會,如果消費者在國外電子商務平台買東西,但資料被外洩怎麼辦?雖然政府願意協助,但衡量至國外打官司的時間和成本,就會讓人卻步。 有些行為在現實世界裡有法...

食品溯源與營養成分分析程式的困難

我之前寫過自己在做一個 分析營養成分的Bot ,用最簡單的方式追蹤每日、每週、每月的營養攝取狀況。做著做著,我發現一個問題:如果這個 Bot 要進一步給予建議,會踩到 誰該給建議的界線 。剛好最近食安新聞不斷,我想起自己多年前放棄的食品溯源專案,於是把原本分析營養成分的 Bot,延伸成一個自己動手做的食品溯源程式。這篇文章想分享的是這個延伸過程裡遇到的三個矛盾:營養分析的黑盒子問題、自己做溯源程式時撞到的資料難題,以及消費者實際採購行為與溯源理想之間的落差。 營養分析的黑盒子 目前市面上以AI分析營養成分的應用,有一塊我一直覺得模糊的區域:使用者無從得知分析依據為何。另外還有一個更根本的問題,使用者吃東西為什麼要先拍照才能吃?拍照分析一餐,本身就是打斷用餐過程,也不符合大部分人吃飯的日常邏輯。唯一真正說得通的應用場景,是把這個功能放進眼鏡裡,讓使用者所見即可分析,不需要額外動作。 即使先不談拍照這件事,營養分析Bot本身也有精準度的問題。脂肪與鈉含量是最難估算的兩項,AI會給出數字,但使用者不知道這個數字的計算依據,實際使用中也會遇到辨識失敗的案例,還需要「教會 AI 學習與記憶」歷次辨識的結果。 動手做自己的食品溯源程式 做到現在,大概能理解當初這類食品溯源計畫為什麼沒有做出大家都想用的成品。核心困難是各方資料庫格式不一致,在沒有 AI 協助的年代,清洗資料、做正規化本身就是一個工程量很大的任務。現在有AI協助,清洗與統一格式的速度快很多,但還是存有資料流失的風險。 台灣食藥署有提供開放資料下載,實際使用後我發現幾個資料本身的漏洞,而這些漏洞不是食藥署一個單位能單獨解決的: 進口商紀錄無延續管制:曾有食安風險新聞的進口商,依然可以繼續進口食品; 廠商自主登錄無強制力:部分食品不會主動登錄食藥署平台,登錄與否全靠廠商自願,沒有強制規範; 品牌名稱相近造成混淆:統一生機、統一生醫、義美生醫、義美生技等大廠的名稱相近,AI在判斷資料時,很難判斷該合併還是分開處理,還需要去工商登記查詢。 相對地,國內較大品牌像聯華、光泉、義美,通常會自建食品溯源網站,並在自家包裝上印刷條碼,消費者掃描條碼就能連結到來源與檢驗結果。這類大品牌的資料完整度高,我做溯源程式時,對於大品牌並建有溯源平台的資料則以品牌自建平台的資料為主,不會再抓下來。 使用行為的矛盾 整個使用流程是拍照或掃描、上...

停不下來的更新

一直更新Blog的版型,我必須承認是一件很無聊的事,不過這次除了版型的更動外,連分類和文章內文也做了變動。 先說分類吧!在Blogger叫做Label,不過,Blogger在分類上有一些bugs,只能使用英文,以前這裡的分類大多都是中文分類,結果在link上就是一堆亂七八糟的亂碼,所以我把它改成英文,同時細分一些項目,把出版的文章和一些教學的文章分開來,雖然已經很久沒寫新的,不過既然放上來就做個分類。然而就在新舊label移轉之後,發現中文的label還會存在,而且還會出現莫名奇妙的幽靈數字,Blogger知道這是個bug,不過似乎一直沒有修復的跡象。所以在分類上就出現了如右圖一般的情況,在英文標籤裡會有文章,但是在中文標籤裡是沒有文章出現的,但奇怪的是,有些中文標籤已經不見了,然而在Beauty-Beta這個部落格裡,我也做了分類上的變動,由於以前用英文開頭的Label,所以在label的變動上倒是不用擔心會有這樣的情況。 再來是文章的內容,把以前的文章重新分類,標題前面的一些全形符號或是分類刪掉,除了一些比較特殊的,我會留著,例如壹陸壹,因為在label裡為了統一,我留著原本的E61,但人家的店名是壹陸壹,所以留下文章標題前面的中文分類,另外像是Entertainment項目裡,可能有音樂,可能有電影,就會在前面留下中文分類。 前簡單的CSS和HTML改成現在的XML,這無疑是讓我們再多學些東西,能有時間鑽研當然是好事,可是轉換後,我一直沒有時間去改,當然多半也是因為懶,到現在也是拿別人做好的版型去改配色而已,所以像裡面的設定、安裝的widget和analytics的javascript都要一個一個重新裝,上個星期幾乎每天都弄到天亮才睡,只為了整理這個blog。也因為之前在blog裡放了technorati的分類,所以還要修改以前的文章,把它們加入technorati,還有裡面的語法要更改,所以這個星期甚至下個星期都會一直收到這裡的更新訊息,對於不斷收到訊息干擾的朋友們,在這裡說聲抱歉。 在版面上因為blogger系統在feed接受上的更新,所以還有四個東西沒加進去,分別是最近的文章(Recent Post)、Comments(目前是用別人寫的widget)還有GVO的feed訂閱顯示、Beauty-Beta的訂閱顯示也都還沒放上去。 在Feed訂閱上,以前bl...