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を使っておけば良いのですが、色々試してみたい人は参考にして下さい。
コメントを投稿するにはログインしてください。