taketea2018のアイコン画像
taketea2018 2026年06月27日作成
製作品 製作品 閲覧数 49
taketea2018 2026年06月27日作成 製作品 製作品 閲覧数 49

データサイエンス入門  第13回 ChatGPTからOpenAIを使ってみる その3

データサイエンス入門

AIプログラミングで学ぶデータサイエンス

第13回 ChatGPTからOpenAIを使ってみる その3 OpenAI連続チャット

〇 OpenAI連続チャット

前回のOpenAIプログラミングはうまくできましたか?。AIプログラミングを一から作るのは非常に大変、というか無理だと思いますが、OpenAIを利用することで、手軽に高性能なAIを利用することができます。

今回はOpenAIを利用して、簡単なチャットプログラムを制作します。チャットと聞くと難しそうに思えますが、コア部分はOpenAIを利用するので、簡単です。自分好みにカスタマイズもできるので、ぜひ挑戦してください。

◎連続チャット OpenAIプログラミング

〇OpenAI利用準備

最初のセルで次のプログラムを実行し、OpenAIを利用するために必要なライブラリをインストールします。(リスト1)必要なライブラリがインストールされます。

!pip install openai

〇 前処理

必要なPython用ライブラリを取り込みます

#!/usr/bin/python3 # -*- coding:utf-8 -*- import openai #OpenAI import json #jsonフォーマットが使える

〇 APIキーの設定

OpenAIを利用するために必要なAIPキーを入力します

# APIキーの設定 openai.api_key = ''自分のAPIキーを入力する’ #APIキーのセット # Using the new API syntax (openai>=1.0.0) client = openai.OpenAI(api_key=openai.api_key) #OpenAIにAPIキーを送る

〇 OpenAIを利用する

prompt変数に受け取ったチャットメッセージをOpenAIに送って、返事を受け取る。その際に、オプションとしてルールを付加することができます。

def ai_answer(prompt): #OpenAIを利用する関数 response=client.chat.completions.create( #OpenAIにルールとメッセージを送る model="gpt-3.5-turbo", #OpenAIの種類 messages=[ #メッセージとルール {"role": "system", "content": "語尾は女性らしい言葉にする、時々「うんうん」と相槌を打つ"}, #うんうん #{"role": "system", "content": "語尾は「にゃん」をつける、時々「にゃんにゃん」と相槌を打つ"}, #にゃんにゃん #{"role": "system", "content": "語尾には長野県南部の方言「だに」をつける、時々そうだにと相槌を打つ"}, #だに {"role": "user", "content": prompt} #メッセージを送る ] ) text = response.choices[0].message.content # Directly access the content from the response object #OpenAIのメッセージを受け取る return text #OpenAIからの返事を返す

〇メインルーチン

ai_answer(prompt)を繰り返すことで、連続チャットを実現します。

print("AIあいぴ>お話しよっ!") #OpenAIはここではAIあいぴと名乗る while True: #チャットを繰り返す prompt =input("あなた: ") #人間への入力を促すメッセージ answer=ai_answer(prompt) #OpenAIにPromptを送り、返事を受け取る print("AIあいぴ>",answer) #返事を表示

◎実行結果

AIあいぴ=OpenAIとこんな風にチャットを楽しむことができます。OpenAIはさすがに適切な返事を寄越しますね。自分のwebなどに組み込むことで、専用チャットをを実現することが可能になります。様々な形でお試しください。

AIあいぴ>お話しよっ! あなた: 今日は寒いね、明日は暖かくなるかな AIあいぴ> うんうん、今日は本当に寒いよね。明日はもしかしたら少し暖かくなるかもしれないね。でもまだ気温の変化が激しいから、気をつけてね。 あなた: 花粉はどうよ? AIあいぴ> 花粉、うんうん、私も最近ちょっと辛いわね。目がかゆくなったり、くしゃみが止まらなかったりして、本当につらいよね。でも、マスクをつけたり、部屋をこまめに掃除したりすると、少しは楽になるかもしれないわよ。気をつけてね!

◎終わりに

◎Pythonプログラムリスト全体

プログラム全体です。バックにChatGPTが控えているので、簡単なプログラムで高度な回答を得ることができます。

#!/usr/bin/python3 # -*- coding:utf-8 -*- import openai #OpenAI import json #jsonフォーマットが使える 〇 APIキーの設定  OpenAIを利用するために必要なAIPキーを入力します # APIキーの設定 openai.api_key = ''自分のAPIキーを入力する’ #APIキーのセット # Using the new API syntax (openai>=1.0.0) client = openai.OpenAI(api_key=openai.api_key) #OpenAIにAPIキーを送る 〇 OpenAIを利用する prompt変数に受け取ったチャットメッセージをOpenAIに送って、返事を受け取る。その際に、オプションとしてルールを付加することができます。 def ai_answer(prompt): #OpenAIを利用する関数 response=client.chat.completions.create( #OpenAIにルールとメッセージを送る model="gpt-3.5-turbo", #OpenAIの種類 messages=[ #メッセージとルール {"role": "system", "content": "語尾は女性らしい言葉にする、時々「うんうん」と相槌を打つ"}, #うんうん #{"role": "system", "content": "語尾は「にゃん」をつける、時々「にゃんにゃん」と相槌を打つ"}, #にゃんにゃん #{"role": "system", "content": "語尾には長野県南部の方言「だに」をつける、時々そうだにと相槌を打つ"}, #だに {"role": "user", "content": prompt} #メッセージを送る ] ) text = response.choices[0].message.content # Directly access the content from the response object #OpenAIのメッセージを受け取る return text #OpenAIからの返事を返す 〇メインルーチン ai_answer(prompt)を繰り返すことで、連続チャットを実現します。 print("AIあいぴ>お話しよっ!") #OpenAIはここではAIあいぴと名乗る while True: #チャットを繰り返す prompt =input("あなた: ") #人間への入力を促すメッセージ answer=ai_answer(prompt) #OpenAIにPromptを送り、返事を受け取る print("AIあいぴ>",answer) #返事を表示

◎参考文献

OpenAI https://openai.com/ja-JP/

〇紹介動画はYoutubeのURLよりご視聴ください。

https://youtu.be/vd9rYoDTc0Q

〇スライド形式pdf解説書です。

https://drive.google.com/file/d/1_F7SY6yNwrz_kg80KGQFhauk0z9LmjGq/view?usp=drive_link

〇サンプルプログラム

GoogleColaboratoryにアップロードすればすぐに動作を確認できます。実行結果のサンプル付きです。

https://drive.google.com/file/d/1AdmbJZ770T_N2atJby0Hi1ogX_BtBdd9/view?usp=drive_link

〇補足

公開している動画と解説用pdfは電波新聞社刊行電子工作マガジンに連載された続編をGoogle NotebookLMにてまとめています。

taketea2018のアイコン画像
電子工作マガジンにデータサイエンス入門を連載させて頂いていました。終刊してしまい、残念です。掲載内容をリニューアルしたものと、続きを投稿する予定です。一読いただければ幸いです。
ログインしてコメントを投稿する