Spaces:
Sleeping
Sleeping
import gradio as gr | |
import random | |
import time | |
# Dummy knowledge base | |
FAQ = { | |
"hello": ["Hi there!", "Hello! How can I help you?"], | |
"bye": ["Goodbye π", "See you soon!"], | |
"help": ["Ask me anything about our products.", "Try typing 'pricing' or 'features'."], | |
"pricing": ["Our plans start at $9/month.", "Check the website for the latest pricing."], | |
"features": ["We support file uploads, integrations, and real-time sync.", "Explore the docs for the full list."], | |
} | |
def respond(message: str, history: list[tuple[str, str]]): | |
"""Return a response based on simple keyword matching.""" | |
message = message.strip().lower() | |
response = None | |
# Simple keyword lookup | |
for key in FAQ: | |
if key in message: | |
response = random.choice(FAQ[key]) | |
break | |
# Fallback | |
response = response or "I'm not sure how to answer that. Could you rephrase?" | |
# Simulate typing delay | |
time.sleep(random.uniform(0.3, 1.2)) | |
return response | |
# Build and launch the interface | |
demo = gr.ChatInterface( | |
fn=respond, | |
title="Simple FAQ Bot", | |
description="Ask me about pricing, features, or just say hello!", | |
theme="soft", | |
examples=["hello", "pricing", "features"], | |
) | |
if __name__ == "__main__": | |
demo.launch() |