#!/usr/bin/env python3 """ Script to check which models are currently being used on Hugging Face Space. """ import os import sys # Add backend to path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend')) def check_embedding_model(): """Check embedding model configuration.""" from hue_portal.core.embeddings import ( DEFAULT_MODEL_NAME, FALLBACK_MODEL_NAME, AVAILABLE_MODELS, get_embedding_model ) print("=" * 60) print("šŸ” EMBEDDING MODEL CONFIGURATION") print("=" * 60) # Check environment variable env_model = os.environ.get("EMBEDDING_MODEL") if env_model: print(f"šŸ“Œ EMBEDDING_MODEL env var: {env_model}") else: print(f"šŸ“Œ EMBEDDING_MODEL env var: Not set (using default)") print(f"šŸ“Œ Default model: {DEFAULT_MODEL_NAME}") print(f"šŸ“Œ Fallback model: {FALLBACK_MODEL_NAME}") # Try to load model print("\nšŸ”„ Attempting to load embedding model...") try: model = get_embedding_model() if model: # Get dimension test_embedding = model.encode("test", show_progress_bar=False) dim = len(test_embedding) print(f"āœ… Model loaded successfully!") print(f" Model name: {DEFAULT_MODEL_NAME}") print(f" Dimension: {dim}") print(f" Status: āœ… GOOD") # Evaluate if dim >= 768: print(f" Quality: ⭐⭐⭐⭐ High quality (768+ dim)") elif dim >= 384: print(f" Quality: ⭐⭐⭐ Good quality (384 dim)") else: print(f" Quality: ⭐⭐ Basic quality") else: print("āŒ Failed to load model") except Exception as e: print(f"āŒ Error: {e}") print("\nšŸ“Š Available models:") for key, value in AVAILABLE_MODELS.items(): marker = "⭐" if value == DEFAULT_MODEL_NAME else " " print(f" {marker} {key}: {value}") def check_llm_model(): """Check LLM model configuration.""" from hue_portal.chatbot.llm_integration import ( LLM_PROVIDER, LLM_PROVIDER_NONE, LLM_PROVIDER_OPENAI, LLM_PROVIDER_ANTHROPIC, LLM_PROVIDER_OLLAMA, LLM_PROVIDER_HUGGINGFACE, LLM_PROVIDER_LOCAL, get_llm_generator ) print("\n" + "=" * 60) print("šŸ” LLM MODEL CONFIGURATION") print("=" * 60) print(f"šŸ“Œ LLM_PROVIDER: {LLM_PROVIDER}") if LLM_PROVIDER == LLM_PROVIDER_NONE: print("āš ļø No LLM provider configured!") print(" Status: āŒ NOT USING LLM (template-based only)") print(" Quality: ⭐⭐ Basic (no LLM generation)") print("\nšŸ’” To enable LLM, set LLM_PROVIDER to one of:") print(" - ollama (for local Qwen)") print(" - openai (for GPT)") print(" - anthropic (for Claude)") print(" - huggingface (for HF Inference API)") print(" - local (for local Transformers)") elif LLM_PROVIDER == LLM_PROVIDER_OPENAI: model = os.environ.get("OPENAI_MODEL", "gpt-3.5-turbo") print(f"āœ… Using OpenAI") print(f" Model: {model}") print(f" Status: āœ… GOOD") print(f" Quality: ⭐⭐⭐⭐⭐ Excellent") elif LLM_PROVIDER == LLM_PROVIDER_ANTHROPIC: model = os.environ.get("ANTHROPIC_MODEL", "claude-3-5-sonnet-20241022") print(f"āœ… Using Anthropic Claude") print(f" Model: {model}") print(f" Status: āœ… EXCELLENT") print(f" Quality: ⭐⭐⭐⭐⭐ Best for Vietnamese") elif LLM_PROVIDER == LLM_PROVIDER_OLLAMA: model = os.environ.get("OLLAMA_MODEL", "qwen2.5:7b") base_url = os.environ.get("OLLAMA_BASE_URL", "http://localhost:11434") print(f"āœ… Using Ollama (local)") print(f" Model: {model}") print(f" Base URL: {base_url}") print(f" Status: āœ… GOOD (if Ollama running)") print(f" Quality: ⭐⭐⭐⭐ Very good for Vietnamese") elif LLM_PROVIDER == LLM_PROVIDER_HUGGINGFACE: model = os.environ.get("HF_MODEL", "Qwen/Qwen2.5-7B-Instruct") print(f"āœ… Using Hugging Face Inference API") print(f" Model: {model}") print(f" Status: āœ… GOOD") print(f" Quality: ⭐⭐⭐⭐ Good for Vietnamese") elif LLM_PROVIDER == LLM_PROVIDER_LOCAL: model = os.environ.get("LOCAL_MODEL_PATH", "Qwen/Qwen2.5-1.5B-Instruct") device = os.environ.get("LOCAL_MODEL_DEVICE", "auto") print(f"āœ… Using Local Transformers") print(f" Model: {model}") print(f" Device: {device}") print(f" Status: āœ… GOOD (if model loaded)") print(f" Quality: ⭐⭐⭐⭐ Good for Vietnamese") # Try to get LLM generator print("\nšŸ”„ Checking LLM availability...") try: llm = get_llm_generator() if llm and llm.is_available(): print("āœ… LLM is available and ready!") else: print("āš ļø LLM is not available") except Exception as e: print(f"āŒ Error checking LLM: {e}") def main(): """Main function.""" print("\n" + "=" * 60) print("šŸ“Š MODEL STATUS CHECK") print("=" * 60) print() check_embedding_model() check_llm_model() print("\n" + "=" * 60) print("šŸ“‹ SUMMARY") print("=" * 60) # Embedding summary from hue_portal.core.embeddings import DEFAULT_MODEL_NAME embedding_model = os.environ.get("EMBEDDING_MODEL", DEFAULT_MODEL_NAME) print(f"Embedding: {embedding_model}") # LLM summary from hue_portal.chatbot.llm_integration import LLM_PROVIDER, LLM_PROVIDER_NONE if LLM_PROVIDER == LLM_PROVIDER_NONE: print("LLM: None (template-based only)") else: print(f"LLM: {LLM_PROVIDER}") print("\nšŸ’” Recommendations:") print(" - Embedding: multilingual-mpnet (current) is good āœ…") print(" - LLM: Consider adding Qwen 2.5 for better answers") print() if __name__ == "__main__": main()