「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

人工知能

「15Rockの共同創業者兼CEO、ガウタム・バクシ氏によるインタビューシリーズ」

「ガウタム・バクシは、気候リスク管理とアドバイザリーサービスのグローバルリーダーである15Rockの共同創設者兼CEOですガウ...

人工知能

「サティスファイラボのCEO兼共同創設者、ドニー・ホワイト- インタビューシリーズ」

2016年に設立されたSatisfi Labsは、会話型AI企業のリーディングカンパニーです早期の成功は、ニューヨーク・メッツ、メイシ...

人工知能

「ジャスティン・マクギル、Content at Scaleの創設者兼CEO - インタビューシリーズ」

ジャスティンは2008年以来、起業家、イノベーター、マーケターとして活動しています彼は15年以上にわたりSEOマーケティングを...

人工知能

ムーバブルインクのCEO兼共同創設者であるヴィヴェク・シャルマ氏についてのインタビュー・シリーズ

ビヴェクは2010年にムーバブルインクを共同設立し、急速な成長を遂げながら、600人以上の従業員を擁し、世界有数の革新的なブ...

人工知能

『ジュリエット・パウエル&アート・クライナー、The AI Dilemma – インタビューシリーズの著者』

『AIのジレンマ』は、ジュリエット・パウエルとアート・クライナーによって書かれましたジュリエット・パウエルは、著者であ...

人工知能

スコット・スティーブンソン、スペルブックの共同創設者兼CEO- インタビューシリーズ

スコット・スティーブンソンは、Spellbookの共同創設者兼CEOであり、OpenAIのGPT-4および他の大規模な言語モデル(LLM)に基...