skip to content
snuow's brain

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

コマンドプロンプト上でChatGPTを簡単に動くようにしてみました。

概要

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

Youtube

ソースコード

main.py
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))