Feed on
Posts
Comments
Email訂閱

This Post is under 軟體開發

前文以 php curl 來實作在網站伺服器端呼叫 Google Gemini 生成內容(generateContent),但網路上已經有前人把呼叫的細節與資料結構包裝成套件,呼叫Google Gemini API可以非常直覺,用幾行程式碼就打發了;本文使用套件跟前文的差別在於原本以curl呼叫API的部分被封裝程短短的兩行程式碼(以粗體字顯示)。此次要介紹的套件是 gemini-api-php,從安裝到使用。以下是在Windows作業系統安裝的注意事項:

  1. 使用 composer 安裝gemini-api-php套件,若不熟 composer ,可參考這一篇先安裝composer。注意 composer 安裝好了之後會需要 php,如果不想在系統 path 設置 php 路徑,可到 composer 安裝目錄(如 C:\ProgramData\ComposerSetup\bin) 修改 composer.bat,將最後一行:php “%~dp0composer.phar” %* 的 php 前頭加上你所安裝的 php 路徑,如C:\php8.3\bin\php “%~dp0composer.phar” %*
  2. 注意執行 composer 的Console(命令提示字元)其目錄需在你專案的目錄(或是你所設定的lib目錄)之下,以本文來說是在本地電腦測試網站根目錄下的lib目錄,執行 composer,爾後在程式碼的第一行將之include進來,如require ‘/lib/gemini-api-php/vendor/autoload.php’;。以後要發布到外部網站(如冬烘居)時,可以整個壓縮打包,FTP到遠端網站對應的目錄,再解壓縮即可。
  3. 套件可用的Model都宣告在 /vendor/gemini-api-php/client/src/Enums/ModelName.php。不過就在2024/7/12,Google已將其中的 gemini-pro-vision 廢棄,改用 gemini-1.5-flash。 截至本文發表之時,gemini-1.5-flash 尚未加入到 enum ModelName 之中,所以如果想使用 gemini-1.5-flash,可自行修改加入即可,如加入這一行:case GeminiFlash = ‘models/gemini-1.5-flash’;

繼續閱讀 »

Tags: ,

台南行腳

(重建曾文溪複線大橋記)

上個禮拜本來要跟爸媽去川文山,但東方天空雲層太厚,感覺雨就快要落下來,於是退回到西邊的黃金海岸,走了小美軍海濱步道。本周再度前往川文山,但最近都這樣,本來白日大晴天到了下午四點多天色就快速轉為黯淡,標準的夏日午後對流雲系旺盛。不過今日感覺天雖陰沉但有可能不會下雨,於是還是往川文山去了。或許是有一段時間沒去了,以為之前都是從國道一號轉84號快速道路(但其實是國道三號),所以這回就從西庄交流道下來到171市道,經過一處芒果樹綠色隧道。

來到川文山農場停車場停好車已經接近五點了,附近的攤販正在賣力地招攬為數不多的客人,爸媽也去一小貨車看了水蜜桃鳳梨與嬌小的木瓜。試吃了小木瓜,但老媽覺得水蜜桃鳳梨有點意思。這時我還在補拍台鐵第二代曾文溪橋紀念碑-「重建曾文溪複線大橋記」,這塊紀念碑原本位於第二代曾文溪橋北岸鐵道旁,為避免受到第三代曾文溪橋工程損毀而遷移至此。我來到小貨車與爸媽會合後,看他們還沒拿定主意要不要買,便說散步回來再買好了。然而老闆說,他等一下就要回去煮麵給兒子吃,「要不,你們先買了,放在旁邊?」

爸媽又來到另一頭的攤販對水果與蔬菜品頭論足一番,菜瓜一條50;老媽說家附近菜市場,兩條50。至於芒果有「黑香」的。最後我們還是都沒買,依然用「散步回來再看看。」做藉口先走一步。等到回來已經是半小時之後,快要五點半了,攤販果然都收了。只剩下一攤賣ㄅㄨˊ仔的,一條20。我有意交關一下,但老媽無情說不必了。附帶一提,賣芒果的阿嬤看到我陪爸媽出來遊山玩水,還稱讚我一番。

繼續閱讀 »

Tags:

This Post is under 軟體開發

「人工智慧」不是新奇的玩意,但近一兩年這個詞語如同「奈米」一詞被濫用。外界因為台灣電子大廠供應了許多AI伺服器的硬體而誇口說台灣是AI中心,但也有明眼人點出台灣其實只是AI「代工」中心(台灣是AI中心?童子賢:不要飄飄然 是少了代工二字)。現在的AI(尤其是生成式AI)就是人工智慧嗎?請先通過圖靈測試再說,不然只是「一本正經地胡說八道」。

「人工智慧」的極致應如愛因斯坦所說:「專家不過是訓練有素的狗」,但終究無法像人類那樣「對美和良善有生動的感受」;不過愛因斯坦的話恰巧點出「人工智慧」幾個必備重點:「專家的專業知識」(大量領域知識-domain knowledge)、「訓練有素」(機器學習、深度學習),以及像「狗」一樣永遠對人類忠誠的設定。台灣的強項主要在第二項的「一小部分」-提供機器深度學習的算力(藉由AI伺服器);至於學習的演算法發展(BERTGPT…),以及大量訓練後的成果-模型(model,用思維模式來形容生成式AI model更貼切),台灣則幾乎無能為力。我們可以把訓練「人工智慧」類比成「小孩養成」,如胡適所說:「種種從前,都成今我。 莫更思量更莫哀,從今後要怎麼收穫,先怎麼栽 !」我們可以想像從小注重孩子教育以及放牛吃草所養成的小孩未來的發展絕對是完全不同。

而落後多年之後,要靠「惡補」趕學習進度,就得付出代價請「補教名師」來加強。在「人工智慧」領域所謂的「補教名師」就是國外軟體大廠已經訓練好的「模型」(model),這些訓練有素的模型已經能透過網路來提供服務了,如Open AIGoogle Gemini…。本文就是要介紹如何透過熟悉的程式語言(以本部落格來說是PHP)開發接取Google Gemini的生成式AI服務。

繼續閱讀 »

Tags: ,

台南行腳

(喜樹沙灘入口附近的公廁與淋浴設施-如果沒專人維護,髒亂就難免了)

周末孝親行程本來想去有幾年時間沒去的川文山,但車開上了86號快速道路後,東方天空越來越暗,有風雨欲來之勢,這幾天都是這種午後雷陣雨的天氣;由於川文山路程稍遠,想把目的地改為虎形山,但雨滴竟然開始飄落擋風玻璃,於是馬上轉換目的地到西邊尚未下雨的地方,從高鐵閘道路口下86,又重上86,一直開到濱海公路出口,左轉,馬上就是黃金海岸停車場,沒有多做猶豫,就開進去停車。直到此時,我才決定等一下就從喜樹沿著海濱步道走往小美軍,這是上個禮拜因為天氣炎熱而放棄的路線。所以,我是不是很會通權達變?

停好車,往喜樹方面走,爸媽都覺得奇怪,怎麼不是往鯤喜灣遊客中心呢?我說,偶而也得換換口味啊。直到走入喜樹沙灘海邊的水泥步道,爸媽也才終於了解我是想走上禮拜沒走完的路,只不過方向相反而已。

由停車場上到堤岸後往南,經過雙博自行車道30K路標,86號快速道路出口,不多久就來到喜樹沙灘的入口。此處沙灘也常常有人在此踏浪、放風箏,路口也曾有飲料與香腸攤車,以前有幾次我跟小孩從喜樹老街旁(喜樂路、喜樹路340巷)騎腳踏車穿出來過濱海公路就是只到這裡的海灘玩,因為比起南邊不遠的遊客中心那邊,此處海灘比較少人。

不過我們大多只是打發晚餐前的一兩個小時所進行的輕鬆騎車,所以竟然沒有留下任何遊記。其實當年我們騎這條路線的其中一個重要原因是明興路619巷口有間「茶的魔手」,通常我們都會在那裏帶杯飲料再繼續騎到喜樹海邊玩沙,這是兩個小孩都還在國小階段的事了;如今小孩早就已經不跟騎了,而這才不過兩年多以前的事。難怪有人說跟小孩相處的美好時光只有十年而已。

繼續閱讀 »

Tags: ,

台南行腳

(林下有水就稱忘憂)
昨天下午四時許突然下起大雨,於是換成今天下午找個輕鬆平緩的路線跟爸媽去散步。昨天已經說要去鯤鯓了,於是今天的目的地就是鯤鯓。但昨天兩位老人家以為我說的是「鯤鯓」是南鯤鯓,或許他們漸漸忘了龍崗國小那邊也是鯤鯓。我本來屬意「會呼吸的綠色海堤」-鯤鯓海堤公園散步,我以為兩老沒走過,但事實上半年前才跟他們來過,看來我的記憶力也變差了;不過這不是重點,因為天氣太炎熱,鯤鯓海堤公園全無遮蔭,就算堤下步道也差不多,於是馬上折往南,走往黃金海岸方向,好歹西側有大片木麻黃林擋住西照。

我有打算走個一小段就折返,然後驅車前往興達港觀光漁市吃蚵仔煎,但是這個一小段的折返點要設在哪呢?本來覺得應該設在黃金海岸自行車道地標處,但來回至少五公里,有點遠…;走著走著我突然憶起(記憶力又變好了),去年走這一段時有看到木麻林區中間沒有植樹地帶(大約雙博28K)正在施工興建步道(通到喜樹沙灘),這回就走到那邊看看步道好了沒。

昨天下雨,木麻林中的積水未退,現在只要林下有積水一片就稱「忘憂森林」(正版滴加)。再來就是銀合歡正在結豆莢,還有綠樹稍上方的藍天晴空中的薄雲。左側原本的木欄,每隔一段就拆掉改設成石座椅,是不是木柵欄被偷怕了,反而生出了這個餿(誤)…好主意。
繼續閱讀 »

Tags:

« Newer Posts - Older Posts »