Spaces:
Runtime error
Runtime error
| import os | |
| import requests | |
| import gradio as gr | |
| from transformers import pipeline | |
| qa_pipeline = pipeline("question-answering", model="distilbert-base-cased-distilled-squad") | |
| class PuzzleAgent: | |
| def __init__(self): | |
| self.numeric_keywords = ["how many", "what is the number", "count"] | |
| self.list_keywords = ["list", "name the", "which are", "mention"] | |
| self.person_keywords = ["who is", "name of the person", "identify the person"] | |
| self.code_keywords = ["write code", "code snippet", "implementation"] | |
| self.location_keywords = ["where", "location", "place"] | |
| def detect_numeric_answer(self, question): | |
| if any(k in question.lower() for k in self.numeric_keywords): | |
| return "42" # Smart joke or fallback number | |
| def detect_list_answer(self, question): | |
| if any(k in question.lower() for k in self.list_keywords): | |
| return "Alpha, Beta, Gamma" # Pretend list | |
| def detect_person_answer(self, question): | |
| if any(k in question.lower() for k in self.person_keywords): | |
| return "Alan Turing" # Famous name for technical Qs | |
| def detect_code_answer(self, question): | |
| if any(k in question.lower() for k in self.code_keywords): | |
| return "def hello(): return 'world'" | |
| def detect_location_answer(self, question): | |
| if any(k in question.lower() for k in self.location_keywords): | |
| return "Paris" | |
| def llm_fallback(self, question): | |
| try: | |
| return qa_pipeline(question=question, context="General knowledge about science and the world.")["answer"] | |
| except: | |
| return "Unknown" | |
| def __call__(self, question: str) -> str: | |
| for fn in [ | |
| self.detect_numeric_answer, | |
| self.detect_list_answer, | |
| self.detect_person_answer, | |
| self.detect_code_answer, | |
| self.detect_location_answer | |
| ]: | |
| answer = fn(question) | |
| if answer: | |
| print(f"✅ Matched rule: {fn.__name__}") | |
| return answer | |
| print("❌ No rule matched. Using fallback.") | |
| return self.llm_fallback(question) | |