ホームページ  >  記事  >  バックエンド開発  >  Infusion ドキュメント生成 CLI ツール

Infusion ドキュメント生成 CLI ツール

DDD
DDDオリジナル
2024-09-14 08:16:021044ブラウズ

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 開発の経験が豊富なので、チームメイトのコードをレビューするときに何も珍しいことはありませんでした。私は問題を作成し、それに対する解決策をすぐに提案するのが好きでした。私たちが抱えていた問題の 1 つは、私が作成した課題にラベルを付ける方法が見つからなかったことです。それができるのは Al だけであり、面倒でした。

誰かが私のコードをレビューした経験

アルは、特に CLI ツールのインストールに関して、多くの改善の余地があることを示唆してくれました。彼が最初に私のリポジトリをフォークしたとき、エンドユーザーは特定のバージョンの Python を手動でインストールする必要がありましたが、これは間違いなくイライラする作業でした。さらに、ツールを起動するたびに API キーを入力する必要がないように .env ファイルを導入するなど、ツールを便利に使用するために考えられるその他の改善点も強調しました。私は自分のコードについて他の人から意見をもらうのが好きです。そうすることで開発者として成長できるし、開発ライフサイクルの見方が確実に広がります。

レビューおよびテスト中に発生した問題

Al の CLI プログラムは Node.JS で書かれており、私たち二人とも Node.JS について豊富な経験があるため、私たちが抱えていた問題のほとんどは私のツールにありました。対照的に、私たちは 2 人とも Python エコシステムが好きではないため、Python エコシステムとやり取りするのに非常に苦労しました。 Al のリポジトリをテストしたとき、彼の README に書かれているドキュメント、特にモデルと API キーのオプションが誤解を招く、またはわかりにくいことがわかりました。私たちは、どの API キーとモデルが彼のツールに受け入れられるかを理解するために、試行錯誤のプロセスを経る必要がありました。私のリポジトリをテストすることになったとき、Al のシステム上の Python のバージョンは非常に古い (2.7) ため、彼は 3.10.6 (私のツールを使用するために必要なバージョン) を手動でインストールする必要がありました。しかし、それでも問題は解決しませんでした。彼がそれをインストールしたにもかかわらず、私のツールが Pipenv で作成した仮想環境ではまだ認識されませんでした。その後も、ツールを起動するたびに使用に必要な API キーを入力するのが面倒になりました。最後に、README ドキュメントはインストールには役に立ちませんでした。私たちはそれらに従おうとしましたが、PATH 上で認識されないいくつかのスクリプトに関連するエラーが発生し続けました。そのとき、すべてのインストールを自動的に実行してくれる何らかの自動化ツールが必要だと判断しました。アプリケーションを Docker 化することも考えましたが、その場合は、ツールに指定された出力ディレクトリと入力ファイルに何らかの方法で Docker ボリュームをマップする必要があり、すべてが 2 倍複雑になります。したがって、多くのパッケージ マネージャーは実際にはコマンド ライン ツールであり、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

私が見つけた問題を要約すると、このプロジェクトの README ファイルに書かれているオプションが実際には機能しなかったり、その動作方法が誤解を招くような説明がされていた場合がほとんどでした。

私のリポジトリに提出された問題

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

私のリポジトリで見つかった問題を要約すると、それらは主にツールの使用の利便性に関連していました。さらに、構文的に正しいソース コードを含むファイルを私のツールに提供すると、そのファイルが有効なソース コードを含まないファイルとして識別されるというバグが 1 つありました。

なんとか修正できた問題

すべての問題を解決しました。すべての修正には 30 分もかかりませんでしたが、修正するのに 2 ~ 3 時間ほどかかった問題が 1 つありました。
https://github.com/SychAndrii/infusion/issues/8

README ファイルの拡張は簡単に実現できるはずなので、奇妙に思えるかもしれませんが、Al の最初の提案では、ツールのインストール プロセスを完全に作り直す必要があり、インストール用に 2 つのスクリプトを導入する必要がありました。1 つは bash 用、もう 1 つは bash 用です。 1 つは Powershell 用です。ほとんどの場合、私が解決できなかった問題は、これらのセットアップ スクリプトが必要なバージョンの Python を適切にインストールしたにもかかわらず、このバージョンの Python が仮想環境に渡されなかったことでした。このバージョンは、私のツールを使用する前に入力する必要があります。結局、それを修正しました。

学んだこと

README スキルは確実に向上しました。使用例を示した方法は、エンド ユーザーにとって非常にわかりにくいものでした。さらに、私は最終的に bash 言語と PowerShell 言語を使用して自分で何かを行うようになりました。学校の課題のためではなく、必須だったからではなく、ツールを操作するプロセスを簡素化したかったからです。ついに、私は絶対に我慢できない言語、それが Python と向き合うことにしました。私にとって、それを使って働くのは決して楽しいものではありませんでしたが、特に AI がトレンドになっている今日、仕事を見つけたいなら、それを使えるようにすることが不可欠だと思います。

以上がInfusion ドキュメント生成 CLI ツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。