Spaces:
Runtime error
Runtime error
```python | |
import gradio as gr | |
import random | |
import time | |
def chatbot(message, history, system_prompt): | |
# Simple response generation based on the system prompt and user message | |
if not system_prompt: | |
system_prompt = "I am a helpful AI assistant." | |
# Simulate typing with a stream | |
for i in range(1, 11): | |
thinking_time = random.uniform(0.1, 0.3) | |
time.sleep(thinking_time) | |
# Generate response gradually based on system prompt | |
if "friendly" in system_prompt.lower(): | |
response_parts = [ | |
"Hi there! ", | |
"I'd be happy to help you with that. ", | |
f"You asked about '{message}'. ", | |
"Based on what I know, I think I can provide some guidance on this topic." | |
] | |
elif "expert" in system_prompt.lower(): | |
response_parts = [ | |
"Based on my expertise, ", | |
f"regarding '{message}', ", | |
"I can provide you with a detailed analysis. ", | |
"Here's what you should know about this subject from a professional perspective." | |
] | |
elif "funny" in system_prompt.lower(): | |
response_parts = [ | |
"Well, well, well! ", | |
f"So you want to know about '{message}'? ", | |
"That's quite an interesting question! ", | |
"Let me share my thoughts with a touch of humor." | |
] | |
else: | |
response_parts = [ | |
"Thank you for your question. ", | |
f"Regarding '{message}', ", | |
"I can provide the following information: ", | |
"Please let me know if you need any clarification or have follow-up questions." | |
] | |
partial_response = "".join(response_parts[:int(i * len(response_parts) / 10)]) | |
yield partial_response | |
with gr.Blocks(theme=gr.themes.Soft()) as demo: | |
gr.Markdown("# 🤖 Custom AI Chatbot") | |
gr.Markdown("Configure your chatbot's personality and knowledge using the system prompt.") | |
with gr.Row(): | |
with gr.Column(scale=2): | |
chatbot = gr.ChatInterface( | |
fn=chatbot, | |
additional_inputs=[ | |
gr.Textbox( | |
placeholder="Enter system prompt here...", | |
label="System Prompt", | |
info="Define your chatbot's personality, knowledge, and style", | |
lines=5 | |
) | |
], | |
examples=[ | |
["What's the weather like today?"], | |
["Can you tell me about quantum physics?"], | |
["Write a short poem about nature."] | |
], | |
title="Chat with Your Custom AI", | |
) | |
with gr.Column(scale=1): | |
gr.Markdown("## System Prompt Examples") | |
system_prompt_examples = gr.Examples( | |
examples=[ | |
"You are a friendly assistant who speaks casually and uses simple language.", | |
"You are an expert in technology with deep knowledge of AI, machine learning, and computer science.", | |
"You are a funny comedian who responds with humor and wit.", | |
"You are a professional business consultant providing concise, valuable advice.", | |
"You are a supportive tutor who explains complex concepts in simple terms." | |
], | |
inputs=chatbot.additional_inputs[0], | |
label="Click on an example to use it" | |
) | |
gr.Markdown(""" | |
### Tips for System Prompts: | |
- Define personality traits | |
- Specify knowledge domains | |
- Set the tone and speaking style | |
- Include specific instructions | |
- Add any constraints or limitations | |
""") |