Shingoの数学ノート

プログラミングと機械学習のメモ

SASとChatGPTでアキネイタークイズをつくった

日付:    カテゴリ: SAS


お久しぶりです。前回からすごい空いてしまいましたが、ネタを思いついたので書いていきます。

僕は最近よくYoutubeのShortで1分間アキネイターやってるのをみて、自分もめっっっっちゃやりたくなります。

でも僕にはやってくれる友達がいません。

ということで、SASとChatGPT先生を使って一人でできるアキネイタークイズを作っていきます。

ChatGPTでAPIを登録する(まだAPIを持っていない人向け)

まずはhttps://openai.com/productの「get started」をクリックしてアカウントを作成します。

次に、https://platform.openai.com/account/api-keysの「+Create new secret key」をクリックし、 secret keyをメモします。このkeyを使ってChatGPTを使用します。

アキネイターマクロを読み込む

Akinator.sasをダウンロードしておきます。

上記では下記のマクロを定義しています。全部説明するのは大変なので、概要だけ書いておきます。

  • reset_answer:
    プロシジャ名をリセットするためのマクロ。入力パラメータはapi_key、model、add_text であり、add_textで難易度調整などができる。 最初は候補をデータからランダムに選択させようと思ったが、めんどくさかったのでChatGPTに投げた。
  • akinator:
    アキネイタークイズの実行マクロ。入力パラメータはtext,history_ds,api_key,past_num,modelであり、textに質問を入れて答えに近づけていく。 modelはgpt-3.5-turboのほうが安いが、言いつけを守ってくれないので、ちゃんと遊ぶならgpt-4-turbo-preview推奨。

アキネイタークイズをプレイ

実際にプレイしていきましょう。下記のように実行します。

%include "Akinator.sas";
/* APIキーの設定 */
%let api_key= ***;
/* クイズのリセットと開始 */
%reset_answer(&api_key.,add_text="難易度は簡単でお願いします。");
%let text = それは集計で使用しますか?;
%akinator(&text.,history_ds,&api_key.);

add_textに難易度をいれれば、それに合わせてChatGPT先生が答えを調整してくれます。

textには質問を入れ、答えるときは、「答えは〜です」というように答えます。2回目以降はreset_answerを動かさずに、%let text=と%akinatorのみを実行していきます。

ま、余裕っすね。

ということで、add_textに「難易度は難し目でお願いします」と設定して再チャレンジ。

全く歯が立たず… ちなみに、マクロ変数「answer」に答えが入っているので、%putをすることで答えを確認できます。(このときはPLSでした。聞いたことないので精進します。)

まとめ

SASとChatGPTを使ってアキネイターを作ってみました。SASのプロシジャ自信ある人は遊んでみてね。

個人的に遊ぶ分にはコストはそこまでかからないはずだけど、確認はしておいたほうがいいと思います。


Comment Box is loading comments...