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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c213a44a95733dbb4cf9cdc5f9a5cb185cb11a7fc7a9d1c7944b3093c0343091
|
|
| MD5 |
fe0377e88a12c348aeaa56e291873904
|
|
| BLAKE2b-256 |
d1a0e6cd30f1070c252632e7ac91c953882f8664dd43284b4eb52dc93c516711
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1af5a19650750d6eb3b781faabc1ba83cb0b9328bac02d3206f04127b3f2f210
|
|
| MD5 |
4315ad4c8d17f84dafa2c8e0f01b2137
|
|
| BLAKE2b-256 |
5ac424a5af3baa9a31c278a4a14c1cb5b2b6e70222eebb8733cdbeb84768d6a5
|