ChatGPTとの連携
サンプルの作成
DLIのDockerはPython3.6なので、一般的なOpenAIのAPIは使用できないので、RESTのやり取りを全部自作する。
Completion APIとのやり取りをするプログラムを作成し、ChatGPTとの連携をおこなう。 https://platform.openai.com/docs/guides/gpt/completions-api
必要なもの - OpenAIのAPIキー
# -*- coding: utf-8 -*-
import readline
import requests
import json
# OpenAI APIキーを設定します(ご自身のキーに置き換えてください)
api_key = "#################################################"
# 使用するモデルの設定を行います
model_engine = "gpt-3.5-turbo"
# GPT-3から応答を生成する関数
def generate_response(prompt, system_roll, model_engine):
# OpenAIのURL
url = "https://api.openai.com/v1/chat/completions"
headers = {'Authorization': 'Bearer {}'.format(api_key)}
data = {
"model": model_engine,
"messages":[
{"role": "system", "content": system_roll},
{"role": "user", "content": prompt}
],
}
response = requests.post(url, headers=headers, json=data)
try:
# 応答からメッセージを取り出す
message = response.json()["choices"][0]["message"]["content"]
return message
except Exception as e:
print("Error: " + str(response) + " Exception: " + str(e))
return None
# メインループ
def main():
while True:
prompt = ""
# ユーザーからの入力を受け取る
user_input = input("> ")
# ユーザーの入力をGPT-3 APIに送信して応答を生成する
prompt += user_input + "\n"
response = generate_response(prompt,"",model_engine)
# ChatGPTの応答を表示する
print(response)
# プログラムのエントリーポイント
if __name__ == "__main__":
main()