首頁  >  文章  >  後端開發  >  Infusion 文件產生 CLI 工具

Infusion 文件產生 CLI 工具

DDD
DDD原創
2024-09-14 08:16:021305瀏覽

Infusion docs generation cli tool

Infusion 是一個開源工具,用於在程式碼檔案中產生文件。它使用OpenAI gpt-4模型來編寫註解。這是我的項目,我用 Python 寫的。

GitHub 連結:
https://github.com/SychAndrii/infusion

explainer.js 是一個開源工具,用於解釋程式碼檔案中的程式碼片段。它使用 Groq 模型來編寫註釋。這是我的隊友 @aamfahim 的一個項目,他用 Node.JS 寫的

GitHub 連結:
https://github.com/aamfahim/explainer.js

我目前正在塞內卡理工學院 (Seneca Polytechnic) 參加一門開源課程,我們的任務是與另一個人合作,審查彼此的程式碼,並使用 GitHub 問題提出一些改進建議。我將描述這個過程。

溝通方式

兩個儲存庫產生的大多數問題都是透過 Discord 呼叫使用同步通訊完成的。之後,我們使用Discord 訊息進行非同步交談,因為使用bash 腳本簡化專案設定對我來說是一個困難的問題,並且每次我需要測試它是否在他的機器上運行時都打電話給我的隊友似乎沒有必要。在我的機器上使用 Docker 容器和 WSL Linux 子系統進行測試與在 Al 的系統上進行測試不同,它突出顯示了重要的錯誤。

審查某人程式碼的經歷

在檢查隊友的程式碼時,我沒有遇到任何異常,因為我有豐富的 Node.JS 開發經驗。我喜歡創造問題,然後立即提出解決方案。我們遇到的一個問題是,我們無法找到一種方法讓我在我創建的問題上貼上標籤,只有 Al 可以做到,這很煩人。

有人審查我的程式碼的經歷

Al 提出了許多改進的空間,特別是在安裝我的 CLI 工具方面。當他第一次分叉我的儲存庫時,最終用戶需要手動安裝特定版本的 python,這絕對是一項令人沮喪的任務。此外,他還強調了為了方便使用工具而可能進行的其他改進,例如引入 .env 文件,這樣您就不必在每次啟動該工具時輸入 API 金鑰。我喜歡從其他人那裡獲取對我的程式碼的輸入,因為它可以讓我成長為一名開發人員,並且它肯定會擴展我對開發生命週期的看法。

審查和測試期間的問題

我們遇到的大部分問題都與我的工具有關,因為 Al 的 CLI 程式是用 Node.JS 編寫的,而且我們都有豐富的經驗。相比之下,我們都不喜歡Python生態系統,所以我們在與它互動時遇到了很多麻煩。在測試 Al 的儲存庫時,我發現他的 README 中編寫的文件具有誤導性或難以理解,尤其是模型和 api-key 選項。我們必須經歷反覆試驗的過程,才能確定他的工具接受哪些 API 金鑰和模型。在測試我的儲存庫時,Al 系統上的 python 版本非常過時(2.7),因此他必須手動安裝 3.10.6(使用我的工具所需的版本)。然而,即便如此,問題並沒有結束。儘管他安裝了它,但我的工具使用 pipelinev 創建的虛擬環境仍然無法識別它。此後,我們每次啟動工具時都對輸入使用該工具所需的 API 金鑰感到沮喪。最後,自述文件對安裝沒有幫助。我們試圖遵循它們,但我們不斷收到與 PATH 上無法識別的某些腳本相關的錯誤。就在那時,我決定我們需要某種自動化工具來為您完成所有安裝。我的一個想法是對應用程式進行 docker 化,但隨後它需要我以某種方式將 Docker 磁碟區映射到為我的工具指定的輸出目錄和輸入文件,這將使一切變得更加複雜。因此,我記得很多套件管理器實際上是命令列工具,如果您透過複製 GitHub 儲存庫來安裝它們,那麼您需要透過執行某種 bash 設定腳本來設定它們。這就是我決定要實施的想法。最後,我們都無法找到一種方法來為我們提交的問題分配錯誤或增強等標籤。

我提交的問題

https://github.com/aamfahim/explainer.js/issues/13
https://github.com/aamfahim/explainer.js/issues/12
https://github.com/aamfahim/explainer.js/issues/11
https://github.com/aamfahim/explainer.js/issues/10
https://github.com/aamfahim/explainer.js/issues/9

總結我發現的問題,它們主要涵蓋了該項目的自述文件中編寫的選項實際上不起作用,或者它們的工作方式被誤導性描述的情況。

在我的儲存庫中提交的問題

https://github.com/SychAndrii/infusion/issues/11
https://github.com/SychAndrii/infusion/issues/10
https://github.com/SychAndrii/infusion/issues/9
https://github.com/SychAndrii/infusion/issues/8

總結我的倉庫中發現的問題,它們主要與我的工具使用的便利性有關。此外,當您向我的工具提供語法正確的原始程式碼的檔案時,存在一個錯誤,它會將其識別為不包含有效原始程式碼的檔案。

我設法解決的問題

我解決了所有問題。所有這些都花了不到 30 分鐘的時間來修復,但有一個問題,我花了大約 2-3 個小時才修復:
https://github.com/SychAndrii/infusion/issues/8

這看起來很奇怪,因為自述文件的增強應該很容易實現,但是Al 的第一個建議要求我完全重新製作我的工具的安裝過程,這需要我引入2 個安裝腳本- 一個用於bash 和一個用於Powershell。我大部分時間無法解決的問題是,即使這些安裝腳本正確安裝了所需版本的python,但該版本的python並沒有傳遞到虛擬環境,您需要在使用我的工具之前進入虛擬環境。最終,我解決了這個問題。

我學到了什麼

我確實提升了我的 README 技能。我提供範例用法的方式讓最終用戶感到非常困惑。此外,我終於使用 bash 和 powershell 語言自己做了一些事情,不是為了學校作業,不是因為這是一項要求,而是因為我想簡化與我的工具互動的過程。最後,我決定面對我絕對無法忍受的語言——那就是Python。使用它對我來說絕對不是一件愉快的事,但我認為如果你今天想找到工作,能夠使用它是至關重要的,尤其是在人工智慧趨勢方面。

以上是Infusion 文件產生 CLI 工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn