Python初心者が爆速でチャットを作る方法

AI
スポンサーリンク

Pythonでチャットボットを作成する前提

今後のプログラミングは、ChatGPTなどのAIをアシスタントにして作業するのがスタンダードになると思います。わからないことがあればChatGPTなどに聞けば良いのですから。
検索するよりずっと早いです。ということで、今回はChatGPTに聴きながら数分でPythonのチャットボットを作成します。

PythonをかじったことがあるならGoogleのColabは使えると思います。
知らないという人はAIに聞いてね。
今回はColabで作成していきます。

チャットボットの作成方法

チャットボットの概要

  • とにかく爆速で作りたい
  • 自分しか使わないので、Colabで作成
  • GPT3のapiを使う
  • もちろんデザインなどどうでも良い
  • 入力ボックスに入力したら返答がある

GPT3のapi取得方法

OpenAIにログインします。最近ホームページが変わってどこからログインしたら良いのかわかりにくいです。
ナビゲーションの「Product」から「overview」を選んで、Get started です。
わかりやすいのは、Google検索で「OpenAi ログイン」と入れたら良いです。
ログインできたら、ページの右上にある「Personal」をクリックします。

次に「View API keys」をクリックします。

出てきたページの「Create new secret key」でシークレットキーを作成

このAPIを使用するには有料ですが、最初は無料で18ドル分だけ使えます。それ以降は別途有料会員になれば使える仕組みです。
どれくらい使ったかは左のメニューの「Usage」で確認できます。

チャットボットコード

チャットボットのPythonコードはChatGPTに聞くと教えてくれます。
皆さんも自分で聞いてみると多少違うコードを案内するかもしれません。

pip install openai
import openai

openai.api_key = "シークレットキー"

def generate_response(prompt):
    response = openai.Completion.create(
        engine="text-davinci-002",
        prompt=prompt,
        max_tokens=1024,
        n=1,
        stop=None,
        temperature=0.5,
    )

    message = response.choices[0].text.strip()
    return message
while True:
    user_input = input("You: ")
    response = generate_response(user_input)
    print("Bot: " + response)

openai.Completion.create()のパラメータの使い方

  • engine (必須): 使用するGPT-3のエンジンを指定する文字列。例えば、 text-davinci-002 など。
  • prompt (必須): GPT-3が応答を生成するために使用する入力テキストを指定する文字列。
  • temperature (オプション): 高い値に設定すると、GPT-3がより創造的な応答を生成する可能性があります。低い値に設定すると、より予測可能な応答が生成されます。範囲は0から1の間で、デフォルトは0.5です。
  • max_tokens (オプション): 生成されるテキストの最大トークン数を指定します。1つの単語が1つのトークンとして数えられます。デフォルトは2048です。
  • n (オプション): GPT-3によって生成される応答の数を指定します。デフォルトは1です。
  • stop (オプション): 生成される応答を停止するための文字列を指定します。例えば、 stop=[‘\n’, ‘.’, ‘?’] とすると、改行、ピリオド、または疑問符が出現した場合に応答が停止されます。
  • presence_penalty (オプション): プレゼンスペナルティは、生成されたテキストに指定されたトークンが存在する場合にペナルティを与えます。値が高いほど、指定されたトークンに近い応答が生成されにくくなります。デフォルトは0です。
  • frequency_penalty (オプション): フリークエンシーペナルティは、生成されたテキストに頻繁に出現するトークンにペナルティを与えます。値が高いほど、頻繁に出現するトークンに近い応答が生成されにくくなります。デフォルトは0です。

日本語にも対応していますが、Pythonのinput()は入力がしづらいのが難点です。
また、回答のレベルはChatGPTの方が数段上に思えます。
素直にChatGPTを使っておけば良いのですが、色々試してみたい人は参考にして下さい。

タイトルとURLをコピーしました