🤖

コーディングAI Cody をより深く使おう

2024/12/31に公開

🔰 はじめに

みなさん、はじめましてエクスヴェリアと申します。
サナミさんのこちらの記事に便乗する形で Cody をより深くカスタマイズする話をしたいと思います。
Cody って何?という方はまずこちらをご覧ください。
https://zenn.dev/sanami/articles/7c24ce973b7e7c

⚠️ 注意事項

※ この記事は、2024/12/31 時点の情報です。
また、前提として、使用するバージョンは Codyの プレリリース版
一部の機能は Pro ユーザー のみが利用できるものである場合があります。

🤖 Let's Customize Cody

Cody は AI コーディングに最適化されています。
しかし、この Cody……実はもっと自分の好みに カスタマイズできるのです!
この記事では主に 3つ紹介します。
とりあえずこれだけはまずカスタマイズしたい!みたいな感じのものを紹介します。

・今回記事で紹介する項目はこちら

システムプロンプトの追加
Ollama を使ったコード補完
モデルの追加

■ システムプロンプトの追加

早速紹介していきましょう。
まずは、システムプロンプトの追加についてです。

Cody の 拡張機能の設定 または、settings.json を開き、

cody.chat.preInstruction

を検索します。
出てきたところに、システムプロンプトを追加します。

おすすめのシステムプロンプトとして、自分が使っているものを紹介します。

"cody.chat.preInstruction": "Please think thoughts in English. 出力は日本語で出力してください。",

これで日本語で回答してくれるようになります。

■ Ollama を使ったコード補完

次に、コード補完のカスタマイズについてです。
こちらは、settings.json を開き、次のように記述します。

    "cody.autocomplete.advanced.provider": "experimental-ollama",
"cody.autocomplete.experimental.ollamaOptions": {
    "url": "http://localhost:11434",
    "model": "<モデル名>"
  },

これにより、Ollama を使用してコード補完を行うことができます。
Ollama を使った コード補完であれば、下記のモデルがおすすめです。

qwen2.5-coder:7b-base
yi-coder:9b-base-q4_K_M

※ コード補完を行う場合 Base モデルで有るかを確認してください。

■ モデルの追加

さて、モデルの追加です。
Codyは様々なモデルが使えるというのは魅力の一つで Ollamaのモデルであれば自動で追加され使えます。しかし、それだけでなく、自前のAPIがあれば、Google の Gemini Experimental など 先行公開されているようなモデルでも追加が可能となっています。
さらに自前のAPIであればコンテキスト長は "InputTokens" で指定できます
Cody君の、コンテキスト長を伸ばすのに最適です。

settings.json を開き、下記のような設定を作成します。

cody.dev.models: [
{
            "provider": "google",
            "model": "gemini-2.0-flash-exp",
            "inputTokens": 1048576,
            "outputTokens": 8192,
            "apiKey": "<YOUR_API_KEY>",
            "options": {
                "temperature": 0.0
            }
        },
]

※ API キーは、Google AI Studio から取得してください。

これで、Cody が Gemini 2.0 Experimental を使用できるようになります。

同じ様に下記の設定を追加することで、Gemini Experimental 1206 を使用できるようになります。


cody.dev.models: [
{
            "provider": "google",
            "model": "gemini-exp-1206",
            "inputTokens": 2097151,
            "outputTokens": 8192,
            "apiKey": "<YOUR_API_KEY>",
            "options": {
                "temperature": 0.0
            }
        },
]

また他にも 様々な API が利用可能ですので紹介します。


{
    "cody.dev.models": [
    {
      "provider": "google",
      "model": "gemini-2.0-flash-exp",
      "inputTokens": 1048576,
      "outputTokens": 8192,
      "apiKey": "<YOUR_OWN_API_KEY>",
      "options": {
        "temperature": 0.0
      }
    },
    {
      "provider": "groq",
      "model": "llama2-70b-4096",
      "inputTokens": 4000,
      "outputTokens": 4000,
      "apiKey": "<YOUR_OWN_API_KEY>",
      "options": {
          "temperature": 0.0
      }
    },
    {
      "provider": "openai",
      "model": "some-model-id",
      "inputTokens": 32000,
      "outputTokens": 4000,
      "apiKey": "<YOUR_OWN_API_KEY>",
      "options": {
          "temperature": 0.0
      },
      "apiEndpoint": "https://host.domain/path"
    },
    {
      "provider": "ollama",
      "model": "some-model-id",
      "apiEndpoint": "https://host.domain/path"
    }
  ]
}

※こちらは、Cody のドキュメント から引用しています。
https://sourcegraph.com/docs/cody/clients/install-vscode#experimental-models

🍴 Fork版Cody 2025/01/04 加筆

Cody には現在、フォーク版のCodyが存在しています。
https://github.com/PriNova/cody
下記に改善点が纏められています。こちらを翻訳させてもらいました。
https://github.com/PriNova/cody/blob/custom-builds/vscode/feature-list.md

1. **LLM プロバイダーの改善 (BYOK)**:

   - LLM プロバイダーとして OpenRouter モデル構成のサポートを追加しました。
   - BYOK モデル (Groq) のチャット ストリームで、最後のアシスタント メッセージを除外します。

2. **AI ビジュアル ワークフロー エディター**:

   - https://youtu.be/-U3HLyGLIZ4

4. **チャット メッセージ内のファイル名をクリック可能にする (Smart Apply)**:

5. **チャットの改善**:

   - チャット履歴のタイトルを変更する。
   - メッセージにトークン カウンターを表示する。
   - 検証付きの温度設定を公開する。
   - アシスタント メッセージにコピー機能を追加する。
   - チャット補完のために設定可能な温度を実装する。
   - 独自の API キーを介した Gemini Flash 2.0 モデルの画像モダリティ
   - トグル機能を備えた Google モデルの Google 検索統合

6. **コンテキストに外部リポジトリ、ディレクトリ、ファイルを使用する**

こちらの導入方法についても解説していこうと思います。

https://github.com/PriNova/cody/releases
こちらのページから、
cody-custom.vsix をダウンロードします。
ダウンロードしたら VS Codeにて 拡張機能のページから右上にある ...VSIXからインストール をクリックして先ほどダウンロードした cody-custom.vsix を選択してインストールします。

インストールが完了すれば、フォーク版のCody が使えるようになります。
トークンの数などがわかりやすくなるのでおすすめです。
また、Toolboxタブが増え、 Cody Workflow Editor というものが追加されているのも便利そうです。(筆者は、記事更新時点では触れていませんが、こちらについても 加筆か別途記事を書くかもしれません。)
詳細は下記の動画にて解説があるようです。
https://www.youtube.com/watch?v=-U3HLyGLIZ4

📖 まとめ

Cody は まだ、ここに書ききれない便利機能もたくさんあります。
(コミットメッセージの自動作成とか、カスタムコマンドとか……)
そのあたりは、次回の記事にしたいと思いますが、予定は未定です。

もし、より沼に沈んだら深く興味を持ったら
Cody のドキュメント はこちらからどうぞ。(英語です。)
また、Github に ソースが公開されているので、こちらも覗いてみてください。

ここまで読んでいただき、ありがとうございました。
なにか、わからない点があればコメントなりで質問してもらえればと思います。

📚️ 最後に

この記事は、AI 声づくり技術研究会 Advent Calendar 2024 の 記事です。
https://qiita.com/advent-calendar/2024/koeken
声づくり技術研究会の Discord は こちらからどうぞ。
https://discord.gg/bmNezxjCq2

Discussion