學測單字卡 #0

109

單字卡網站

摘要

為了幫助同學提升英文能力以利於準備學測,我使用PHP+HTML+CSS打造了學測單字卡網頁提供各位考生使用手機,隨時隨地都能提升單字量。除了單字卡,還有測驗系統,甚至還有單字對戰,能夠與其他考生進行線上比拼單字量。本系統能讓考生在被單字的同時,增加一點娛樂性。

原始專案—明倫單字卡

原始碼來自於朋友的專案,主要內容為課本的單字

Source: mlsh-vocabulary

找尋學測單字卡

在決定要做學測單字卡時,我就在網路上搜尋了許多單字卡的資料,一開始是寫了一個腳本來抓取quizlet的所有單字,但是我發現裡面的學測單字都不是完整的7000單。於是我繼續在網路上搜尋找到了一個別人整理好的xlsx檔案,包含中文以及詞性

轉換格式

由於格式為XLSX,我使用 npm套件 將其讀入並轉為單字卡支援的格式(JSON)

AI生成例句

因為同學的一句話:「有沒有例句啊 ?」使我開始思考,7000多個單字,有沒有方法快速生成例句。ChatGPT肯定不行,每個Request都有限制Token數量,於是我將腦袋動到我3090這張顯卡上,為何不自架一個語言模型來生成呢?

於是我使用Ollama自架llama3.1:8b模型來對每個單字生成例句,並使用NodeJS呼叫內部API進行批量生成

單字對戰

這個功能是受到龍騰英文單字GOGOGO 2.0的APP所啟發,裡面有一個配對對戰單字的功能,玩法就像知識王一樣。不過APP裡配對到的人都是機器人,甚至沒連網都沒配對成功。這個功能讓我和許多同學很失望,我心想如果我能做出真的能讓兩個真人對戰的遊戲該有多好!這種配對的遊戲是一定要用到socket的,而我從來沒有接觸過socket的應用,於是我借助了Claude AI的幫忙,寫出了結合socket後端的單字對戰遊戲

Discord 登入

身為一個Discord重度使用者,對其開發者API是非常熟悉,在我苦惱登入API時成為了我的首選。然而我也沒寫過Discord登入系統,上網查了一下發現可以用PHP-curl以及PHP的 session來實現。curl用來與Discord登入API溝通,session用來儲存。當我以為問題很快就解決的同時,我發現登入完成後過差不多半小時就自動登出了,起初我還以為是Token expired,後來發現其實PHP session的預設維持時間只有24分鐘。透過更改session時間來維持登入時間