logo
Published on

ChatGPTのAPIを簡単に使ってみた。

Authors

概要

  • ChatGPT を簡単に使ってみました。
  • ChatGPT の API を使用する方法は動画にまとめています。

動画

ソースコード


import openai
import deepl
import pickle
import datetime
import os

openai.organization = "org-EAsxLPeDr1QvJyQVOYggQmMc" # OPENAIで取得したorganization idを入力してください。
openai.api_key = os.environ["OPENAI_API_KEY"] # OPENAIで取得したAPIKeyを入力してください。


def select_translate():
    dic = {'y': True, 'yes': True, 'n': False, 'no': False}
    while True:
        can_translated = dic.get(input('ENに翻訳して実行するか [Y]es/[N]o? >> ').lower(), -1)
        if type(can_translated) is bool:
            break
        print('Error! Input again.')
    return can_translated


def save_chat(messages,response):
    file_name = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
    chat_file = open(f'./outputs/{file_name}.pickle','wb')
    messages.append(response)
    pickle.dump(messages,chat_file)
    chat_file.close()


def main(input_prompt,can_translate=True):
    if can_translate:
        input_to_chatgpt = deepl.translate(source_language='JA',target_language='EN',text=input_prompt)
    else:
        input_to_chatgpt = input_prompt

    messages = [
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": input_to_chatgpt}
        ]

    res = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=messages,
        max_tokens=100
    )

    # print(input_prompt)
    print(input_to_chatgpt)
    print(res['choices'][0]['message']['content'])
    print(f"{deepl.translate(source_language='EN',target_language='JA',text=res['choices'][0]['message']['content'])}")

    save_chat(messages=messages,response={'response':res})
    print(res)

if __name__ == "__main__":
    user_input = input('ChatGPTに聞きたいことを入力:')
    can_translated = select_translate()
    main(input_prompt=user_input,can_translate=bool(can_translated))