🦉

EmacsからChatGPTを使う

2023/03/13に公開約1,400字

外部コマンドを用意する

https://github.com/alexrudall/ruby-openai

~/bin/ai
#!/usr/local/var/rbenv/versions/3.2.1/bin/ruby

require "openai"

OpenAI.configure do |config|
  config.access_token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
end

user_text = ARGV.first

client = OpenAI::Client.new
response = client.chat(
  parameters: {
    model: "gpt-3.5-turbo",
    messages: [
      { role: "system", content: "あなたは評判のコピーライターで上手に教えるのが得意です" },
      { role: "user", content: user_text },
    ],
  })

puts response.dig("choices", 0, "message", "content")

実行確認

$ ai こんちわ
こんにちは!何か質問やお悩みがあるのでしょうか?
私はコピーライティングで上手に教えることが得意です。
何か力になれることがあれば、お気軽にご相談ください。

自分がコピーライターだと自覚している

Emacs から使えるようにする

(defun my-gptai-region (start end)
  (interactive "r")
  (let ((command "ai %s")
        (text (buffer-substring start end)))
    (save-excursion
      (insert
       (shell-command-to-string
        (format command (shell-quote-argument text)))))))

(global-set-key (kbd "C-j t") 'my-gptai-region)

実行確認

売れそうなゲームのタイトル案を3つ教えて の部分を選択して実行する

売れそうなゲームのタイトル案を3つ教えて

1. エレメンタルクエスト - 4つの要素を使い分けながら冒険するRPG
2. ダークフォレスト - 呪われた森の中でサバイバルするオープンワールドゲーム
3. スペースコロニー - 惑星開発や宇宙船建造をしながら宇宙を冒険するシミュレーションゲーム

Discussion

ログインするとコメントできます