トップページ > おもしろ科学実験室(工学のふしぎな世界) > ChatGPTと実際に対話する

おもしろ科学実験室(工学のふしぎな世界)

ChatGPTと実際に対話する

2025年2月13日
豊橋技術科学大学
情報・知能工学系 北岡教英

はじめに

 ChatGPTって、聞いたことがあると思います。使ったこともある人もいるのでは?いま話題の「生成AI」と言われるものの一つですね。何か質問とかすると、答えてくれて、詳しく説明もしてくれたりする。専門用語では「大規模言語モデル」と呼ばれます。

 そして、みなさんもご存じの「音声認識」と「音声合成」。スマートフォンに声で入力すると文字に直してくれる、そして声で答えてくれる、あれです。

 音声認識とChatGPTと音声合成、これがあれば、人間と声で対話できる計算機ソフトができます。これを「音声対話システム」といいます。これを作ってみましょう。

まずはChatGPTを使ってみる

準備

 ChatGPTはWindowsのPC上で使うことができます。Webブラウザから「ChatGPT」と検索したら、使える画面が出てきますので、やってみましょう。

 本体験では、自分のプログラムからChatGPTを使えるようにします。そのためにはWindows PC上で、事前の準備が要ります。そのためには、PythonとOpenAI API(音声対話をするには、さらにGoogle社のGoogle Speech APIとCloud Text-to-Speech API)のインストールや設定が必要です。ここに記載の手順(ここに、さらに詳しい「手順書」もあります)に従って、やっておいてください。APIとは「アプリケーション・プログラミング・インターフェース(Application Programming Interface)」の略で、プログラムの中で呼び出すことで、実際にはインターネット上のどこかにあるプログラム(サーバと呼びます)を呼び出して実行して結果を受け取ったりすることのできる窓口のようなものです。今回は、Pythonのプログラムの中でこの呼び出しを行っています。

 そのPythonのプログラムソースコードを編集(Edit)します。そのために「コードエディタ」を使います。ここではVisual Studio CodeというMicrosoftのコードエディタを使っています。また、PCのシステムやファイル、プログラムを操作するために、コマンドプロンプトというものを使います。Windowsのスタートボタンから実行することができます。

 タスクバーの「検索」から「cmd」と入力することで開くこともできます。

 実際のプログラムは、ここから入手できます。この中の「SUMMER-TECH-CAMP」というフォルダを、デスクトップに置いておきましょう。

動かしてみよう

 では、「SUMMER-TECH-CAMP」の中の「src」フォルダを開き、「main.py」というPythonプログラムを実行します。コマンドプロンプトで、以下のように順番に入力しましょう。


        > cd Desktop
        > cd SUMMER-TECH-CAMP2024
        > cd src
        > python main.py
    

するとこんな画面が出ます。

 何か文を入れて、送信(Enterを押す)してみましょう。返事が返ってきますね?自分の番で「exit」と入れると終わります。

プロンプトエンジニアリングってなに?

 プロンプトとは、ChatGPTが応答を生成するための命令文です。といっても、先ほど使ってみた時に入力したもの、それがプロンプトです。すなわち、ChatGPTが入力として受け取って、応答を生成するための文章です。

 実は、ChatGPTに送信できるプロンプトこうした質問のような文だけでなく、命令や指示を一緒に送信することで、ChatGPTの返答をコントロールすることができます。このように、できるだけ望ましい応答をさせるように、プロンプトをうまく作ってあげることを「プロンプトエンジニアリング」と呼びます。

 では、やってみましょう「SUMMER-TECH-CAMP」フォルダの中にある「conversation.json」というファイルを、コードエディタで開いてみましょう。

 実は、みなさんが動かしていたプログラムmain.pyでは、“文字制限は20文字以内。あなたは役に立つアシスタントです。”の部分が、送信する文と一緒に送られています。ChatGPTは、まずこの指示をみて、これに従って、みなさんが送った文に対する応答を作っていました。なので、ここを編集してあげれば、応答が変わってきます。たとえば、”あなたは関西弁でしゃべるアシスタントです。”と書いて、main.pyを動かしてみましょう。どうなりましたか?

 ここを工夫すると、自分の好みにChatGPTをカスタマイズできます。「めっちゃ魚に詳しいAI」「理工系大学生みたいなAI」なんていうのを、作ってみてはどうでしょうか?

音声で対話してみよう

 さあ、いよいよ音声で対話できるようにしてみましょう。先に書いたように、音声認識にはGoogle Cloud Speech-to-Text、音声合成にはGoogle Cloud Text-to-Speechを用います。

今度も、main.pyを編集します。コマンドプロンプトで、


        > cd Desktop
        > cd SUMMER-TECH-CAMP2024
        > cd src
        > python main.py --use-gui
    

と入力してみてください。

 こんな画面が出てきます。

 いろんなボタンが出てきますね。これは、下の図のような意味があります。

実際に音声で対話すると、この図のように、対話内容が記録されていくのが分かります。

 さて、いまconversation.jsonのcontextは”文字制限は20文字以内。あなたは役に立つアシスタントです。”になっています。このシステムを起動して、ジョージ君に対話させてあげてください。ジョージ君はいま、恋人に振られて落ち込んでいます。励ましてもらいたいんです。

うーん、なんとなく慰めてくれているような…。でももっと一生懸命励ましてくれないものでしょうか?

 そこで、contextに、こんな風に書いてみましょう。プロンプトエンジニアリングですね。

どうなりましたか?

すごく頑張って、励ましてくれるようになりました。ちょっとしたコツがあります。

  1. できるだけ具体的に!
  2. 回答の形式を説明してあげよう
  3. やってはいけないよりやってほしいを記述しよう
  4. 背景や性格を定義してあげよう

こんなところに注意しながら、自分が「こんなAIと話したい!」と思うAIにして、対話システムを作ってみましょう。

おわりに

 いかがでしたか?

 このシステムには、ChatGPTのプロンプト以外にも、さらにいろいろなカスタマイズ機能があります。名前(AI・ユーザ)の変更、アイコンの変更、出力音声の変更、背景画像の変更、などが画面から行えます。これらも駆使して、自分好みの対話システムを作ってみてください。

 本実験システムは、2024年のオープンキャンパスでも公開し、多くの方に体験してもらいました。2025年のミニオープンキャンパス(3月15日(土))、オープンキャンパス(8月23日(土))でも公開予定です。

  • ※このページに含まれる情報は、掲載時点のものになります。

豊橋技術科学大学

  • 機械工学
  • 電気・電子情報工学
  • 情報・知能工学
  • 応用化学・生命工学
  • 建築・都市システム学

学校記事一覧

おもしろ科学実験室(工学のふしぎな世界)
バックナンバー

このサイトは、国立大学56工学系学部長会議が運営しています。
(>>会員用ページ)
私たちが考える未来/地球を救う科学技術の定義 現在、環境問題や枯渇資源問題など、さまざまな問題に直面しています。
これまでもわたしたちの生活を身近に支えてきた”工学” が、これから直面する問題を解決するために重要な役割を担っていると考えます。