「GPT4Readability — リードミーをもう一度書く必要はありません」
GPT4Readability - No need to rewrite the readme again.
コードリポジトリを最適化し、ドキュメント化するための1つのPythonパッケージ
複雑なPythonのコードベースをナビゲートすることは、特にプロジェクトに十分なドキュメントがない場合には困難な作業です。これはプログラマの生活で非常に頻繁に起こることです。幸いにも、最近のNLPと深層学習の技術革新のおかげで、ヘルプを提供するツールがあります。それがGPT4Readabilityです。
GitHub – loevlie/GPT4Readability: 自動的にREADME.mdを生成し、コードの改善を提案するために設計された強力なツール…
LLMを使用してREADME.mdファイルを自動的に生成し、コードの改善を提案するために設計された強力なツール – GitHub…
github.com
GPT4Readability:AIパワードのコーディングアシスタント
GPT4Readabilityは、大規模な言語モデル(LLM)とベクトルデータベースを活用して、PythonのコードリポジトリのREADME.mdファイルを生成し、コードの改善を提案する強力なパッケージです。これは、コードを理解しドキュメント化するだけでなく、改良する手助けをする個人のアシスタントのようなものです。
なぜChatGPTを使えばいいのではないのか?
ChatGPTは強力なツールです。しかし、大量のテキストやコードを処理する際に制限があります。ChatGPTには一度に特定量のテキストやコードを入力することしかできず、大規模なコードベースを扱う際に制約があります。
対照的に、GPT4Readabilityはより大きな量のコードを処理するように設計されています。非常に大きなコードベースにはまだ苦労するかもしれませんが、通常のサイズのコードベースには快適に対応できます。つまり、正しいフォルダを指定するだけで、プロジェクト全体を解析し、完全なコンテキストを分析し、包括的なREADMEを生成したり、詳細なコード改善の提案をしたりすることができます。これはChatGPTではできないことです!
GPT4Readabilityの始め方
まず、セットアップの手順を説明します。最初に、パッケージをインストールする必要があります:
pip install GPT4Readability==0.0.3
次に、OpenAIとアカウントを作成する必要があります。GPT4ReadabilityはOpenAI APIを使用してGPT-3.5およびGPT-4にアクセスします。将来的には、HuggingFaceからオープンソースモデルも統合する予定です(更新についてはGitHubリポジトリをご覧ください)。OpenAIプラットフォームでアカウントを作成したら、支払い方法を追加し、APIキーを生成してください。
次に、新しく生成したAPIキーと同じ値のOPENAI_API_KEY
という名前の環境変数を設定する必要があります。これにより、GPT4ReadabilityはOpenAI APIと認証できます。これを行わない場合、GPT4Readabilityを実行する際にキーの追加を求められます。
export OPEN_API_KEY="YOUR KEY"
OpenAIのGPT-3およびGPT-4 LLMをAPIを介して使用することは費用対効果が高いです。このツールの開発全体のコストはたったの$1.50であり、$20/月のChatGPTと比べると非常に安価です!ただし、OpenAIのウェブサイトで使用状況を常に確認して、過剰な支出がないように注意することができます。
あなたの個人用AIドキュメンテーションアシスタントを紹介します
GPT4Readabilityをインストールし、OpenAI APIキーを生成したので、CLIにアクセスできるようになりました。この記事ではCLIに焦点を当てていますが、HuggingFaceのスペースでのノーコードのWebアプリケーションもお試しください:https://huggingface.co/spaces/JohanDL/GPT4Readability。
PythonプロジェクトにREADMEが必要ですが、コードが何をするためのものかすら覚えていません。コードベースの接続を解明しようとするのに数時間かける代わりに、GPT4Readabilityに重い作業を任せましょう:
gpt4readability /path/to/your/project --function readme --output_readme MyAwesomeREADME.md --model gpt-3.5-turbo
/path/to/your/project
を自分のPythonプロジェクトのルートディレクトリに置き換えてください。GPT4Readabilityは、OpenAIの”gpt-3.5-turbo”モデルを使用して、包括的なREADME.mdファイルであるMyAwesomeREADME.md
を生成します。現在、GPT4Readabilityで使用できる2つのモデルがあります:
- gpt-3.5-turbo
- gpt-4
コードの改善:すべての学習ツール
GPT4Readabilityは、文書化が十分でないコードベースを更新するためだけでなく、すべてのレベルの開発者にとっても素晴らしい学習ツールです。コードベースの関数に関する提案を生成するには、次のようにsuggestionsツールを使用します:
gpt4readability /path/to/your/project --function suggestions --output_suggestions CodeImprovements.md --model gpt-3.5-turbo
私の最初のPythonプロジェクトでGPT4Readabilityを実行した結果の例:
元の関数:
def Get_props(file): """ This function retreives the information from the property cell of the notebook""" no_prop = True nb = nbformat.read(file,as_version=4) for i in nb['cells']: if i['cell_type'] == 'code': if i['source'].startswith('%%properties'): Metal_A = i['source'].split('\n')[1].split()[-1] Metal_B = i['source'].split('\n')[2].split()[-1] Max_H = float(i['source'].split('\n')[3].split()[-1]) result = {'Metal_A':Metal_A,'Metal_B':Metal_B,'Max_H':Max_H} no_prop = False if no_prop: result = None return result
提案:
def Get_props(file): """ This function retrieves the information from the property cell of the notebook""" nb = nbformat.read(file, as_version=4) for i in nb['cells']: if i['cell_type'] == 'code' and i['source'].startswith('%%properties'): Metal_A, Metal_B, Max_H = i['source'].split('\n')[1:4] result = {'Metal_A': Metal_A.split()[-1], 'Metal_B': Metal_B.split()[-1], 'Max_H': float(Max_H.split()[-1])} return result return None
説明:
- 不要な変数
no_prop
とその関連フラグを削除しました。代わりに、プロパティが見つからない場合は直接None
を返すことができます。 - より読みやすくするために、
Metal_A
、Metal_B
、Max_H
の代入文を1行に結合しました。 - ループ後の
no_prop
チェックを削除しました。プロパティが見つからない場合は直接None
を返すことができます。 - キーに値を直接割り当てることで、辞書の作成を簡素化しました。
これらの変更により、不要な変数が減少し、ロジックが簡素化されてコードの読みやすさが向上しました。パフォーマンスやスペースの複雑さにはほとんど影響はありません。
/path/to/your/project
を自分のPythonプロジェクトのルートディレクトリに置き換えてください。GPT4Readabilityはコードを分析し、CodeImprovements.md
という名前のファイルを生成し、改善のための提案を行います。提案は常に同じ形式でフォーマットされます:
- ファイルへのパス
- 関数名
- 元の関数
- 提案された変更
- 変更が提案された理由の説明
コードの調整に関する説明を追加することは重要です。なぜなら、それによって透明性が高まり、学習の機会にもなるからです。これらの提案を見直すことで、コードの改善だけでなく、開発者としても向上することができます。
まとめ
GPT4Readabilityは、Pythonプロジェクトを理解し、改善するために非常に便利なツールです!
GPT4Readabilityが時間を節約してくれたり、質問がある場合は、お気軽にご連絡ください(以下のセクションのいずれかのリンクをご利用いただけます)。また、GitHubリポジトリにスターを付けていただけると嬉しいです!もしGPT4Readabilityのバグを見つけたり、改善の提案がある場合は、GitHubのIssuesページで問題を開いてください。
私とつながる
私は、現在ピッツバーグのKEF Roboticsでコンピュータビジョンエンジニアとして働いている、深層学習の研究者を目指しています!私とつながり、MLに関する何でも話し合うためにお気軽にご連絡ください!
- VoAGIでフォローする
- GitHub
- コーヒーをおごってもらう?
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles