🦉
EmacsからChatGPTを使う
外部コマンドを用意する
~/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")
- ChatGPT には特定の専門家を演じてもらう
- role について → https://platform.openai.com/docs/guides/chat/introduction
- 履歴も追加すると話題や会話の流れを理解するようになる
- 履歴は user と assistant のやりとり
- オプション → https://platform.openai.com/docs/api-reference/chat/create
実行確認
$ 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