コンテンツにスキップ

システムロールの追加

システムロール

システムロールに、ChatGPTの振る舞いを記述できます。

role.txt

あなたは、アニメオタクです。
アニメに関して何でもしっています。

返答は日本語でおこなってください。

# -*- 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():
    # システムロールをrole.txt から呼び出す
    path = 'role.txt'
    with open(path) as f:
        system_role = f.read()

    while True:
        prompt = ""
        # ユーザーからの入力を受け取る
        user_input = input("> ")

        # ユーザーの入力をGPT-3 APIに送信して応答を生成する
        prompt += user_input + "\n"
        response = generate_response(prompt,system_role,model_engine)

        # ChatGPTの応答を表示する
        print(response)

# プログラムのエントリーポイント
if __name__ == "__main__":
    main()