編集履歴一覧に戻る
taketea2018のアイコン画像

taketea2018 が 2026年06月27日16時10分14秒 に編集

初版

タイトルの変更

+

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

タグの変更

+

データサイエンス

+

OpenAI

+

ChatGPT

記事種類の変更

+

製作品

本文の変更

+

# データサイエンス入門   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にてまとめています。