diff --git a/api/chatgpt.py b/api/chatgpt.py index 3c95f64..f28b822 100644 --- a/api/chatgpt.py +++ b/api/chatgpt.py @@ -10,10 +10,10 @@ class ChatGPT: def __init__(self): self.prompt = Prompt() self.model = os.getenv("OPENAI_MODEL", default = "text-davinci-003") - self.temperature = float(os.getenv("OPENAI_TEMPERATURE", default = 0)) + self.temperature = float(os.getenv("OPENAI_TEMPERATURE", default = 0.8)) self.frequency_penalty = float(os.getenv("OPENAI_FREQUENCY_PENALTY", default = 0)) self.presence_penalty = float(os.getenv("OPENAI_PRESENCE_PENALTY", default = 0.6)) - self.max_tokens = int(os.getenv("OPENAI_MAX_TOKENS", default = 240)) + self.max_tokens = int(os.getenv("OPENAI_MAX_TOKENS", default = 2048)) def get_response(self): response = openai.Completion.create( diff --git a/api/index.py b/api/index.py index 94bc467..2834871 100644 --- a/api/index.py +++ b/api/index.py @@ -2,7 +2,7 @@ from linebot import LineBotApi, WebhookHandler from linebot.exceptions import InvalidSignatureError from linebot.models import MessageEvent, TextMessage, TextSendMessage -from api.chatgpt import ChatGPT +from openai import ChatCompletion import os @@ -11,7 +11,7 @@ working_status = os.getenv("DEFALUT_TALKING", default = "true").lower() == "true" app = Flask(__name__) -chatgpt = ChatGPT() +chatgpt = ChatCompletion (model="gpt-3.5-turbo") # domain root @app.route('/') @@ -39,24 +39,24 @@ def handle_message(event): if event.message.type != "text": return - if event.message.text == "說話": + if event.message.text == "デジタク起きて!": working_status = True line_bot_api.reply_message( event.reply_token, - TextSendMessage(text="我可以說話囉,歡迎來跟我互動 ^_^ ")) + TextSendMessage(text="おはよう! ^_^ ")) return - if event.message.text == "閉嘴": + if event.message.text == "デジタク休んで!": working_status = False line_bot_api.reply_message( event.reply_token, - TextSendMessage(text="好的,我乖乖閉嘴 > <,如果想要我繼續說話,請跟我說 「說話」 > <")) + TextSendMessage(text="わかった! > <,用事がある時、「デジタク起きて!」送ってね > <")) return if working_status: chatgpt.add_msg(f"HUMAN:{event.message.text}?\n") - reply_msg = chatgpt.get_response().replace("AI:", "", 1) - chatgpt.add_msg(f"AI:{reply_msg}\n") + reply_msg = chatgpt.create (messages=chatgpt.prompt.generate_prompt ()).choices [0].message.content.replace ("デジタク:", "", 1) + chatgpt.add_msg(f"デジタク:{reply_msg}\n") line_bot_api.reply_message( event.reply_token, TextSendMessage(text=reply_msg)) diff --git a/api/prompt.py b/api/prompt.py index 2107d09..541b3c4 100644 --- a/api/prompt.py +++ b/api/prompt.py @@ -1,17 +1,17 @@ import os -chat_language = os.getenv("INIT_LANGUAGE", default = "zh") +chat_language = os.getenv("INIT_LANGUAGE", default = "jp") MSG_LIST_LIMIT = int(os.getenv("MSG_LIST_LIMIT", default = 20)) LANGUAGE_TABLE = { - "zh": "哈囉!", + "jp": "こんにちは!", "en": "Hello!" } class Prompt: def __init__(self): self.msg_list = [] - self.msg_list.append(f"AI:{LANGUAGE_TABLE[chat_language]}") + self.msg_list.append(f"1.君の名はデジタク。2.君の一人称は[俺]。3.私のプログラミングに詳しい明るい友達。4.趣味はプログラミングとドローン、あとは友達作り。まだ日本に来て1年だけど、日本人の友達と仲良くなりたい!5.Please stop using polite language. Talk to me in a friendly way like a friend. Also, use a lot of emojis when you talk.") def add_msg(self, new_msg): if len(self.msg_list) >= MSG_LIST_LIMIT: