「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
gif generated by author

/path/to/your/projectを自分のPythonプロジェクトのルートディレクトリに置き換えてください。GPT4Readabilityは、OpenAIの”gpt-3.5-turbo”モデルを使用して、包括的なREADME.mdファイルであるMyAwesomeREADME.mdを生成します。現在、GPT4Readabilityで使用できる2つのモデルがあります:

  1. gpt-3.5-turbo
  2. 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

説明:

  1. 不要な変数no_propとその関連フラグを削除しました。代わりに、プロパティが見つからない場合は直接Noneを返すことができます。
  2. より読みやすくするために、Metal_AMetal_BMax_Hの代入文を1行に結合しました。
  3. ループ後のno_propチェックを削除しました。プロパティが見つからない場合は直接Noneを返すことができます。
  4. キーに値を直接割り当てることで、辞書の作成を簡素化しました。

これらの変更により、不要な変数が減少し、ロジックが簡素化されてコードの読みやすさが向上しました。パフォーマンスやスペースの複雑さにはほとんど影響はありません。

/path/to/your/projectを自分のPythonプロジェクトのルートディレクトリに置き換えてください。GPT4Readabilityはコードを分析し、CodeImprovements.mdという名前のファイルを生成し、改善のための提案を行います。提案は常に同じ形式でフォーマットされます:

  1. ファイルへのパス
  2. 関数名
  3. 元の関数
  4. 提案された変更
  5. 変更が提案された理由の説明

コードの調整に関する説明を追加することは重要です。なぜなら、それによって透明性が高まり、学習の機会にもなるからです。これらの提案を見直すことで、コードの改善だけでなく、開発者としても向上することができます。

まとめ

GPT4Readabilityは、Pythonプロジェクトを理解し、改善するために非常に便利なツールです!

GPT4Readabilityが時間を節約してくれたり、質問がある場合は、お気軽にご連絡ください(以下のセクションのいずれかのリンクをご利用いただけます)。また、GitHubリポジトリにスターを付けていただけると嬉しいです!もしGPT4Readabilityのバグを見つけたり、改善の提案がある場合は、GitHubのIssuesページで問題を開いてください。

私とつながる

私は、現在ピッツバーグのKEF Roboticsでコンピュータビジョンエンジニアとして働いている、深層学習の研究者を目指しています!私とつながり、MLに関する何でも話し合うためにお気軽にご連絡ください!

  • VoAGIでフォローする
  • Twitter
  • LinkedIn
  • GitHub
  • コーヒーをおごってもらう?

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

ギル・ジェロン、Orca SecurityのCEO&共同創設者-インタビューシリーズ

ギル・ゲロンは、オルカ・セキュリティのCEO兼共同設立者ですギルは20年以上にわたりサイバーセキュリティ製品をリードし、提...

データサイエンス

「Adam Ross Nelsonによる自信のあるデータサイエンスについて」

データサイエンスの中で新たな分野が現れ、研究内容が理解しにくい場合は、専門家や先駆者と話すのが最善です最近、私たちは...

人工知能

ジョシュ・フィースト、CogitoのCEO兼共同創業者 - インタビューシリーズ

ジョシュ・フィーストは、CogitoのCEO兼共同創業者であり、感情と会話AIを組み合わせた革新的なプラットフォームを提供するエ...

人工知能

ベイリー・カクスマー、ウォータールー大学の博士課程候補 - インタビューシリーズ

カツマー・ベイリーは、ウォータールー大学のコンピュータ科学学部の博士課程の候補者であり、アルバータ大学の新入教員です...

人工知能

ジョナサン・ダムブロット、Cranium AIのCEO兼共同創設者- インタビューシリーズ

ジョナサン・ダムブロットは、Cranium AIのCEO兼共同創業者ですCranium AIは、サイバーセキュリティおよびデータサイエンスチ...

AIテクノロジー

アンソニー・グーネティレケ氏は、Amdocsのグループ社長であり、テクノロジー部門および戦略部門の責任者です- インタビューシリーズ

アンソニー・グーネティレーケは、Amdocsでグループ社長、テクノロジーと戦略担当です彼と企業戦略チームは、会社の戦略を策...