Open2

avante.nvim を使いこなす

lugen4rolugen4ro

システムプロンプトをカスタマイズする方法

備え付けのプロンプトはここにある。planningediting などモードごとに異なる。

カスタムプロンプトを使う方法の記載はここにある。

やり方は2通り。

【1】 setup で渡す config にて system_prompt を指定する

local avante = require("avante")

local config = {
    provider = "copilot",
    copilot = {
        model = "claude-3.5-sonnet",
        timeout = 30000, -- milisec = 30 sec
        temperature = 0,
        max_tokens = 4096,
    },

   ...

    -- ここに書いた内容は備え付けのシステムプロンプトに追加される。(置き換わるわけではない)
    system_prompt = "YOU ALWAYS START YOUR SENTENCES WITH \"Howdy Partner!\""
}

avante.setup(config)

Autocommand を使ってこの system_prompt を設定すれば、任意の状況(プロジェクトごと、ファイルタイプごとなど)で任意のシステムプロンプトを追加できる。

例えば .lua ファイルがバッファのときに特別の指示をしたい場合は以下のような autocommand を作ればよい。

vim.api.nvim_create_autocmd("FileType", {
  pattern = "lua",
  callback = function()
    require("avante.config").override({system_prompt = 'YOU ALWAYS START YOUR SENTENCES WITH "LUA最高!"'})
  end,
})

【2】 *.{mode}.avanterules ファイルを使う

プロジェクトのルートディレクトリに例えば reactnative.planning.avanterules のようなファイルを作り、そこにカスタムプロンプトを書くことができる。
この場合、reactnative の部分はなんの文字列でもいいが、 planning のところは4種類のモードのいづれかである必要がある。

lugen4rolugen4ro

Copilot を使う方法

以下の設定でいける。

local avante = require("avante")

local config = {

    -- Copilot を指定
    provider = "copilot",

    -- Copilot が使うモデルなどを指定
    copilot = {
        model = "claude-3.5-sonnet",
        -- model = "claude-3.7-sonnet",
        -- model = "gpt-4o",

        timeout = 30000, -- milisec = 30 sec
        temperature = 0,
        max_tokens = 4096,
    },

  -- 他の設定 ...
}

avante.setup(config)