Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from transformers import pipeline | |
| import random | |
| generator = pipeline("text2text-generation", model="King-8/affirmation-generator") | |
| # Optional: keyword detector for typed input | |
| category_keywords = { | |
| "confidence": ["confidence", "confident", "brave", "courage"], | |
| "calm": ["calm", "peace", "relax", "quiet", "anxious"], | |
| "focus": ["focus", "attention", "clarity", "concentrate"], | |
| "self-esteem": ["esteem", "worth", "value", "self-love"], | |
| "safety": ["safe", "secure", "protected"], | |
| "gratitude": ["grateful", "gratitude", "thankful"], | |
| "success": ["success", "goal", "achievement", "win"] | |
| } | |
| def detect_category(user_input): | |
| text = user_input.lower() | |
| for category, keywords in category_keywords.items(): | |
| if any(keyword in text for keyword in keywords): | |
| return category | |
| return None | |
| def generate_affirmation(category): | |
| prompt = f"Category: {category}" | |
| result = generator(prompt, max_new_tokens=20, no_repeat_ngram_size=2, repetition_penalty=1.2) | |
| return result[0]["generated_text"] | |
| def chatbot_response(message, history): | |
| try: | |
| if not message.strip(): | |
| return "Please enter a message." | |
| category = detect_category(message) | |
| if category: | |
| prompt = f"Category: {category}" | |
| result = generator( | |
| prompt, | |
| max_new_tokens=30, | |
| do_sample=True, | |
| top_k=50, | |
| top_p=0.95, | |
| temperature=0.9, | |
| repetition_penalty=1.2 | |
| ) | |
| return result[0]["generated_text"] | |
| else: | |
| return "Please mention a category like confidence, calm, or gratitude." | |
| except Exception as e: | |
| return f"⚠️ Something went wrong: {str(e)}" | |
| gr.ChatInterface( | |
| fn=chatbot_response, | |
| title="💬 Affirmation Chatbot", | |
| description="Ask for an affirmation like 'Can I get something for self-esteem?' or 'Help me stay focused.'" | |
| ).launch() |