ChatGPT の API が公開されたので遊んでみよう!

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

ChatGPT のお陰で毎日が楽しい楽介です。できるだけ仕事はいろいろな AI にお手伝いしてもらい、お仕事以外では AI の研究をするのが日常ですね。ちょっと何を言っているか分からないですね。

昨年は画像系のジェネレーティブ AI の話題が多かったですが、 ChatGPT 登場以降、LLM(大規模言語モデル)周辺の話題が過熱していますね。当サイト的に言うと、これまで生産性を劇的に改善することが難しかった顧客体験(CX)の提供において大規模な地殻変動レベルの変動が起きる可能性があるためです。

検索エンジンと比較されがちだった、Webサービスとしての ChatGPT では使い方を研究しても質疑応答レベルでいえば一般的なことしか回答が得られません。参考資料などを読み込ませて希望する回答を得られるようにしてもそれを他者と共有して利用することはできませんでした。

ところが、今回の API の公開で何が変わるかというと、「自分(自社)の情報を優先して回答するChatGPT」を作成・提供が可能になるのです(現時点では、ChatGPTに相当するGPT-3.5-turbo ではファインチューニングが行えないので限定的ではあります)。

しかも、 API なので自社で大規模なインフラを整える必要がありませんし、利用料金が前バージョン Davinci と比較して 驚きの 1/1000 です。

サービスとして外部に提供するのが難しくても自分向け・自社向けにテスト開発を行い、ノウハウを蓄積しておくことで確実に将来役に立つでしょう(もちろん、テスト開発で不安定であることを呑める環境であれば、大幅な生産性の向上に寄与すると考えられます)。

ということで、遊んでみましょう。

開発環境

  • Windows11 Python 3.11.1 64bit
  • Visual Studio Code
  • LangChain、OpenAI API 利用

環境については、本当に楽しむだけであれば Google Colaboratory を利用するという考え方もあります。ただこの方法だと同じく、言語モデルでちょっと話題の GitHub Copilot を利用しようとすると大分大変らしいので、今回は今後の活用の可能性を考えて使いやすい Visual Studio Code を選択しています。

また、ただ実験するだけならともかく、アプリケーションやボットを開発しようと思うと OpenAI API は直接叩くと大変そうです。何故なら、実際には複数の API やらデータベースやらを組み合わせて実装することになると思われるからです。また、文脈を把握するためのメモリー機能なども必要となります。そのため、今回は LangChain を利用します。

LangChain を使えば、上述したような組み合わせの他、例えば別の団体や企業がより優れたモデル・API を出してきたときに乗り換えるのも楽だからというのも理由です(もっとも、より優れたライブラリが出て来て乗り換えたい、ということもあるでしょうが……)。

優れた研究者や最先端のエンジニアリングを実装する企業に勤めているといった場合はともかく、今後の開発環境はいかに「AI を利用しやすい」ということが重要になってくると思われます。それはエディタもしかり、 AI に蓄積されている(されていく)ベストプラクティスの多い言語やライブラリもしかりです。

ライブラリのインストール

本当はvenv(仮想環境)なんかを作るのが正道なんでしょうが、今回は省きます。

py -m pip install langchain
py -m pip install openai

として必要なライブラリをインストールします(windows 以外の環境の方は pip -m install)。

OpenAI API の取得

https://platform.openai.com/

ユーザー登録・またはログインして左メニューの API Keys から生成。

 

使用量の確認などは Usage から。ChatGPT Plus を契約していても、無料トークンが増えたりはしませんが、$18 分の無料トークンがつきます。さらにカード情報などを登録しなくても使える良心的な仕様。

注意点として、 API キーにはドメイン指定などのアクセス制御ができないため、 GitHub やこういった blog などで間違えて公開しないようにしましょう。

使いすぎないするためには、 Billing → Usage limits から月間の使用量制限ができますので、 Paid Plan に移行した場合は設定しておくといいでしょう。会社や研究室、同好会など向けに Bot を公開する場合はもちろん、API Key の流出の他、自分のプログラムのバグ(暴走)で破産することを防げます。

とはいえ、個人で試したりする程度であれば18の無料トークンを期限内に使いきるのも難しいと思いますが……。

(いい感じの実装が出来