Spaces:
Runtime error
Runtime error
File size: 5,010 Bytes
c6878c7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | # import gradio as gr
# import requests
# theme=gr.themes.Default(primary_hue="cyan", secondary_hue="violet")
# with gr.Blocks(theme=theme) as demo:
# chatbot = gr.Chatbot()
# msg = gr.Textbox(placeholder="Say Hi! to wake me up", show_label=False)
# clear = gr.ClearButton([msg, chatbot])
# def interact_with_rasa(user_input, chat_history):
# rasa_url = "https://clairify.ai/webhooks/rest/webhook"
# payload = {"sender": "user", "message": user_input}
# response = requests.post(rasa_url, json=payload)
# if response.status_code == 200:
# rasa_response = response.json()
# if rasa_response and len(rasa_response) > 0:
# bot_responses = [msg.get("text", "") for msg in rasa_response]
# chat_history.append((user_input, bot_responses[0]))
# for response in bot_responses[1:]:
# chat_history.append((None, response))
# else:
# bot_responses = ["Error: Empty response from Rasa server."]
# else:
# bot_responses = ["Error: Unable to connect to Rasa server."]
# return "", chat_history
# msg.submit(interact_with_rasa, [msg, chatbot], [msg, chatbot])
# if __name__ == "__main__":
# demo.launch()
# import gradio as gr
# import asyncio
# from rasa_socketio_client import RasaSocketIOClient
# import logging
# from custom_logging import IMPORTANT_LEVEL_NUM
# # Enable logging for the whole app
# logging.basicConfig(level=IMPORTANT_LEVEL_NUM)
# logger = logging.getLogger(__name__)
# rasa_io_url = "https://clairify.ai/socket.io"
# rasa_client = RasaSocketIOClient(rasa_io_url)
# theme = gr.themes.Default(primary_hue="cyan", secondary_hue="violet")
# async def interact_with_rasa(user_input, chat_history):
# if not rasa_client.sio.connected:
# await rasa_client.connect()
# payload = {"message": user_input}
# rasa_response = await rasa_client.send_message(payload)
# # if rasa_response:
# # bot_utterances = []
# # for key, value in rasa_response.items():
# # bot_utterance = value.get("text", "") # Accessing the "text" key of each value
# # bot_utterances.append(bot_utterance)
# # if bot_utterances:
# # chat_history.append((user_input, bot_utterances[0]))
# # for utterance in bot_utterances[1:]:
# # chat_history.append((None, utterance))
# # else:
# # chat_history.append((user_input, "Error: Empty response from Rasa server."))
# chat_history.append((user_input, rasa_response["text"]))
# return "", chat_history
# with gr.Blocks(theme=theme) as demo:
# chatbot = gr.Chatbot()
# msg = gr.Textbox(placeholder="Say Hi! to wake me up", show_label=False)
# clear = gr.ClearButton([msg, chatbot])
# msg.submit(interact_with_rasa, inputs=[msg, chatbot], outputs=[msg, chatbot])
# if __name__ == "__main__":
# asyncio.run(demo.launch())
import gradio as gr
import asyncio
from rasa_socketio_client import RasaSocketIOClient
from custom_logging import get_logger
logger = get_logger(__name__)
rasa_io_url = "https://clairify.ai/socket.io"
theme = gr.themes.Default(primary_hue="cyan", secondary_hue="violet")
with gr.Blocks(theme=theme) as demo:
rasa_client = RasaSocketIOClient(rasa_io_url)
async def interact_with_rasa(user_input, chat_history):
logger.important(f"User input received: {user_input}")
if not rasa_client.sio.connected:
logger.important("Rasa client not connected, attempting to connect...")
await rasa_client.connect()
logger.important(f"Sending payload to Rasa: {user_input}")
message_count = 0
async for message in rasa_client.send_message(user_input):
logger.important(f"Processing messages: {message}")
if message_count == 0:
message_count+=1
new_entry = (user_input, message.get('text', ''))
else:
new_entry = (None, message.get('text', ''))
chat_history.append(new_entry)
yield "", chat_history
async def handle_clear_button():
await rasa_client.disconnect()
return "", None
async def handle_submit_button():
await rasa_client.disconnect()
return "", None
chatbot = gr.Chatbot(label="Conversation")
msg = gr.Textbox(placeholder="Say Hi! to wake me up", show_label=False)
clear = gr.Button("Clear")
# submit_button = gr.Button("Submit")
# submit_button=gr.Button(interact_with_rasa, inputs=[msg, chatbot], outputs=[msg, chatbot],value="Submit")
clear.click(handle_clear_button, inputs=[], outputs=[msg, chatbot])
msg.submit(interact_with_rasa, inputs=[msg, chatbot], outputs=[msg, chatbot])
if __name__ == "__main__":
logger.important("Launching Gradio demo...")
asyncio.run(demo.launch())
|