「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

AIテクノロジー

「LXTのテクノロジーバイスプレジデント、アムル・ヌール・エルディン - インタビューシリーズ」

アムル・ヌール・エルディンは、LXTのテクノロジー担当副社長ですアムルは、自動音声認識(ASR)の文脈での音声/音響処理と機...

データサイエンス

「2023年にデータサイエンスFAANGの仕事をゲットする方法は?」

データサイエンスは非常に求められる分野となり、FAANG(Facebook、Amazon、Apple、Netflix、Google)企業での就職は大きな成...

人工知能

ファイデムのチーフ・プロダクト・オフィサー、アルパー・テキン-インタビューシリーズ

アルパー・テキンは、FindemというAI人材の獲得と管理プラットフォームの最高製品責任者(CPO)ですFindemのTalent Data Clou...

人工知能

「ジンディのCEO兼共同創設者、セリーナ・リー― インタビューシリーズ」

「Celina Leeは、ZindiのCEO兼共同創設者であり、アフリカのデータサイエンティスト向けの最大の専門ネットワークです Celina...

人工知能

「Zenの共同創設者兼CTO、イオン・アレクサンドル・セカラ氏によるインタビューシリーズ」

創業者兼CTOであるIon-Alexandru Secaraは、Zen(PostureHealth Inc.)の開発を牽引しており、画期的な姿勢矯正ソフトウェア...

AIニュース

OpenAIのCEOであるSam Altman氏:AIの力が証明されるにつれて、仕事に関するリスクが生じる

OpenAIのCEOであるSam Altmanは、特に彼の作品であるChatGPTに関するAIの潜在的な危険性について公言してきました。最近のイ...