検索
ホームページバックエンド開発Python チュートリアルInfusion ドキュメント生成 CLI ツール

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 までご連絡ください。
Pythonリストをどのようにスライスしますか?Pythonリストをどのようにスライスしますか?May 02, 2025 am 12:14 AM

slicingapythonlistisdoneusingtheyntaxlist [start:stop:step] .hore'showitworks:1)startisthe indexofthefirstelementtoinclude.2)spotisthe indexofthefirmenttoeexclude.3)staptistheincrementbetbetinelements

Numpyアレイで実行できる一般的な操作は何ですか?Numpyアレイで実行できる一般的な操作は何ですか?May 02, 2025 am 12:09 AM

numpyallows forvariousoperationsonarrays:1)basicarithmeticlikeaddition、減算、乗算、および分割; 2)AdvancedperationssuchasmatrixMultiplication;

Pythonを使用したデータ分析では、配列はどのように使用されていますか?Pythonを使用したデータ分析では、配列はどのように使用されていますか?May 02, 2025 am 12:09 AM

Arraysinpython、特にnumpyandpandas、aresentialfordataanalysis、offeringspeedandeficiency.1)numpyarraysenable numpyarraysenable handling forlaredatasents andcomplexoperationslikemoverages.2)Pandasextendsnumpy'scapabivitieswithdataframesfortruc

リストのメモリフットプリントは、Pythonの配列のメモリフットプリントとどのように比較されますか?リストのメモリフットプリントは、Pythonの配列のメモリフットプリントとどのように比較されますか?May 02, 2025 am 12:08 AM

listsandnumpyarraysinpythonhavedifferentmemoryfootprints:listsaremoreflexiblellessmemory-efficient、whileenumpyarraysaraysareoptimizedfornumericaldata.1)listsstorereferencesto objects、with whowedaround64byteson64-bitedatigu

実行可能なPythonスクリプトを展開するとき、環境固有の構成をどのように処理しますか?実行可能なPythonスクリプトを展開するとき、環境固有の構成をどのように処理しますか?May 02, 2025 am 12:07 AM

toensurepythonscriptsbehaveCorrectlyAcrossDevelosment、staging、and Production、usetheseStrategies:1)環境variablesforsimplestetings、2)configurationfilesforcomplexsetups、and3)dynamicloadingforadaptability.eachtododododododofersuniquebentandrequiresca

Pythonアレイをどのようにスライスしますか?Pythonアレイをどのようにスライスしますか?May 01, 2025 am 12:18 AM

Pythonリストスライスの基本的な構文はリストです[start:stop:step]。 1.STARTは最初の要素インデックス、2。ストップは除外された最初の要素インデックスであり、3.ステップは要素間のステップサイズを決定します。スライスは、データを抽出するためだけでなく、リストを変更および反転させるためにも使用されます。

どのような状況で、リストは配列よりもパフォーマンスが向上しますか?どのような状況で、リストは配列よりもパフォーマンスが向上しますか?May 01, 2025 am 12:06 AM

ListSoutPerformArraysIn:1)ダイナミシジョンアンドフレーケンティオン/削除、2)ストーリングヘテロゼンダタ、および3)メモリ効率の装飾、ButmayhaveslightPerformancostsinceNASOPERATIONS。

PythonアレイをPythonリストに変換するにはどうすればよいですか?PythonアレイをPythonリストに変換するにはどうすればよいですか?May 01, 2025 am 12:05 AM

toconvertapythonarraytoalist、usetheList()constructororageneratorexpression.1)importhearraymoduleandcreateanarray.2)useList(arr)または[xforxinarr] toconvertoalistは、largedatatessを変えることを伴うものです。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール