従来より高速な差分適用型のAIです。 これまでは何百何千行のファイル、もしくはファイル群があった際に全ファイル修正するアルゴリズムが採用されがちでした。 差分適用型のように見えるエディタも内部では全コード出力され、非常に時間がかかり、トークン消費も高かった事が問題として挙げられます。
本アルゴリズムではunified diff形式を活用しPatchを適用することで生成時間とトークン消費を格段に抑えました。
注意 本機能は実験的かつLLMの揺らぎにより差分Patchが適用されない問題が発生します。 未解決問題なのでプルリク歓迎します。(python純正でのPatch適応は失敗が多く、subprocessによりシェルコマンドを呼び出す設計にしています) 部分的な修正は成功確率が高いので、大掛かりな修正は別の方法をお試しください。
diffpatchは、ファイルの内容を指定された要求に基づいて変更するAI機能です。Anthropic APIを使用して変更内容を生成し、unified diffフォーマットでパッチを適用します。
詳細はこちら → https://x.com/ai_syacho/status/1816076680810881309
- 指定されたファイルの内容を読み込む
- Anthropic APIを使用して、要求に基づいた変更内容を生成
- 生成されたdiffをカラフルに表示
- ユーザーの確認後、変更を適用
- オプションでdiffファイルを保存
export ANTHROPIC_API_KEY=sk-a~~~~~~~
python diffp.py -f <ファイル名> -r <変更要求> [-s <y/n>] [-rf <要求ファイル>]
-f
,--file
: 変更対象のファイル名(必須)-r
,--request
: 変更の要求(-rfが指定されていない場合は必須)-s
,--save-diff
: diffを保存するかどうか(y/n、デフォルトはn)-rf
,--request-file
: 要求を含むファイル
- anthropic
- logging
- argparse
- difflib
- tempfile
- subprocess
- os
- datetime
- Anthropic APIキーが環境変数に設定されている必要があります
- パッチの適用には
patch
コマンドが使用されるため、システムにインストールされている必要があります
- APIリクエスト、ファイル操作、パッチ適用時のエラーを適切に処理します
- パッチ適用のタイムアウトは3秒に設定されています
- 重要な操作やエラーはログに記録されます
- デフォルトのログレベルは WARNING です
バグ報告や機能リクエストは、Issueトラッカーを使用してください。プルリクエストも歓迎します。
このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。