在我之前的文章中,我談到了啟動一個基於開源 GenAI 的終端應用程式。本週的任務是為另一個用戶的專案貢獻一個新功能。由於我們必須與新人合作,所以我與 Lily 合作,她開發了一個應用程序,其代碼改進功能與我的類似,只是她的角色是老鼠!
有時間的話可以去看看她的專案老鼠助手。
她的程式碼是用 TypeScript 寫的,說實話,我對此沒有那麼豐富的經驗。我有點擔心添加新功能而不意外破壞某些東西。有趣的是,與 Java 或 C 等其他 OOP 語言相比,TypeScript 對我來說要困難得多。但我認為這是一個很好的學習機會,所以我決定投入其中。
我們的目標是新增一個選項 (-t) 來顯示回應和提示的令牌使用情況。因此,我首先在她的儲存庫上開啟一個問題來概述該功能,然後將該專案分叉到本地工作。
該應用程式使用 GROQ API 來實現其 LLM 功能,幸運的是,有一種簡單的方法可以透過 API 回應中的「usage」欄位存取令牌使用資訊:
由於應用程式使用 yargs 作為命令列參數,因此添加另一個選項相當簡單。我這樣做是為了,如果用戶指定 -t 或 --token-usage,應用程式將在輸出末尾顯示令牌資訊以及 AI 回應。我測試了幾次並確保它不會破壞現有功能。確認後,程式碼被推送到我的分支,我提出了拉取請求。
自從我發出拉取請求以來已經有一段時間了,所以我快速搜索了這些命令,發現有一個簡單的方法可以通過VS Code 來完成它(說真的,如果沒有它我會在哪裡? )。
我新增了新功能的簡要說明並提交了拉取請求:
就在幾個小時前,我在我的儲存庫上看到了 lily 的拉取請求通知。我很快檢查了程式碼,在本地測試了它,效果很好!我測試了一下其他選項是否有任何問題,但沒有任何問題。我使用的是Gemini API,所以它與其他人常用的Open AI Chat Completion API不同,但她仍然設法讓它工作。
我沒有發現任何問題或改進建議,所以我接受了她的拉取請求並將其合併到主分支中。讓某人為你的程式碼做出貢獻是非常有趣的(而且令人緊張),因為你不知道會發生什麼,也不知道他們是否會因為你的符文程式碼而遇到問題。
但最終一切都很順利,這讓我體會到大型開源專案如何透過拉取請求非同步協作和改進。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3