Spaces:
Runtime error
Runtime error
import gradio as gr | |
import os | |
from multimodal_ai import MultimodalAI | |
examples = [ | |
{"text": "What is this image?", "files": ["sample/ducky.jpg"]}, | |
{"text": "Can you summarize and translate this?", "files": ["sample/sermon.mp4"]} | |
] | |
# Function to print the like/dislike data | |
def print_like_dislike(x: gr.LikeData): | |
print(x.index, x.value, x.liked) | |
# Function to add a message to the chat history | |
def add_message(history, message): | |
for x in message["files"]: | |
history.append(((x,), None)) | |
if message["text"] is not None: | |
history.append((message["text"], None)) | |
return history, gr.MultimodalTextbox(value=None, interactive=False), message["text"] | |
# Function to generate the bot's response | |
def bot(history, user_input): | |
response = ai_assistant.generate_response(user_input) | |
if history: | |
history[-1][1] = response | |
return history | |
def main(): | |
# Define the Gradio interface using Blocks | |
with gr.Blocks(fill_height=True) as webApp: | |
chatbot = gr.Chatbot( | |
elem_id="chatbot", | |
bubble_full_width=False, | |
scale=1, | |
) | |
with gr.Column(scale=8): | |
chat_input = gr.MultimodalTextbox(interactive=True, | |
#file_count="multiple", | |
placeholder="Enter message or upload file...", | |
show_label=False) | |
user_input = gr.State() | |
chat_msg = chat_input.submit(add_message, [chatbot, chat_input], [chatbot, chat_input, user_input]) | |
bot_msg = chat_msg.then(bot, [chatbot, user_input], chatbot, api_name="bot_response") | |
bot_msg.then(lambda: gr.MultimodalTextbox(interactive=True), None, [chat_input]) | |
chatbot.like(print_like_dislike, None, None) | |
with gr.Column(scale=3): | |
# Add examples | |
gr.Examples( | |
examples=examples, | |
inputs=chat_input, | |
label="Click on an example to try it" | |
) | |
# Start the queue and launch the interface | |
webApp.queue() | |
webApp.launch(share=True) | |
if __name__ == "__main__": | |
# Initialize llm | |
ai_assistant = MultimodalAI() | |
main() | |