AICodeBot は、コーディング作業を容易にするために設計されたターミナルベースのコーディング アシスタントです。ペアプログラマーの AI 版と考えてください。コードレビューを実行し、役立つコミットメッセージを作成し、問題をデバッグして、新しい機能の構築について考えるのに役立ちます。開発のペースを加速し、より良いコードの作成を支援するチーム メンバー。
私たちは、AICodeBot と対話するための複数の異なるインターフェイスを構築することを計画しました。まず、これはターミナルにインストールして実行できるコマンドライン ツールであり、コード レビュー用の GitHub アクションです。
ステータス: このプロジェクトは、AI コーディング アシスタントが登場する前に構築されました。 ?そのため、機能の多くはさまざまな IDE で複製されています。 AICodeBot が優れている点は、a) GUI ではなくターミナル内にあること、b) GitHub アクションなどのプロセスで使用できることです。
私たちは AICodeBot を構築するために AICodeBot を使用していますが、それは常に上向きのスパイラルになっています。️ 私たちは、AICodeBot の構築を手伝ってくれる貢献者を探しています。詳細については、「貢献」を参照してください。
タスク | 状態 |
---|---|
高品質のコミットメッセージの生成 | ✅ |
ペアプログラマーとしてタスクを考える | ✅ |
少数のファイルでコーディングする | ✅ |
デバッグ | ✅ |
コードレビューを行う | ✅ |
コードの説明 | ✅ |
テストの作成 | ✅ |
GitHubとの統合 | ✅ |
ローカルファイルの変更 | 初期段階 |
インターネットで答えを探す | 進行中 |
ライブラリのドキュメントを読む | 初期段階 |
多数のファイルを使用したコーディング | LM のトークン制限が大きくなるにつれて |
上級開発者レベルのコードを書く | 最終的に |
主なリファクタリング | 最終的に |
アプリ全体を構築する | 最終的に |
開発者を交代する | いいえ |
aicodebot sidekick
AI を活用したコーディング アシスタント。コンテキストを認識した提案と解決策を提供することで、コーディング タスクを支援するように設計されています。 ChatGPT には、コンテキストのローカル リポジトリを読み取る機能が備わっていると考えてください。
デフォルトでは、現在の作業ディレクトリからファイルのディレクトリが渡されます。また、作業中のタスクのコンテキストとして使用するファイルのリストを渡すこともできます。例えば:
aicodebot sidekick file1.py file2.py
この例では、サイドキックは file1.py と file2.py の内容を読み取り、それらを使用してコンテキストを認識した回答を提供します。
プロのヒント:
この機能は現在初期段階にありますが、すでに便利になっています。 GitHub の統合、リポジトリ固有のドメインの知識の取り込み、ローカル ファイルの書き込みなど、サイドキックが使用できるツールのサポートを追加する予定です。現時点では、ファイルを読み取り、提案を提供するだけです。
aicodebot commit
git commit プロセスを改善します。プレコミットを実行して構文をチェックし、加えた変更に基づいてコミット メッセージを生成します。コミット メッセージに「バグを修正」と入力するのと同じくらいの労力で、変更を詳細に説明した高品質のコミット メッセージが得られます。
aicodebot review
コードのコードレビューを実行し、改善を提案します。デフォルトでは、ステージングされていない変更が確認され、確認する特定のコミット ハッシュを指定することもできます。その目的は、コードをより良くする方法を提案することであり、多くの場合、コードについて新しいことを教えてくれて、より良いプログラマーになれることがわかりました。これは、コードに 2 番目のロボットの目を取得する優れた方法です。
aicodebot debug $command
$command を実行し、ログ出力をキャプチャします。エラー メッセージ、スタック トレース、コマンド出力などを AI に渡し、修正方法に関する提案を返します。
AICodeBot をインストールするには、次を実行します。
pip install aicodebot
次に、 aicodebot configure
実行して開始します。
Usage: aicodebot [OPTIONS] COMMAND [ARGS]...
Options:
-V, --version Show the version and exit.
-h, --help Show this message and exit.
-d, --debug Enable langchain debug output
Commands:
alignment A message from AICodeBot about AI Alignment ❤ + ?.
commit Generate a commit message based on your changes.
configure Create or update the configuration file
debug Run a command and debug the output.
review Do a code review, with [un]staged changes, or a...
sidekick Coding help from your AI sidekick
AICodeBot は、Anthropic の Claude 3.x や OpenAI の GPT-3/4x など、複数の大規模言語モデルをサポートしています。 Gemini または Ollama のプル リクエストは歓迎されますが、これら 2 つが効果があると考えられます。
AICodeBot を初めて実行するときは、API キーの入力を求められます。
コミットごとにコードレビューを自動化するのはどうでしょうか? AICodeBot をリポジトリ上で GitHub アクションとして実行できます。コードレビュー用の AICodeBot GitHub アクションを参照してください。すべてのコミット リクエストとプル リクエストを調べて、次のいずれかを実行します。
aicodebot debug $command
で試してみるpip install aicodebot
使用して Python パッケージとしてインストールできますaicodebot alignment
を試してみてください。 テクノロジー自体は非道徳的です。それを作成した人々の価値観を吹き込むだけです。私たちは AI が人間性と一致する方法で組み込まれるべきであると信じており、まさにそれを支援する AICodeBot を構築しています。私たちは心を中心とした空間から構築し、AI と人類の健全な交差点に貢献しています。
aicodebot
は開発者のためのツールであり、開発者に代わるものではありません。それはあなたの仕事に取って代わるものではありませんが、あなたの仕事はより簡単で楽しいものになります。それは世界を征服することはありませんが、より良い世界を構築するのに役立ちます。詳細については、以下の「配置」セクションを参照してください。
また、よく構成されたプロンプトに従って足場を構築してくれる、「5 分でサイトを構築してくれる」ツールでもありません。そのためのツールは他にもあります。これはノーコード プラットフォームではありません。代わりに、AICodeBot は既存のコードベースと git-commit レベルで動作するように構築されています。有能なエンジニアの効率を何倍にも高めるように設計されています。
別のモデルを指定するには、 $HOME/.aicodebot.yaml
ファイルでlanguage_model
設定します。例えば:
openai_api_key : sk-*****
language_model : gpt-3.5-turbo
personality : Stewie
version : 1.3
OpenAI の GPT-4 のような AI モデルでは、「トークン」は文字のように短いか単語のように長いテキストの一部です。入力と出力を含む API 呼び出し内のトークンの合計は、コスト、時間、および最大制限に基づいて呼び出しが機能するかどうかに影響します。
各モデルには最大トークン制限があります。たとえば、GPT-3.5 には 4096 トークンの制限があり、GPT-4 には 8192 トークンのトークン制限があります。会話がこの制限を超える場合は、収まるまでテキストを減らす必要があります。
AICodeBot の Sidekick コマンドなどのコマンドを使用すると、コンテキストのファイルを渡すことができ、トークンを効果的に管理することが重要です。トークンの制限により、コードベース全体をロードすることは現実的ではありません。代わりに、作業中のタスクに関連する特定のファイルのみをロードする必要があります。これにより、AI モデルがリクエストを効率的に処理し、現在のタスクに最も関連性の高い提案を提供できるようになります。
タスクにさらに大きなコンテキスト ウィンドウが必要ですか?トークンの制限に達し、次のようなメッセージが表示されますか?
The context is too large (21414) for any of the models supported by your API key. ?
次のようなことができます。
ぜひご協力をお願いいたします。貢献に興味がある場合は、ここから始める方法をご覧ください。詳細については、「貢献」を参照してください。
現在の作業ディレクトリに変更が既に追加されていると仮定します。
docker build -t aicodebot .
docker run -v ~ /.aicodebot.yaml:/home/user/.aicodebot.yaml -v .:/app aicodebot commit -y