LoginSignup
5
1

More than 1 year has passed since last update.

DatabricksでChatGPT(OpenAI API)を試してみる

Last updated at Posted at 2022-12-06

はい、流行り物に乗りました。

中身に関する記事は結構書かれていると思いますので、Databricks環境でどう動かすのかにのみフォーカスします。

APIキーの取得

こちらにサインアップします。

メニューからView API keysを選択します。
Screen Shot 2022-12-06 at 19.00.27.png

Create new secret keyをクリックし、表示されるキーをメモしておきます。

クラスターの設定

  1. 最近のランタイムであれば問題なく動きます。ここでは12.0 ML betaを使っています。
    Screen Shot 2022-12-06 at 19.02.11.png
  2. ライブラリをインストールします。PyPIからopenaiをインストールする様にします。
    Screen Shot 2022-12-06 at 19.02.44.png
  3. クラスターが起動し、ライブラリがインストールされたことを確認します。
    Screen Shot 2022-12-06 at 19.43.03.png

シークレットの設定

Pythonのサンプルでは環境変数経由でAPIキーを読み込んでいますが、この方法はDatabricksでは非推奨なので、シークレットを使います。

  1. ローカルマシンでDatabricks CLIをセットアップします。

  2. databricks configure --tokenを実行して、Databricks CLIの接続設定を行います。

  3. ターミナル(コマンドプロンプト)で以下のコマンドを実行します。

    Bash
    databricks secrets put --scope <スコープ名> --key <キー名>
    
  4. エディタが表示されるのでAPIキーの取得で取得したキーを入力します。

  5. 保存してエディタを終了します。これでシークレットが保存されました。

ノートブックでOpenAI APIを実行

こちらのPythonバインディングのサンプルを参考にします。

Python
import os
import openai

# シークレットからAPIキーを取得
openai.api_key = dbutils.secrets.get("demo-token-takaaki.yayoi", "openai")

呼び出しやすくなる様に関数にします。APIの仕様はこちらにあります。

Python
def openai_completion(prompt):
  response = openai.Completion.create(model="text-davinci-003", prompt=prompt, max_tokens=3000)
  # コンプリーションを表示
  print(response.choices[0].text)

あとは色々遊んでみます。

Python
openai_completion("Databricksとはなんですか")

Screen Shot 2022-12-06 at 19.09.11.png

Python
openai_completion("鳥と猫は同居できますか")

Screen Shot 2022-12-06 at 19.10.47.png

Python
openai_completion("若者とは何歳までですか")

Screen Shot 2022-12-06 at 19.11.43.png

きちんと返してくれる、すごいです。これで基本は動かせたので他にも何ができるか試してみます。手前味噌であれですが、新しいものをクイックに試す際にきれいな状態の実行環境をすぐに用意できるDatabricksクラスターは便利だと思います。

Databricks 無料トライアル

Databricks 無料トライアル

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1