これまでは、エディタとしてのEmacs。
特に不便を感じたことはなかったが、ChatGPTアプリを使っているときに、ふと考えた。Emacsの拡張機能はLispで書かれている。 このLisp、人工知能(AI)開発のために生まれた言語。と、大学4年のときにReduce特論で東大の後藤英一先生から教わった。それなら、LispでAIシステムを開発してきた人たちは、EmacsからChatGPTをどう活用しているのだろう? そんな疑問が湧いてきた。
調べていくうちに、LaTeXの大家・奥村晴彦さんのページにたどり着いた。
> EmacsでLLMを使う: chatgpt-shell
奥村さんは、既にEmacs上でOpenAIのAPIを使ってChatGPTを活用していた。
`.init.el`に以下のように記述するだけとのこと。
“`elisp
;; ChatGPT!
(use-package chatgpt-shell
:ensure t
:custom
(chatgpt-shell-openai-key (getenv “OPENAI_API_KEY”)))
“`
OpenAIとAPI利用契約を結び、APIキーを発行してもらい、
`.bash_profile`などに環境変数を下記のように設定する。
“`bash
# OpenAI API Key
export OPENAI_API_KEY=”xxxxxx”
“`
あとは、Emacsを通常通り起動して
`M-x chatgpt-shell`
と入力すれば、ChatGPTとの対話バッファが開くらしい。
なんだ、こんなに簡単でいいのか! しかもAPIごとの課金で、課金単位も自分で設定できるので安価!
と、驚いた。
物事の本質をよく知る人は、最短ルートを知っている。
あらためて、それを実感した。
ただ、自分の環境(Apple Silicon Mac)でchatgpt-shellを動かせるEmacsをビルドするのは一筋縄ではいかなかった。.init.elに上記の記述を追加してEmacsを起動すると、Emacsが起動しない。 バッファにはエラーメッセージが表示されていた。どうやらTLSが必要らしい。 今までビルドしてきたEmacsはローカルリソースにアクセスできれば十分だったのでOpenSSLやGnuTLSをリンクから外していた。 API連携を使うならTLSは必須だし、Emacs Lispの追加パッケージもELPA経由で取り込む場合TLS通信は必須。
GnuTLSをリンクしたEmacsをビルドするには、GnuTLSをMacにインストールしなければならない。
ここで一苦労した。
“`bash
brew install gnutls
“`
とHomebrewでGnuTLSをインストールしても、`configure`コマンドでエラーになる。
結局、Apple Silicon Macであることが原因だったようだ。
Brew環境は以前使っていたIntel Macから移行してきたものだったため、悪影響が出ていた。
一度、Homebrew環境を全て削除し、再インストールした。
これで無事にビルドが通った!
“`bash
$ cd ~/emacs # Emacsのソースディレクトリへ
$ make distclean
$ ./autogen.sh
$ ./configure –with-ns –without-x –disable-ns-self-contained –with-gnutls –without-webp –without-rsvg –without-png –without-gif –without-tiff –without-jpeg –without-xpm –without-lcms2
$ make
$ sudo make install
“`
こうして、chatgpt-shell生活が始まった。
使い始めてみると、非常に快適!!!


コメントを残す