Spaces:
Runtime error
Runtime error
import gradio as gr | |
from transformers import pipeline | |
task = "text-generation" # Specify the task as text generation | |
model = "tiiuae/falcon-7b-instruct" # Use a specific model (option 1) or | |
# model = "tiiuae/falcon-40b-instruct" # Use another specific model (option 2) | |
get_completion = pipeline(task=task, model=model, trust_remote_code=True) # Create a text generation pipeline | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
# Define a function to format the chat history and create a prompt for the chatbot | |
def format_chat_prompt(message, chat_history): | |
prompt = "" | |
for turn in chat_history: | |
user_message, bot_message = turn | |
prompt = f"{prompt}\nUser: {user_message}\nAssistant: {bot_message}" | |
prompt = f"{prompt}\nUser: {message}\nAssistant:" | |
return prompt | |
# Define a function to respond to the user's message | |
def respond(message, chat_history): | |
formatted_prompt = format_chat_prompt(message, chat_history) | |
# Generate a response using the specified model, given the formatted prompt | |
bot_message = get_completion(formatted_prompt, | |
max_new_tokens=1024, | |
# stop_sequences=["\nUser:", "<|endoftext|>"], | |
stop_sequences=["\nUser:", ""]).generated_text | |
chat_history.append((message, bot_message)) # Add the user and bot messages to the chat history | |
return "", chat_history | |
# Create a Gradio interface with UI components | |
with gr.Blocks() as demo: | |
chatbot = gr.Chatbot(height=240) # Create a chatbot UI component | |
msg = gr.Textbox(label="Prompt") # Create a textbox UI component for user input | |
btn = gr.Button("Submit") # Create a submit button UI component | |
# Create a clear button UI component that clears the console | |
clear = gr.ClearButton(components=[msg, chatbot], value="Clear console") | |
# Define the behavior of the submit button when clicked | |
btn.click(respond, inputs=[msg, chatbot], outputs=[msg, chatbot]) | |
# Define the behavior of the enter key in the textbox (submit action) | |
msg.submit(respond, inputs=[msg, chatbot], outputs=[msg, chatbot]) | |
# Launch the Gradio interface | |
demo.launch() | |