Skip to main content

Yokotenkai tool

Project description

yokoten 横展開ツール

カレントディレクトリ、または指定したフォルダをgit grepし、対象となるファイルについて同一のスクリプトでLLMに横展開修正の要否を質問します。 git grepで検索するため、対象はgit管理されている必要があります。git管理対象外のファイルは検索対象に含まれません。 以下のLLM(API)に対応しています。

  • OpenAI
  • Bedrockを経由したClaude v3.x
  • Gemini

に対応しています。デフォルトではBedrockを使用します。

モチベーション

2025/5/5現在のLLMは、トークン数の問題で複数のファイルを渡したりプロジェクト全体を俯瞰するタスクになると精度が下がる場合があります。
一方で、単純な横展開タスクについては、特定の指示とファイルを1つ渡すことによって精度高く処理ができるはずです。
そこで、git grepで対象になったすべてのファイルについて、同じ指示でLLMから出力を受け取り、修正の要否や方針などを返却させるツールを作成しました。

準備

インストール

実行にはpython3.9以上(3.8でも動作します)とgitが必要です。

git clone https://github.com/sasanquaneuf/yokoten.git
cd yokoten
pip3 install .
# pip install .

デフォルトと異なる設定で実行する場合は、yokoten/config.yaml.defaultの内容を参考にしてconfig.yamlを作成し、 ~/.config/yokoten/config.yaml に配置してください。

Bedrockを利用する場合

デフォルトでは us-east-1 がリージョンとして設定されています。 異なるリージョンを使用する場合はconfig.yamlを作成してください。

Bedrockを使用できるIAMユーザーが必要です。 aws configureでIAMユーザーを設定してください。

なお、claude 3.7を使用するためには、model_idにInference profileのARNを指定する必要があります。 Inference profileは自分で作成する必要があるので注意ください。
例)
mode_id: arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-3-7-sonnet-20250219-v1:0

Geminiを利用する場合

環境変数GEMINI_API_KEYに、Google AI Studioで取得したAPI KEYを設定してください。
(Google AI Studioページの「API キーを取得」(Get API key) や「APIキーを管理」(Manage API keys) のようなリンクから取得できます。)

OpenAIを利用する場合

環境変数OPENAI_API_KEYに、API KEYを設定してください。
(OpenAIのプラットフォームサイト https://platform.openai.com/ にログインした後にAPI keysページで取得できます。 なお、先に課金していないと429エラーになります。)

実行コマンド

cd /path/to/your/repository
yokoten

または、直接main.pyを実行

cd yokoten/yokoten  # yokotenのリポジトリの中のyokotenフォルダに移動する
python3 main.py --input /path/to/your/repository

仕様

git管理化にないファイルは検索対象から除外されます。.gitignoreされているファイルや、untrackedなファイルなど。

その他

このツールの初期スクリプトはGemini 2.5 Proによって生成されました。 その後も、いくつかのLLMツールによって生成されたコードを利用しています。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yokoten-0.1.1.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yokoten-0.1.1-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file yokoten-0.1.1.tar.gz.

File metadata

  • Download URL: yokoten-0.1.1.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for yokoten-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c213a44a95733dbb4cf9cdc5f9a5cb185cb11a7fc7a9d1c7944b3093c0343091
MD5 fe0377e88a12c348aeaa56e291873904
BLAKE2b-256 d1a0e6cd30f1070c252632e7ac91c953882f8664dd43284b4eb52dc93c516711

See more details on using hashes here.

File details

Details for the file yokoten-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: yokoten-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for yokoten-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1af5a19650750d6eb3b781faabc1ba83cb0b9328bac02d3206f04127b3f2f210
MD5 4315ad4c8d17f84dafa2c8e0f01b2137
BLAKE2b-256 5ac424a5af3baa9a31c278a4a14c1cb5b2b6e70222eebb8733cdbeb84768d6a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page