Spaces:
Sleeping
Sleeping
| import json | |
| import logging | |
| from pathlib import Path | |
| logger = logging.getLogger(__name__) | |
| _FAQ_FILE = Path(__file__).parent.parent / "knowledge" / "faq.json" | |
| def faq_lookup(query: str) -> dict | None: | |
| """ | |
| Search for a question in the local FAQ knowledge base. | |
| Uses simple keyword matching for speed. | |
| """ | |
| try: | |
| if not _FAQ_FILE.exists(): | |
| return None | |
| with open(_FAQ_FILE, "r") as f: | |
| data = json.load(f) | |
| query_lower = query.lower() | |
| # Simple keyword matching | |
| for item in data.get("faq", []): | |
| for q in item["questions"]: | |
| if query_lower in q.lower() or any(word in q.lower() for word in query_lower.split() if len(word) > 4): | |
| logger.info(f"[Tool:faq_lookup] Match found for: '{query}'") | |
| return { | |
| "answer": item["answer"], | |
| "category": item["category"], | |
| "source": "local_faq_cache" | |
| } | |
| return None | |
| except Exception as e: | |
| logger.error(f"[Tool:faq_lookup] Error: {e}") | |
| return None | |