chatGPT 3.5 turbo公開。chatGPTとwhisperのAPIを使ってみた

最近は、猫も杓子もChatGPTの話題で持ちきりですね

私も前回の記事以降使い続けていますが、非常に便利で困ってます^^
今後は、スクラッチシステム開発を覚えるより、これらのサービスを以下に早く活用できるかが重要になっていきますね。
とはいえ、スキルの転換先がシステム開発者からプロンプト(呪文)職人というのは、まだ流石に抵抗があります。

今回は、3月1日に、ChatGPTの新エンジンであるchatGPT3.5-turboの公開と、whisperAPIの無料公開の発表があったので早速使ってみることにしました。

codezine.jp

注意点

このAPIを使用した問いかけは、新Bingに搭載されているものとは異なります。あくまで従来のChatGPTと同じ2021年のデータモデルをベースにしているようです。例えば、次のような問いかけの答えは、それぞれ異なります。

Q. 日本の現在の首相を教えてください。
A.(ChatGPT)菅 義偉さんです。
A.(新Bing)岸田 文雄さんです

使い方

はじめに、chatGPTのサイトにアクセスし、Sign upしてください。

openai.com

chatGPTサイトからAPI KEYを取得

OpenAI APIのサイトにアクセスし、メニューのAPI Keysを選択します。 画面で「Create new secret Key」をクリックします(新規でKeyを作る場合、ボタンが少し違うかも)

API Keyが表示されますので、内容をコピーし、メモ帳等に控えておきます。

実行

chatGPTでチャットする

  • ターミナルを開いて、以下のコマンドを実行します。
  • [chatGPTのAPI Key]には、上記で取得したAPI Keyを設定してください。
  • Qには、chatGPTに問い合わせる内容を設定してください。
# API KEYを設定する
API_KEY=[chatGPTのAPI Key]

# 問い合わせる文字列を設定する
Q="とても楽しそうな歌を作成してもらえますか?"

# WebAPIを実行する
QUERY_JSON='{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"'${Q}'"}]}'
curl https://api.openai.com/v1/chat/completions \
  -X POST \
  -H 'Authorization: Bearer '${API_KEY} \
  -H 'Content-Type: application/json' \
  -d ${QUERY_JSON}

次のような結果が返ってきました。
jsonのうち、choices.message.contentに回答が表示されます。実際にはJSONに埋め込まれてくるのですが、読みづらいので、後半で折り返して表示しています。

{
    "id": "chatcmpl-6qGnz2S76gswCK0FPYwrLJvN0FKkP",
    "object": "chat.completion",
    "created": 1677915675,
    "model": "gpt-3.5-turbo-0301",
    "usage": {
        "prompt_tokens": 28,
        "completion_tokens": 467,
        "total_tokens": 495
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "(回答※)"
            },
            "finish_reason": "stop",
            "index": 0
        }
    ]
}

---
※回答
もちろんです!以下は、とても楽しそうな歌の歌詞です。

(イントロ)
ラララ ラララ ラララ ラララ

(ヴァース1)
今日も眠りから覚めて
太陽が見えると世界が動き始める
街には人の笑い声が響き渡る
ああ、何とも楽しそうな朝だ

(コーラス)
ラララ ラララ ラララ ラララ
楽しい気分になって
ラララ ラララ ラララ ラララ
誰もが幸せになる

(ヴァース2)
今日は友達とお出かけ
楽しい思い出を作ろうと計画して
どこへ行こうか迷うけれど
ああ、何とも楽しそうな時間だ

(コーラス)
ラララ ラララ ラララ ラララ
楽しい気分になって
ラララ ラララ ラララ ラララ
誰もが幸せになる

(ブリッジ)
時には雨が降る日もあるけど
それでも楽しい時間は止まらない
なんでもOK!そんな心で
ああ、楽しい時間を過ごしましょう

(コーラス)
ラララ ラララ ラララ ラララ
楽しい気分になって
ラララ ラララ ラララ ラララ
誰もが幸せになる

(アウトロ)
ラララ ラララ ラララ ラララ
何とも楽しそうな歌だ!

whisper APIで文字起こしする

  • ターミナルを開いて、以下のコマンドを実行します。
  • [chatGPTのAPI Key]には、上記で取得したAPI Keyを設定してください。
  • SOUNDFILEには、文字起こしするための音声ファイルを設定してください。
# API KEYを設定する
API_KEY=[chatGPTのAPI Key]

# 問い合わせる文字列を設定する
SOUNDFILE=./assets/sound/narita.mp3

# WebAPIを実行する
curl https://api.openai.com/v1/audio/transcriptions \
  -X POST \
  -H 'Authorization: Bearer '${API_KEY} \
  -H 'Content-Type: multipart/form-data' \
  -F file=@${SOUNDFILE} \
  -F model=whisper-1

今回は、次の動画を音声としてWAVに保存したものを読み込ませています。

youtube.com

Youtube動画から音声を取り出すには、Webサービスの「dirpy」を使用しました。

dirpy.com

次のような結果が返ってきました。

{"text":"世界中どこに行っても働けたり稼げたり戦えたりする人材になろうとするか 別にそれはどうでもいいって考えるか 前者だったら当然できるだけ早く外に投げ出した方がいいと思うんですけど それはどうでもいいって考え方もあるにはあるんじゃないかなと思うんですよ 日本を衰えてるって言われていて それでも世界で3番目に大きい経済保っていて こんなに大きな経済を日本人で日本語が喋れる人だけで牛耳っているわけじゃないですか たまたま日本に生まれ育ったというだけで ある意味の既得権益を世界全体から見ると思ってると思うんですよね それを普通に活かしていくっていう生き方もありなのかなという気はしますよね"}%

話し方によって聞き取りの精度は異なると思いますが、今回はほぼ完璧に文字変換がされました。

利用状況と利用料

利用状況は、前述のAPIKEY画面のサイドバーから、「Usage」を選択することで確認できます。

<上部:日あたりの使用量>

<下部:日毎の内訳(Token数)>

利用料はToken数を元に算出されます。Tokenは「Prompt(問い合わせの単語数)」+「completion(回答の単語数)」から算出されます。あくまで単語数なので文字数とは異なります。この辺りの数え方は公式マニュアルを参照してください。

platform.openai.com

このTokenを下に、提示された料金は次のとおりです。

おおよそ、4,000Token≒1円(1$=130円計算)となります。

無料利用枠

前述の、上部の写真にあるとおり、無料利用枠として$18.00が付与されているため、9,000,000Tokenまではタダで使える計算になりますね。

まとめ

今回は、3月1日に公開されたChatGPTとWhisperのAPIを実行する方法をまとめてみました。このほかにも、Python言語でopenaiライブラリを使って呼びかけることなど、活用方法はいろいろあります。

次回は、このAPIインターフェイスをLINEから呼び出すことで、LINEとの連携を進めてみたいと思います。