ほぼテク6月17日ChatGPTの活用ガイド!AIをあなたのプロジェクトに取り入れる方法徹底解説?

ほぼテク読者の皆様、いつもありがとうございます!
我妻裕太です。

本日も情報発信いたします。
本日は6月17日、静岡県伊東から原稿執筆しております!

富士山が見えて快晴です!縁起がいい・・・”(-“”-)”
本日もよろしくお願いします。

今回のテーマはやっぱり大好きChatGPTを自分のプロジェクトに組み込むには?をテーマに実際にChatGPTを組み込む手順をご紹介いたします。
何かの参考になれば幸いです(*’▽’)

それではどうぞ↓

念のためChatGPTとは?

ChatGPTは、自社サービスやみなさんのアプリケーションに人間のようなテキスト対話能力を追加するのに役立つ、OpenAIによって開発された強力な自然言語理解AIです。
その機能を最大限に活用するためには、まずはその基本的な使用方法を理解することが必要です!

今回は、そのためのガイドを提供していきますよー。
 ※今回はPythonを想定しておりますので、ご了承ください。 

ChatGPTのセットアップ

まず最初に、ChatGPTのライブラリをインストールするところからスタートします。Pythonとpip(Pythonのパッケージ管理システム)が既にインストールされていることを確認します。
以下のコマンドを使ってOpenAIのPythonクライアントをインストールします。

これでライブラリのインストールが完了します。

pip install openai

APIキーの設定

OpenAIのAPIを使用するためには、APIキーが必要です。
これはOpenAIのウェブサイトで取得できます。

APIキーを取得したら、環境変数として設定することができます。
Unix系のシステムでは以下のコマンドを使用します。

export OPENAI_API_KEY='your-api-key

これで使用する準備ができました!とっても簡単ですね。

ChatGPTを使用したシンプルな対話生成

それではさっそく試してみましょう。
ここではChatGPTを使用してシンプルな対話を生成する基本的な方法について見ていきます。

以下のコードスニペットでは、ユーザーからのプロンプトに対するChatGPTのレスポンスを生成しています。

import openai

openai.api_key = 'your-api-key'
response = openai.ChatCompletion.create(
  model=" gpt-3.5-turbo-0613 ",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
    ]
)
print(response['choices'][0]['message']['content'])

このコードは、まず初めにOpenAIのAPIキーを設定します。
その後、ChatCompletion.createメソッドを使ってChatGPTとの会話を開始します。
メッセージはリスト形式で渡され、それぞれのメッセージは役割("system"、"user"、"assistant")と内容を持つ辞書型です。

ここでちょっと詳細な説明をします。

ChatGPTによる対話モデルでは、メッセージはそれぞれ役割("system"、"user"、"assistant")を持っています。
それぞれの役割は以下のような意味を持ちます。

System
システム役割は対話の開始時に一度だけ使われます。
このメッセージは、アシスタント(ChatGPT)の振る舞いを設定するために使われます。
たとえば、システムメッセージが"You are an assistant that speaks like Shakespeare."であれば、ChatGPTはシェイクスピアのような言葉遣いで応答します。

User
ユーザー役割は、アシスタントに命令を出すか質問をするために使われます。
ユーザーからのメッセージはChatGPTが反応する内容を決定します。

Assistant
アシスタント役割は、ChatGPT自身の発言を表します。
アシスタントのメッセージは一般的にAPIの応答の一部であり、ユーザーからの前のメッセージに基づいています。
ただし、対話を継続するためには、前回のアシスタントのメッセージを次のAPI呼び出しに含めることが推奨されます。

これらの役割を理解することで、ChatGPTとの対話をより効果的に制御できます。

最後に応答から内容を取得して出力します。
ChatGPTからの応答は通常、JSON形式で返されます。

注意点として、model="gpt-3.5-turbo-0613"はGPTの特定のバージョンを指していますが、利用可能なモデルに変更する必要があります。
また、必ず自身のAPIキーを設定してください。

また、プログラムが具体的に何をすべきか、または特定の問題を解決するためにどのようにChatGPTを使用するかについては、あなた自身のプロジェクトの要件に大きく依存します。
より具体的なアドバイスを提供するためには、より具体的な情報が必要となります。

この時点でこんなエラーが出た場合は?

ちなみにここらへんで以下のようなエラーに遭遇する方がいるかもしれません!私は遭遇したので、参考までに記載しておきます!

openai.error.InvalidRequestError: The model `gpt-4.0-turbo` does not exist

エラーメッセージを見ると、指定したモデルが存在しないという問題が発生しているようです。
OpenAIのGPT-4のモデルがリリースされていない、または別の名前でリリースされている可能性があります。

OpenAIのAPIドキュメントを参照するか、以下のコードを使用してOpenAIの利用可能なモデルのリストを取得して確認することができます。

import openai

openai.api_key = 'your-api-key'
print(openai.Model.list())

 このコードは、OpenAIのすべての利用可能なモデルのリストを表示します。
その中から適切なモデルを選択し、それを使用してAPIリクエストを作成します。
GPT-3を使用することもできます。その場合、モデル名はtext-davinci-003などとなります。

さらにもう一つエラーがでました(汗)

openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details. 

エラーメッセージによると、現在のAPI利用量の上限(quota)を超えてしまっているようです。
OpenAI APIは各プランにより、時間あたりまたは月あたりのリクエスト数に制限(rate limit)を設けています。以下のような理由でこのエラーが発生する可能性があります。

  1. APIキーに関連づけられたアカウントが許可されたAPIリクエスト数を超えてしまった。

  2. OpenAIのAPIを同時に使用するための並列リクエストの上限を超えてしまった。

これを解決するためには以下の手順を試してみてください。

  • OpenAIのダッシュボードを確認
    OpenAIのダッシュボードであなたのAPI使用状況を確認してみてください。
    これにより、使用量が上限に達しているかどうか、またはどの程度使用しているかを把握できます。

  • プランのアップグレード
    OpenAI APIの使用量が多い場合、あなたのプランがAPIの使用量をカバーできないかもしれません。
    その場合、プランをアップグレードすることを検討してみてください。

  • リクエストの頻度を減らす
    リクエストの頻度が高すぎる場合は、リクエストの間隔を少し広げてみてください。

  • OpenAIに連絡する
    上記の手段で問題が解決しない場合は、OpenAIのサポートに連絡してみてください。

今回は無料クレジットをすべて使い切ってしまっていたようです。
すぐに自分のクレジットカード情報を追加して復旧しました(*’▽’)

では寄り道しましたが、また戻りたいと思います。

ChatGPTを活用した進行中の対話

ChatGPTは対話を続けるために、過去のメッセージを利用して新しいメッセージを生成することができます。
以下のようなイメージです。

import openai

openai.api_key = 'your-api-key'
response = openai.ChatCompletion.create(
  model=" gpt-3.5-turbo-0613 ",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Tell me a joke."},
    ]
)
# 得られた応答を保存
message_from_chat_gpt = response['choices'][0]['message']['content']

# 保存した応答を新しいメッセージに利用
response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo-0613",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Tell me a joke."},
        {"role": "assistant", "content": message_from_chat_gpt},
        {"role": "user", "content": "That was funny! Tell me another one."},
    ]
)
print(response['choices'][0]['message']['content'])

このコードでは、最初にChatGPTにジョークを教えてもらい、その応答を保存します。
その後、同じ対話を続けるためにその応答を次のメッセージ生成リクエストに渡します。  

ChatGPTの最適化(temperature、max_tokens)

生成されるテキストの性質を調整するためには、temperatureとmax_tokensという2つのパラメータがあります。

temperature
この値は0から1までの数値で、出力のランダム性を制御します。
値が高いほど出力はランダムになり、値が低いほど出力は確定的になります。

max_tokens
この値は出力の長さを制御します。
大きな値を設定すると、より長いテキストが生成されますが、それによってコストが増加する可能性もあります。

これらのパラメータを使って、以下のようにChatGPTの動作を最適化することができます。

response = openai.ChatCompletion.create(
  model=" gpt-3.5-turbo-0613",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Tell me a joke."},
    ],
  temperature=0.6,
  max_tokens=60
)

まとめ

っということでいかがでしたでしょうか。本日はテクニカルな内容が多いテーマでした。
既存のシステムにChatGPTを組み込むことができると今まで以上に新しいことや気づきを与えてくれるシステムになるかもしれません。

まずはやってみる!やってみた先に何かが見える!そんな気がします。
色々なユースケースはありますが、何かの参考になれば幸いです!

今回も最後までお読みいただきありがとうございました。
また次回お会いしましょう。

ありがとうございました!

弊社はChatGPTに関しての開発ノウハウがあるので、ぜひ、お気軽にお問い合わせください。

原稿執筆
株式会社GROWTH JAPAN TECHNOLOGIES  我妻裕太

バックナンバー

ほぼテク6月14日!ChatGPTを活用するために重要な留意事項13選! AIとのスムーズな対話を実現!

ほぼテク6月11日!ChatGPTでSNSマーケティングを攻略しよう!

ほぼテク6月10日!ChatGPTで情報の抽出をマスターしよう!

ほぼテク6月7日!ChatGPTを使って業務効率化! - データ解析とレポート作成の新たな方法?

ほぼテク6月4日!ChatGPTでマスタ情報を活用した間違い探し!

ほぼテク6月3日!ChatGPTで文法・スペルチェック!

ほぼテク5月31日!ChatGPTでファンタジーは創造できるか?

ほぼテク5月28日!ChatGPTで地元仙台市を分析してみました!

ほぼテク5月27日!ChatGPTでWebサイトから重要な情報を取得できるか試してみました!

ほぼテク5月24日!ChatGPTプラグイン実践編!画像生成のためのプロンプト生成プラグイン!

ほぼテク5月21日!ChatGPTプラグイン実践編!食べログプラグイン!

ほぼテク5月20日!とても面白いChatGPTのプラグイン使ってみました!

ほぼテク5月17日!GPTとの冒険!ファインチューニングで試行錯誤、そして成功へ!

ほぼテク5月14日!ChatGPT Webブラウジング機能がリリースされました!

ほぼテク5月13日!ChatGPTを活用した創作活動の一例!物語のプロットを創ってみた。

ほぼテク5月12日!Bard – Googleの新しい会話型AIが世界デビュー!

ほぼテク5月10日!今、私たちは新たなフロンティア、つまり宇宙へと視野を広げています!

ほぼテク5月7日!Chat GPTの正しい使い方基本プロンプトで会話してみました④

ほぼテク5月6日!Chat GPTの正しい使い方基本プロンプトで会話してみました

ほぼテク5月5日!Chat GPTの正しい使い方基本プロンプトで会話してみました②

ほぼテク5月4日!Chat GPTの正しい使い方基本プロンプトで会話してみました①

ほぼテク5月3日ImageCreatorで生成した画像で展示会?

今更聞ける!ほぼ毎日テック日報(おとなの週末) 4月30日(マイクロソフト画像生成AI「Bing Image Crator」とは?) – テクノロジーが日常にもたらすイノベーション?

今更聞ける!ほぼ毎日テック日報(おとなの週末) 4月29日(完全自動実行AI AutoGPTとは?) – テクノロジーが日常にもたらすイノベーション?

新企画!?「今更聞ける!ほぼ毎日テック日報 - テクノロジーが日常にもたらすイノベーション?」

前へ
前へ

ほぼテク6月18日最新情報アップデート!AIとの会話で進化する車の運用― メルセデス・ベンツのChatGPTの試験搭載について

次へ
次へ

ほぼテク6月14日!ChatGPTを活用するために重要な留意事項13選! AIとのスムーズな対話を実現!