データサイエンス入門 第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よりご視聴ください。
〇スライド形式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
さんが
2026/06/27
に
編集
をしました。
(メッセージ: 初版)
ログインしてコメントを投稿する