Spaces:
Sleeping
Sleeping
| # """ | |
| # Configuration settings for the insurance product classifier | |
| # """ | |
| import os | |
| from pathlib import Path | |
| # Base directory (project root) | |
| BASE_DIR = Path(__file__).resolve().parent.parent | |
| # Model directory | |
| MODEL_DIR = BASE_DIR / "models" | |
| # Model files | |
| EMBEDDINGS_FILE = MODEL_DIR / "category_embeddings_mpnet.npy" | |
| METADATA_FILE = MODEL_DIR / "category_metadata.pkl" | |
| CONFIG_FILE = MODEL_DIR / "config.json" | |
| # Model configuration | |
| MODEL_NAME = "sentence-transformers/all-mpnet-base-v2" | |
| EMBEDDING_DIMENSION = 768 | |
| # Classification thresholds | |
| AUTO_APPROVE_THRESHOLD = 0.75 # 75% confidence | |
| QUICK_REVIEW_THRESHOLD = 0.60 # 60% confidence | |
| # Keyword boosting | |
| BOOST_FACTOR = 0.15 # 15% boost for keyword matches | |
| MAX_BOOST = 0.30 # Maximum 30% total boost | |
| # API settings | |
| API_TITLE = "Insurance Product Classification API" | |
| API_VERSION = "1.0.0" | |
| API_DESCRIPTION = "ML-powered product categorization for insurance underwriting" | |
| # Processing settings | |
| DEFAULT_TOP_K = 5 # Return top 5 matches | |
| BATCH_SIZE = 32 # For batch processing | |
| # Keywords for boosting | |
| PRODUCT_KEYWORDS = { | |
| # Electronics | |
| "iphone", | |
| "ipad", | |
| "macbook", | |
| "smartphone", | |
| "laptop", | |
| "tablet", | |
| "computer", | |
| "electronics", | |
| "phone", | |
| "mobile", | |
| "samsung", | |
| "apple", | |
| "dell", | |
| "hp", | |
| # Appliances | |
| "refrigerator", | |
| "dishwasher", | |
| "washing machine", | |
| "dryer", | |
| "oven", | |
| "microwave", | |
| "coffee maker", | |
| "blender", | |
| "toaster", | |
| "appliance", | |
| # Clothing | |
| "shoes", | |
| "shirt", | |
| "pants", | |
| "dress", | |
| "jacket", | |
| "sneakers", | |
| "boots", | |
| "clothing", | |
| "apparel", | |
| "footwear", | |
| # Books | |
| "book", | |
| "novel", | |
| "textbook", | |
| "ebook", | |
| "reading", | |
| "literature", | |
| # Sports | |
| "sports", | |
| "fitness", | |
| "exercise", | |
| "gym", | |
| "athletic", | |
| "running", | |
| "yoga", | |
| # Home | |
| "furniture", | |
| "decor", | |
| "bedding", | |
| "kitchen", | |
| "home", | |
| "garden", | |
| } | |
| def validate_files(): | |
| """Validate that all required model files exist""" | |
| required_files = [EMBEDDINGS_FILE, METADATA_FILE, CONFIG_FILE] | |
| missing_files = [] | |
| for file_path in required_files: | |
| if not file_path.exists(): | |
| missing_files.append(str(file_path)) | |
| if missing_files: | |
| raise FileNotFoundError( | |
| f"Missing required files:\n" + "\n".join(f" - {f}" for f in missing_files) | |
| ) | |
| return True | |
| if __name__ == "__main__": | |
| print("Configuration Settings:") | |
| print(f" Model Directory: {MODEL_DIR}") | |
| print(f" Embeddings File: {EMBEDDINGS_FILE.name}") | |
| print(f" Metadata File: {METADATA_FILE.name}") | |
| print(f" Auto-Approve Threshold: {AUTO_APPROVE_THRESHOLD * 100}%") | |
| print(f" Quick Review Threshold: {QUICK_REVIEW_THRESHOLD * 100}%") | |
| try: | |
| validate_files() | |
| print("\n✅ All required files found!") | |
| except FileNotFoundError as e: | |
| print(f"\n❌ Error: {e}") | |