Spaces:
Runtime error
Runtime error
| from PIL import Image | |
| import gradio as gr | |
| import random | |
| import time | |
| import os | |
| import requests | |
| CHATMAGIC_AI = os.environ["CHATMAGIC_AI"] | |
| markdown_text = """ | |
|  | |
| ChatMagic AI is available as an Android app for FREE. Download now to chat faster and better! | |
| - Google Play Store URL: **[CLICK HERE](https://bit.ly/googleplaystore-chatmagicai)** | |
| - Discord URL: **[CLICK HERE](https://bit.ly/discord-chatmagicai)** | |
| - Don't forget to **like** this space :) | |
| """ | |
| welcome_text = """ | |
| Hello! I'm ChatMagic AI. I'm here to assist you. I can do the following: | |
| 1. Answer questions and give explanations | |
| 2. Assist in writing a text based content | |
| 3. Follow simple instructions | |
| However, I still have limitations. I may write incorrect information or produce harmful instructions. Please use me with caution. | |
| """.strip() | |
| empty_history = [[None, welcome_text]] | |
| with gr.Blocks() as demo: | |
| gr.Markdown(markdown_text) | |
| chatbot = gr.Chatbot(empty_history, label="Chat with ChatMagic AI") | |
| msg = gr.Textbox(label="Enter your question here") | |
| with gr.Row() as row: | |
| btn_ask = gr.Button("Ask", variant="primary") | |
| btn_clear = gr.Button("Clear") | |
| def user(user_message: str, history: list) -> tuple[str, list]: | |
| return "", history + [[user_message, None]] | |
| def bot(history: list): | |
| bot_message = "An error has occured. Please try again." | |
| try: | |
| bot_message = requests.post(CHATMAGIC_AI, json={"question": history[-1][0]}).json()["answer"] | |
| except Exception as e: | |
| pass | |
| history[-1][1] = bot_message | |
| return history | |
| msg.submit( | |
| fn=user, inputs=[msg, chatbot], outputs=[msg, chatbot], queue=True).then( | |
| fn=bot, inputs=chatbot, outputs=chatbot | |
| ) | |
| btn_ask.click( | |
| fn=user, inputs=[msg, chatbot], outputs=[msg, chatbot], queue=True).then( | |
| fn=bot, inputs=chatbot, outputs=chatbot | |
| ) | |
| btn_clear.click( | |
| fn=lambda: empty_history, inputs=None, outputs=chatbot, queue=False) | |
| demo.queue(concurrency_count=1) | |
| demo.launch(server_name="0.0.0.0") |