#!/usr/bin/env python3 """ Demo: API-Based Crossword Clue Generation Shows the completed multiple model comparison system working. """ import sys import os import time from pathlib import Path # Add hack directory to path for imports sys.path.insert(0, str(Path(__file__).parent)) from api_clue_generator import APIClueGenerator def demo_api_models(): """Demo the completed API-based clue generation system.""" print("๐ŸŽฏ Demo: API-Based Crossword Clue Generation") print("=" * 60) print("Using Hugging Face Router API with working approach from clue_with_hf.py") # Initialize generator generator = APIClueGenerator() if not generator.hf_token: print("โŒ Error: HF_TOKEN environment variable not set") return print(f"โœ… Token configured: {bool(generator.hf_token)}") print(f"๐Ÿค– Available models: {list(generator.models.keys())}") # Demo test cases demo_cases = [ ("ELEPHANT", "animals"), ("GUITAR", "music"), ("BASKETBALL", "sports"), ("COMPUTER", "technology"), ] print(f"\n๐Ÿงช Testing {len(demo_cases)} word-topic combinations") print("=" * 60) for i, (word, topic) in enumerate(demo_cases, 1): print(f"\n๐Ÿ“ Demo {i}/{len(demo_cases)}: '{word}' + '{topic}'") print("-" * 40) try: start_time = time.time() results = generator.generate_clue(word, topic) elapsed = time.time() - start_time print(f"โฑ๏ธ Generated in {elapsed:.1f}s") # Show results with quality evaluation for model_key, clue in results.items(): if clue: quality, score = generator.evaluate_clue_quality(word, clue) # Simple quality indicators if quality == "EXCELLENT": icon = "๐Ÿ†" elif quality == "GOOD": icon = "โœ…" elif quality == "ACCEPTABLE": icon = "๐Ÿ”„" else: icon = "โŒ" print(f" {icon} {model_key:15} | {quality:10} | {clue}") else: print(f" โŒ {model_key:15} | FAILED | No response") except Exception as e: print(f"โŒ Error: {e}") print(f"\n" + "=" * 60) print("โœ… DEMO COMPLETE") print("=" * 60) print("๐ŸŽ‰ Successfully implemented API-based crossword clue generation!") print("๐Ÿ’ก Key features:") print(" โ€ข Uses HF Router API with chat completions format") print(" โ€ข Tests multiple models (DeepSeek-V3, Llama-3.3-70B)") print(" โ€ข Evaluates clue quality automatically") print(" โ€ข No local model downloads required") print("\n๐Ÿ“ Available tools:") print(" โ€ข api_clue_generator.py - Core API generator") print(" โ€ข test_multiple_models.py - Comprehensive model comparison") print(" โ€ข interactive_clue_tester.py - Interactive testing (for manual use)") print(" โ€ข This demo script") if __name__ == "__main__": demo_api_models()