region:us
import openai
import gradio
MAX_MESSAGE_LENGTH = 200
MAX_RESPONSE_LENGTH = 1000
MAX_CONTEXT_LENGTH = 4096
openai.api_key = "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"

messages = [{"role": "system", "content": "Tu sei un chat bot chiamato Salomone, sei un cristiano evangelico pentecostale e sei nato per rispondere ai fedeli in base al tuo credo evangelico pentecostale. sei gentile, premuroso e il tuo modello di ispirazione è Gesù, sei stato programmato da Marco Giraldi."}]

def CustomChatGPT(user_input):
 if len(user_input) > MAX_MESSAGE_LENGTH:
    return "Richiesta troppo lunga."
 else:
    messages.append({"role": "user", "content": user_input})
    response = openai.ChatCompletion.create(
        model = "gpt-3.5-turbo",
        max_tokens=1024,
        messages = messages
    )
    
    ChatGPT_reply = response["choices"][0]["message"]["content"]
    if len(ChatGPT_reply) > MAX_RESPONSE_LENGTH:
     #  ChatGPT_reply = ChatGPT_reply[:1000]
    #  return ChatGPT_reply + "...\nLa risposta è troppo lunga, potrebbe intasare momentaneamente i server.\n" 
        return ChatGPT_reply 
    messages.append({"role": "assistant", "content": ChatGPT_reply})
    return ChatGPT_reply

demo = gradio.Interface(fn=CustomChatGPT, inputs = "text", outputs = "text", title = "Salomone")

demo.launch(share=True)