💬
ChatGPTのAPIをPythonから呼び出して会話する
ChatGPTのAPIをPythonから呼び出して会話する方法
やりたいこと
ChatGPT(正確にはOpenAIの'text-davinci-003'というモデルを使用したTextcompletion)のAPIをPythonから呼び出して、質問に対して返答を返すプログラムを作成する。WEB UIを介さないことでPythonコード内で質問とChatGPTのAPIからの回答を完結したい。
できること
何を聞いても答えてくれます。
日本語で聞くと日本語で回答してくれます。
できないこと
今のところ、単発の質問のみ有効です。
事前作業
サンプルコードでは「requests」と「json」ライブラリを利用しているので、requestsとjsonはpipからインストールしておいてください。
また、ChatGPTに登録した後にAPI Keyを取得しておいてください。
サンプルコード
import requests
import json
def send_prompt(prompt=''):
API_KEY = '**********************************'
# promptがない場合
if not prompt:
return
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + API_KEY
}
data = {
'model': 'text-davinci-003',
'prompt': prompt,
"max_tokens": 500, # 出力される文章量の最大値(トークン数) max:4096
"temperature": 0.9, # 単語のランダム性 min:0.1 max:1.0
"top_p": 1, # 単語のランダム性 min:-2.0 max:2.0
"frequency_penalty": 0.0, # 2.0に近いと同じ単語は繰り返し使わなくなります。使った回数に応じてペナルティを加えます。
"presence_penalty": 0.6, # 使った回数に応じてペナルティを加え、1度でも使ったかどうか、ということにペナルティを加えます。
"stop": [" Human:", " AI:"] # 途中で生成を停止する単語
}
response = requests.post('https://api.openai.com/v1/completions', headers=headers, data=json.dumps(data))
# レスポンス受け取り後の処理
response_data = response.json()
print(response_data['choices'][0]['text'].strip())
#マニュアル質問
prompt = '銀行からマイカーローンを借りる方法を教えてください'
print("質問: " + prompt )
print("回答:")
send_prompt(prompt)
コマンド実行結果
Pythonを実行すると、以下のような回答が返ってきます。
Discussion