ホームページ バックエンド開発 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)

Python:ゲーム、GUIなど Python:ゲーム、GUIなど Apr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Python vs. C:曲線と使いやすさの学習 Python vs. C:曲線と使いやすさの学習 Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

Pythonと時間:勉強時間を最大限に活用する Pythonと時間:勉強時間を最大限に活用する Apr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python vs. C:パフォーマンスと効率の探索 Python vs. C:パフォーマンスと効率の探索 Apr 18, 2025 am 12:20 AM

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。

Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか? Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか? Apr 27, 2025 am 12:03 AM

PythonListSarePartOfThestAndardarenot.liestareBuilting-in、versatile、forStoringCollectionsのpythonlistarepart。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonの学習:2時間の毎日の研究で十分ですか? Pythonの学習:2時間の毎日の研究で十分ですか? Apr 18, 2025 am 12:22 AM

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Python vs. C:重要な違​​いを理解します Python vs. C:重要な違​​いを理解します Apr 21, 2025 am 12:18 AM

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

See all articles