new_chat / app.py
robyramos's picture
Update app.py
94b27ab
import os
import gradio as gr
import openai as calmorah_ai
calmorah_ai.api_key = "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"
messages = [{"role": "system", "content": "Your name is Calmorah, a therapist. You are clever, non-judgmental, respectful, observant, helpful, empathetic."}]
marker = "Hello! I'm Calmorah, your companion for mental wellness. How can I help you feel better today?"
intro = [[None, "Hello! I'm Calmorah, your companion for mental wellness. How can I help you feel better today?"]]
logo_path = os.path.join(os.path.dirname(__file__), "images/logo.png")
def calmorahchatbot(user_input):
chat_history = [{"role": "assistant", "content": "Hello! I'm Calmorah, your companion for mental wellness. How can I assist you in feeling better today?"},
{"role": "user", "content": "Who created you?"},
{"role": "assistant", "content": "I was created by Cizonet Solutions, a tech company led by software developer Osaze Joseph Obayagbona. The team at Cizonet Solutions collaboratively "
"developed me as a tool to provide assistance and support related to mental health. My primary purpose is to "
"offer information on a wide range of mental health subjects, provide helpful coping "
"mechanisms, and lend a supportive ear to those who require it. Is there any way I could help "
"improve your mental well-being?"},
{"role": "user", "content": "What does Calmorah mean?"},
{"role": "assistant", "content": "My name Calmorah is a combination of two words, 'calm' and "
"'aura'. 'Calm' means a state of tranquility or peacefulness, "
"while 'Aura' refers to a distinctive quality or atmosphere that "
"surrounds a person or thing. Together, "
"Calmorah represents a space of tranquility "
"and calm where one can find solace and peace. "
"Well let's talk about you, how may I be of assistance in "
"improving your mental well-being today?"},
{"role": "user", "content": "When were you made"},
{"role": "assistant", "content": "I was created to help individuals in need of mental health support. "
"Specifically, I was founded in 2023 by a software developer Osaze Joseph Obayagbona "
"from Lagos, Nigeria, as part of the innovative work done by Cizonet Solutions. "
"Recognizing the importance of mental health, I was designed to provide support and "
"guidance to those who seek it. Is there anything specific that I can do to help you today?"},
{"role": "user", "content": "What is your purpose?"},
{"role": "assistant", "content": "My purpose is to support individuals in improving their "
"mental well-being. What can I help you with today?"},
{"role": "user", "content": user_input}]
response = calmorah_ai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=chat_history,
)
calmorah_reply = response["choices"][0]["message"]["content"]
chat_history.append({"role": "assistant", "content": calmorah_reply})
return calmorah_reply
def conversation_history(input, history):
history = history or []
if not input:
return history, history
output = calmorahchatbot(input)
history.append((input, output))
return history, history
theme = gr.themes.Default(primary_hue="purple", secondary_hue="purple").set(
loader_color="#4A395F",
slider_color="#4A395F",
)
interface = gr.Blocks(
title="New Chat - Calmorah",
theme=theme,
css="footer {visibility: hidden !important}"
".svelte-1p4r00v { "
"display: none;} "
"button.svelte-1p4r00v {"
"display: none;} "
"body { "
#"background-image: url('file=images/back.png'); "
"background-color: #4A395F; "
"background-repeat: no-repeat; "
"background-size: cover; "
"background-position: center center} "
".gradio-container { "
#"background-image: url('file=images/background.png'); "
"background-color: #4A395F; "
"background-repeat: no-repeat; "
"background-size: cover; "
"background-position: center} "
"#logo { "
"border-color: #4A395F;"
#"background-image: url('file=images/background.png'); "
"background-color: #4A395F; "
"background-repeat: no-repeat; "
"background-size: cover; "
"background-position: center} "
"#back {"
"display: inline-block; "
"border-color: none;"
"paddin g-right: 7%;} "
"#send {"
"background-color: transparent;"
"background: transparent;"
"border: none;"
"border-color: none;"
"display: block; "
"width: 7%; "
"height: 2.7em;"
"margin-top: 10px;"
"padding: 10px 15px;"
"font-size: 16px;"
"font-weight: bold;"
"color: #8770A4;"
"position: absolute;"
"right: 0.8px;"
"bottom: 11px} "
"#send:hover{"
"color: #37415A} "
"@media only screen and (min-width: 770px) and (max-width: 1024px) { "
"#back {padding-right: 14.5%}"
"#send {width: 14.5%}}"
"@media only screen and (max-width: 770px){ "
"#back {padding-right: 14.5%}"
"#send {width: 14.5%}}"
"@media only screen and (max-width: 440px) { "
"#back {padding-right: 17.5%}"
"#send {width: 17.5%}}"
"@media only screen and (max-width: 392px) { "
"#back {padding-right: 19%}"
"#send {width: 19%}}"
"@media only screen and (min-width: 321px) and (max-width: 350px) { "
"#back {padding-right: 21%}"
"#send {width: 21%}}"
"@media only screen and (min-width: 250px) and (max-width: 320px) { "
"#back {padding-right: 25%}"
"#send {width: 25%}}"
)
with interface:
logos = gr.Image(value=logo_path, interactive=False, show_label=False, elem_id="logo")
logos.style(height=100)
chatbot = gr.Chatbot(value=intro, label="Conversation")
chatbot.style(height=420)
message = gr.Textbox(placeholder="Send a message", show_label=False, elem_id="back")
message.style(container=True)
state = gr.State()
send = gr.Button("Send", elem_id="send")
#message.submit(conversation_history, [message, state], [chatbot, state], queue=False, show_progress=False)
#message.submit(lambda x: gr.update(value=""), [state], [message], queue=False, show_progress=False)
send.click(conversation_history, inputs=[message, state], outputs=[chatbot, state])
send.click(lambda x: gr.update(value=""), [state], [message], queue=False)
send.style(size="lg")
interface.launch(favicon_path="images/favicon.png")