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

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

Sep 14, 2024 am 08:16 AM

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 までご連絡ください。

ホット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 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Apr 02, 2025 am 07:03 AM

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。

See all articles