跳到主要內容

從易經八卦到 AI 應用:用 LLM 自動化數據整理的工程探險

從 2023 年開始,在去年 為何技術老人這樣想那樣做? 的那場分享之前,就開始探索管理的更多可能性,以及探索更深層的奧秘,宇宙的二進位,生活中的陰與陽,到透過朋友深入探索 8 進位和 64 進位的玄學領域。

一開始只是想將自己體驗進行工程的還原,先是以為透過 ai 可以很快(偷懶)就可以解決掉資訊整理的問題,這邊有些踩雷的過程,以及對於整體實作的紀錄,分享給大家。


人生,原本以為很輕鬆的事情,最後都會不太容易

原本目標是希望將網路上許多的八卦資訊,以及六十四卦象內容,透過 AI 將資料進行彙整,就資料進行整合以及釐清就花了些時間 (汗)

以下且聽我慢慢道來 ... .

思緒步驟

大概步驟會是這樣,首先進行基礎八卦資訊搜集,大概由乾掛到坤卦,這些都可以在網路上容易取得,(這邊採用的是先天八卦順序)

https://chatgpt.com/share/672083ea-4000-8010-ae50-3e120d845244

接著進入重點, 64 卦目前並沒有太多工程項目可以進行整合資料,因此主要透過 ChatGPT 產生資訊,以及透過 wiki 進行先達到快速效果。

https://chatgpt.com/share/67208416-c210-8010-9d43-a8c7235a1b03

緊接著,就會得到一串很像是 64 掛的內容,

不看不知道,一看嚇一跳,取得資料中會包含錯誤資訊,對應錯誤的上下卦,但畢竟是電腦,有錯很正常,這才是我認識的 ChatGPT (這邊也有試過 Claude 也有相同問題)。

校正回歸

此時經驗就非常重要,透過 AI 協助我們進行資料編寫比對,但不是單純的比對,而是要先想清楚自己的目標是什麼。

  1. 64 卦,兩兩相對。
  2. 64 卦,每個卦象不重複。

基礎於一開始『懶』的狀態, 首先直覺性的,是將比對錯誤的 json 直接丟入,原本預計透過 chain of thought 的方式,讓 llm 進行重複確認,但 ...

測試發現,需要透過 llm 產出原生資料越大時,隱藏的重複錯誤性會隨之提高。

llm 不轉,我轉

因此,這邊的解法朝向糾錯為主。 首先回到目的性,我們需要得到的結果是

  1. 完整的 64 卦象
  2. 取得對應的正確上下卦位置。

當我們有這樣明確的目標時,回到工程面向身為工程魂的各位,學習過各種 XDD (X-driven development) 的各位很快就可以猜到,可透過 AI 進行建立 jest / mocha 進行正向測試,進行測試腳本,

目標如下,

  1. 隨機進行測試,測試兩兩一對,並且卦象都是可以取得正確資訊。(不可為空)
  2. 以 8 卦為基底參數,進行迴圈測試,確認資料並為重複。

透過 1 & 2 且成立的狀態下,很快就可以跑出錯誤,錯誤的造成,可以馬上就知道哪些是重複,或者會讓結果跳出 null 的可能性,接著就可以再將這些輸出直接放回到 chatgpt 讓他進行補完。

很快劈哩啪啦,咖咖澎洽,一下子就可以讓 test 生出來, https://github.com/clonn/yi-insight/tree/main/test

以我這邊的例子,就可以明確的產出錯誤的範圍,有了明確修正範圍,直接透過 prompt 請任何一個 llm 都可以進行產出修正。

console.log
      [ '巽-震', '巽-震', '離-兌', '巽-坎', '坎-兌', '震-艮' ]

看起來有六個重複, 請修正

無情中途工商

RAG/Agent 應用開發從 0 至 1 實戰工作坊 第二場來了!

想掌握最新 AI 技術並將其應用於真實開發中嗎?這堂課程專為具備 Web 開發經驗的開發者設計,從 Prompt Engineering、RAG 系統到智能代理的實作,帶您從理論到實戰,快速上手!

⏩ 立即報名! 詳情請見:https://exma.kktix.cc/events/ai-for-dev-course-rag-2

看成果

結果,透過產生的修正縮小範圍,就可以得到完美的六十四卦的組合, 不用自己透過 wiki 複製貼上,完全透過 free chatgpt ,不用課金,不用任何奇技淫巧,就可以得到整理後的資訊,

https://github.com/clonn/yi-insight/blob/main/src/hexagram/hexagram_64.json

回思

首先, ChatGPT 都至少訓練資料都有更新至 2023年,因此可以大膽地推論,他應該是有讀過易經,八卦爻辭基本定義說明,應該都是有的。

這邊有試過直接將卦象,或者取得的爻詞放入 ChatGPT 進行闡述,但很可惜都只能得到一知半解的回應,甚至是很多意象概念的解釋,是無法融入解釋當中,在進行 LLM 解釋的部分,只能先放一旁。

至少,對於 JSON format 的整理,或者資料的分析上其實是可以有根據的重新歸納,其實是有機會的,且十分快速的。

這邊想要表達的是,除了少數的量體,或者是無關緊要的隨機資訊可以這樣透過 LLM 進行產生,但如果要透過 LLM 產生有嚴謹度的資訊時,其實需要透過搭配大量的驗證,這類的驗證就可以如上述的方式,不一定要透過手動的方式進行檢查,也不需要請美少女小編來進行確認,需要的就是透過『對於結果的認定』『對於可能的邊界』進行數據上的驗證檢查。

如此一來,就很容易透過 AI 打 AI 的方式,產出一個相對可信任的數據基礎。

以上小小經驗作為分享!

無情結尾工商

RAG/Agent 應用開發從 0 至 1 實戰工作坊 第二場來了!

想掌握最新 AI 技術並將其應用於真實開發中嗎?這堂課程專為具備 Web 開發經驗的開發者設計,從 Prompt Engineering、RAG 系統到智能代理的實作,帶您從理論到實戰,快速上手!

⏩ 立即報名! 詳情請見:https://exma.kktix.cc/events/ai-for-dev-course-rag-2

以上分享,各位有任何更好更懶的做法,歡迎分享。

後記的後記

最讓我意想不到的是每個卦象其實都已經有自己的 unicode

參考, https://zh.wikipedia.org/zh-tw/%E6%98%93%E7%B6%93%E5%85%AD%E5%8D%81%E5%9B%9B%E5%8D%A6%E7%AC%A6%E8%99%9F_(Unicode%E5%8D%80%E6%AE%B5)

留言

這個網誌中的熱門文章

[CSS] z-index 在不同瀏覽器繼承問題

今天會討論到這個課題,是因為要實做一個Popup dialog,所以我們希望的結果如下圖。 可是在IE7 卻發生了這樣的情況。 Popup不論怎麼設定z-index都無法浮在最上層,我們看一下html架構發生什麼事情。

[教學] 快快樂樂刪除CodeIgniter index.php

預設的CI網址預設都設定為index.php同一層級,因此所有的程式都必須指定index.php導向才能開始,例如 http://localhost/ci/index.php/welcome/test http://localhost/ci/welcome/test 本文將說明如何將惱人的index.php消除,還你一個漂亮的URL。 設定開始: 接下來說明如何使用rewrite方式將惱人的index.php去除。 rewrite不清楚的人,煩請先自行google 首先要先確定Apache的 mod_rewrite 有 開啟 ,如果沒有開啟請設定好之後重新啟動apache。 接著,在根目錄底下建立一個新檔案,檔名為 .htaccess ,裡面程式碼如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> 接著到 application/config/config.php ,開啟檔案修改 $config['index_page'] = ""; 注意: /index.php/$1 要根據你目錄,例如 http://localhost/index.php ,網站根目錄為 /ci/index.php 則要寫成 /ci/index.php/$1 接著至CI目錄下,尋找 config\config.php , 修改一下裡面的檔案,修改如下: $config['index_page'] = ""; 存檔後,如此一來大功告成。 參考資料 官方網站說明

[教學] Mojito 安裝與入門,install mojito for beginner.

mojito ,最近終於從 YDN 對外公開此專案,這個套件主要用於解決前端多重裝置及瀏覽器端的問題,後端服務採取 node.js ,因此使用上必定要先準備以下幾個元素 準備素材 c++ complier git Node.js > 0.4.x NPM > 1.0.x 安裝方式 git clone git://github.com/yahoo/mojito.git cd mojito/source sudo npm install -g . npm install . 以上四個簡單的步驟,就可以把 mojito module 完整安裝到服務器上,接著就可以開始進入 mojito 的世界 使用方式 mojito 提供了完整的 command line 給開發者使用,接著先建立一個基本 hello world 專案,跟著以下步驟完成第一個專案。首先建立一個 mojito application, mojito create app hello cd hello 切換到目錄之後,再接著建立自己的 mojit,這邊的 mojit 就像是一個應用(application)可能會包含許多個獨立網站體,擁有獨立架構的 MVC ,包含內部設定等,詳細資料可以參考官方的 說明 ,建立 mojit mojito create mojit HelloMojit 輸入指令後,會看到顯示結果如下, creating mojit called 'HelloMojit' (using "default" archetype) ✔ mojit: HelloMojit created! ✔ mojito done. 接著修改 application.json 這個 mojit 設定檔案,讓剛才新建立的 hellp application 指定底下有一個 mojit -> HelloMojit ,讓應用可以去執行 mojit controller ,修改如下, [ { "settings": [ "master" ], "appPort": 8666, "specs": { ...