😽

ChatGPT.nvimで快適プロンプト生活

2024/02/14に公開

はじめに

初投稿です。
ChatGPT.nvimを使うとvim上でChatGPTを操れるようになります。
https://github.com/jackMort/ChatGPT.nvim

例. 基本的なプロンプト応答 :ChatGPT

例. 選択したテキストを元に質問 :ChatGPTEditWithInstructions

ブラウザでChatGPTを開いて、プロンプトを投げて、出力をコピー&ペーストする作業から解放されるのでとても便利です。

導入にあたり躓いたポイントがあったので手順を紹介します。

手順

1. ChatGPT.nvimのインストール

お好みのプラグインマネージャを使ってChatGPT.nvimをインストールします。

プラグインマネージャーを使ったことがない方にはlazy.nvimがおすすめです。
ChatGPT.nvimごとまとめて導入する場合は、以下のスクリプトをinit.vim(もしくはinit.lua)に書いてください。

lua << EOF -- init.luaに書く場合はコメントアウト
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    "--branch=stable", -- latest stable release
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)

require("lazy").setup({
    {
      "jackMort/ChatGPT.nvim",
        event = "VeryLazy",
        config = function()
          require("chatgpt").setup()
        end,
        dependencies = {
          "MunifTanjim/nui.nvim",
          "nvim-lua/plenary.nvim",
          "folke/trouble.nvim",
          "nvim-telescope/telescope.nvim"
        }
    }
})
EOF -- init.luaに書く場合はコメントアウト

vimを再起動するとプラグインのインストールが始まります。

2. Open AI API Keyの取得

ChatGPT.nvimからはAPIを経由してプロンプトを渡すのでOpenAIのAPIKeyが必要です。
2024年2月14日現在、ChatGPT Plusに加入してもKeyは発行されず、従量課金制のAPIを契約する必要があるので注意してください。

発行手順は下記にまとまっています。
https://book.st-hakky.com/data-science/open-ai-create-api-key/

料金はtokenという単位で設定されています。大雑把に1token = 1wordのイメージです。
精度が高いモデルほど1tokenあたりの値段も高くなります。gpt-3.5 turboの場合は1tokenあたり0.01$でした。ちなみにひらがな・漢字はtokenの消費量が多いので英語で質問したほうがお得です。

請求額が不安であれば課金額の上限を設けておきましょう。
Settings -> Billing -> Usage limits から設定できます。

3. ChatGPT.nvimにOpenAIKeyを読み込ませる

ChatGPT.nvimにAPI Keyを読み込ませる方法として

  1. 環境変数$OPEN_AI_KEYに登録する
  2. 1passwordからcliで渡す
  3. gpgからcliで渡す

の3つが紹介されています。

方法1は脆弱なので外します。
僕は方法2を選びました(前から1paasswordを使いたいと思っていたので)。
1passwordを有料契約する必要があるので注意してください。

方法2での手順を紹介します。

1.1PasswordのCLIを導入する

https://developer.1password.com/docs/cli/get-started/

2. 1PasswordにOpen AI API Keyを登録する

op item create --vault Personal --title open_ai --category "Secure Note"
op item edit --vault Personal key [key]

参考:1Password の CLI で環境変数を管理する

3. ChatGPT.nvimから1Password内のAPI Keyを読み込む

init.vimに以下を追記してください。

-- ChatGPT.nvim
require("chatgpt").setup({
  api_key_cmd = "op read op://Personal/OpenAI/key --no-newline"
})

これで準備が整いました

さいごに

1PasswordにAPI Keyを登録する手順に戸惑ったので記録に残しました。
vimからプロンプトを投げることで、ブラウザとターミナルを行き来するスイッチングコストを節約できると期待できます。最後まで読んでいただきありがとうございました。

Discussion