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")