""" Setup Verification Script for KnowledgeHub Run this to check if everything is configured correctly """ import sys import os print("šŸ” KnowledgeHub Setup Verification\n") print("=" * 60) # Check Python version print(f"āœ“ Python version: {sys.version}") print(f"āœ“ Python executable: {sys.executable}") print(f"āœ“ Current directory: {os.getcwd()}") print() # Check directory structure print("šŸ“ Checking directory structure...") required_dirs = ['agents', 'models', 'utils'] for dir_name in required_dirs: if os.path.isdir(dir_name): init_file = os.path.join(dir_name, '__init__.py') if os.path.exists(init_file): print(f" āœ“ {dir_name}/ exists with __init__.py") else: print(f" āš ļø {dir_name}/ exists but missing __init__.py") else: print(f" āŒ {dir_name}/ directory not found") print() # Check required files print("šŸ“„ Checking required files...") required_files = ['app.py', 'requirements.txt'] for file_name in required_files: if os.path.exists(file_name): print(f" āœ“ {file_name} exists") else: print(f" āŒ {file_name} not found") print() # Try importing modules print("šŸ“¦ Testing imports...") errors = [] try: from utils import OllamaClient, EmbeddingModel, DocumentParser print(" āœ“ utils module imported successfully") except ImportError as e: print(f" āŒ Cannot import utils: {e}") errors.append(str(e)) try: from models import Document, DocumentChunk, SearchResult, Summary print(" āœ“ models module imported successfully") except ImportError as e: print(f" āŒ Cannot import models: {e}") errors.append(str(e)) try: from agents import ( IngestionAgent, QuestionAgent, SummaryAgent, ConnectionAgent, ExportAgent ) print(" āœ“ agents module imported successfully") except ImportError as e: print(f" āŒ Cannot import agents: {e}") errors.append(str(e)) print() # Check dependencies print("šŸ“š Checking Python dependencies...") required_packages = [ 'gradio', 'chromadb', 'sentence_transformers', 'requests', 'numpy', 'tqdm' ] missing_packages = [] for package in required_packages: try: __import__(package.replace('-', '_')) print(f" āœ“ {package} installed") except ImportError: print(f" āŒ {package} not installed") missing_packages.append(package) print() # Check Ollama print("šŸ¤– Checking Ollama...") try: import requests response = requests.get('http://localhost:11434/api/tags', timeout=2) if response.status_code == 200: print(" āœ“ Ollama is running") models = response.json().get('models', []) if models: print(f" āœ“ Available models: {[m['name'] for m in models]}") if any('llama3.2' in m['name'] for m in models): print(" āœ“ llama3.2 model found") else: print(" āš ļø llama3.2 model not found. Run: ollama pull llama3.2") else: print(" āš ļø No models found. Run: ollama pull llama3.2") else: print(" āš ļø Ollama responded but with error") except Exception as e: print(f" āŒ Cannot connect to Ollama: {e}") print(" Start Ollama with: ollama serve") print() print("=" * 60) # Final summary if errors or missing_packages: print("\nāš ļø ISSUES FOUND:\n") if errors: print("Import Errors:") for error in errors: print(f" - {error}") if missing_packages: print("\nMissing Packages:") print(f" Run: pip install {' '.join(missing_packages)}") print("\nšŸ’” Fix these issues before running app.py") else: print("\nāœ… All checks passed! You're ready to run:") print(" python app.py") print()