Feed on
Posts
Comments
Email訂閱

This Post is under 軟體開發

前文 使用網路套件 – gemini-api-php 來實作在網站伺服器端呼叫 Google Gemini 生成內容(generate content),本文將繼續說明「文字嵌入(text embedding)」的實作。「嵌入(embedding)」在人工智慧領域非常重要,可以想像是把一個物件(object,實體物件或虛擬的概念皆可)轉換成多維度空間的向量(以gemini 來說,維度是768);轉換成向量後才可以被電腦程式當作輸入項以進一步套用到人工智慧的演算法模式再產生各種應用的輸出(如分類…)。

舉個例子來說,如果要說明一個人所處的地理位置,可以用經緯度來表示,這是二度空間;但如果該處是101大樓,可以再加上高度或樓層來表示更精確的所在,這是三度空間;如果又加上日期時間以說明是在何時到過該樓層,這是四度空間。那有沒有五度(或是更高維的)空間呢?想必有(但處在低維度的,通常想像不出高維度的世界模樣)。有人說人的心理狀態也是一個維度,譬如「我的心遺留在愛情海」,現實現地身體與心靈同時處在不同的三度空間。

或許,神鬼也是處在比我們更高維度的空間,祂想讓我們看到就會出現。我則猜想,每對時間的一次微分就會增加一個維度(譬如速度、加速度…)。關於觀察者的心理狀態與時間的感知,可參考愛因斯坦美女與火爐的巧妙譬喻。總之,這裡想表達的是,如果一個物件能轉成更高維度向量就會被越精準的描述。於是兩個物件是不是處在相近的地方,只要比對這兩個物件的向量之餘弦相似性即可。又譬如「某個人的『頻率』(可能是性情、嗜好…)跟你相近,所以你們很合得來」、「比對『DNA』來確認血緣關係」,這裡所說的『頻率』、『DNA』都必須是很具體的基本單元所組合而成,因此也都可以用來表示一種總和概念(concept)或是一個獨立個體。

繼續閱讀 »

Tags: ,

台南行腳

(海水倒灌到木麻黃林)

週日下午四時許從外頭開車回來,便再接爸媽往茄萣方向散步去。然而颱風遠颺之後,天氣又恢復成夏日炎熱太陽高照的型態,馬上改找了個有遮蔽的步道,黃金海岸的小美軍到喜樹堤岸有木麻黃林隧道,路程約兩公里,兩端都方便停車,就決定是你了。本來只是單純的傍晚散步,不過因為想記錄一下這次凱米颱風過境,南部連續放了三天颱風假,風雨之後,黃金海岸堤岸的景況,所以還是寫了這篇遊記。

開車由清水路左轉安平港聯外道路來到小美軍沙灘停車場外,停車場位子不多。停好車後,看到爸媽已經先往沙灘那邊走去了,趕忙把他們喚回來;大熱天的,不想走沒有遮蔭的濱海步道,就沿著堤岸往南走舊行。步道上散落許多木麻黃的枝葉與果子;另外還有一種略帶紅色的漿果,一踩就扁,胡亂猜是銀合歡的果實。木柵欄有許多蝸牛攀附在上頭,不注意可能會摸到。

下午四點半,堤岸上,木麻黃林中,完全無風,空氣中有種濕度重、海鹹的沾粘,加上略有蚊子騷擾,走起來不會太舒服。不知道是不是風雨吹拂的關係,木麻黃林枝葉略顯低垂,形成的拱型通道更為幽邃了。

繼續閱讀 »

Tags: ,

橘色移動 | 親友

(搭高鐵南下)

前幾天與爸媽聊天時,不知道聊到什麼讓老媽提起很久沒坐火車了。我因此想到原本周末的開車出遊或許可以改成搭乘高鐵(為何不是台鐵?因為火車站周邊停車不方便)。如果搭乘高鐵,又以到高雄最為快速便捷,因為只要15分鐘就可以到達高鐵左營站,且可轉乘台鐵或高捷到高雄各處去玩。就像十年前我常常帶著當時未滿六歲的兩個小孩進行「三鐵親子遊的創意與合聲的嘗試」,在兩種以上的交通工具進行轉乘,搭乘鐵道的過程,本身也就是旅行的目的;也因此真的到過許多平時比較少去的轉運站,如岡山、鳳山。

主意已定,首先是要找出兩老的一卡通敬老卡,但怎麼找都只找到老爸的;不過記得當初兩個老人家的敬老卡是同時辦的?有可能是當年老媽搭乘高捷時還沒滿65歲。老媽一直記得的是當時我家兩個小孩雖然年紀小卻已經會帶阿公阿嬤坐捷運旅行,但當時有可能是使用老妹給的一卡通。

這次策畫的鐵道旅行大概是這樣,開車到高鐵台南站,搭高鐵到左營站,轉高捷紅線,搭兩站到巨蛋站出來,走路到妹妹家;若老妹沒空,就再原路線回返台南。這次要實驗的就是這樣的接駁,對帶老人家出遊要注意哪些事情?行程會不會太趕?

繼續閱讀 »

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:

« Newer Posts - Older Posts »