エメリー・バーガー著
Commentator は、大規模な言語モデルを活用して、高レベルの説明コメント、docstring、および型を Python コードに追加します。
コメンテーターが機能するには、ローカル AI サービス、OpenAI アカウント、またはアマゾン ウェブ サービス アカウントに接続する必要があります。
ローカルAIサービス(Ollama)
コメンテーターはローカルにインストールされた AI サービスを使用できるようになりました。現在は Ollama をサポートしています。 Ollama を使用するには、インストールして環境変数
USE_OLLAMA
を設定します。export USE_OLLAMA=1
OpenAI
これを機能させるには、アカウントにプラスの残高が必要です(OpenAI 残高を確認してください)。ここで OpenAI キーを取得します。
現在、コメンテーターのデフォルトは GPT-4 ですが、リクエスト エラーが発生した場合は GPT-3.5-turbo に戻ります。最新かつ最良のモデル (GPT-4) が動作するには、少なくとも 1 ドルのクレジット (API アカウントが 2023 年 8 月 13 日より前に作成された場合) または 0.50 ドル (新しい API アカウントをお持ちの場合) を購入しておく必要があります。
API キーを取得したら、それを
OPENAI_API_KEY
という環境変数として設定します。# On Linux/MacOS: export OPENAI_API_KEY= < your-api-key > # On Windows: $env :OPENAI_API_KEY= < your-api-key >アマゾンの岩盤
コメンテーターは、Claude モデルを使用して Amazon Bedrock をサポートするようになりました。 Bedrock を使用するには、3 つの環境変数を設定する必要があります。
# On Linux/MacOS: export AWS_ACCESS_KEY_ID= < your-access-key > export AWS_SECRET_ACCESS_KEY= < your-secret-key > export AWS_REGION_NAME=us-west-2アクセス キーをまだ持っていない場合は、このリンクを独自のユーザー名と地域で変更することでアクセス キーを作成できるはずです。
https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/users/details/YOUR_USER_NAME?section=security_credentials
また、Claude へのアクセスをリクエストする必要があります (必要に応じてリージョンを変更します)。
https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess
コメンテーターは、適切な環境変数が設定されていることを検出すると、使用する AI サービス (ローカル、OpenAI、または AWS Bedrock) を自動的に選択します。
コメンテーターは、Python ファイルへのパスとオプションの言語パラメーターを受け取ります。言語が指定されている場合、Commentator はコード内の各ドキュメント文字列とコメントを指定された言語に翻訳します。デフォルトの言語は英語です。
コメンテーターをインストールするには、pip を使用できます。
$ pip install python-commentator
次のコードを含むexample.py
というファイルがあるとします。
def absolutely(n):
if n < 0:
return -n
else:
return n
このファイルに対してコメンテーターを実行して、コメントを追加し、注釈を入力します。
$ commentator example.py
結果のコードは次のようになります。
def absolutely(n: int) -> int:
"""
Return the absolute value of a number.
Args:
- n (int): the number whose absolute value we want to find
Returns:
- int: the absolute value of n
"""
if n < 0:
# If n is negative
# Return the negative version of n (i.e. its absolute value)
return -n
else:
# Otherwise (if n is non-negative)
# Return n as-is (it already is its absolute value)
return n
コメンテーターは docstring と型の注釈を追加していることに注意してください。