model-explorer / js /config.js
mr4's picture
Upload 71 files
9bd422a verified
/**
* Application Configuration
* Contains all configuration constants for the ONNX Model Explorer
*/
const CONFIG = {
// Application Info
APP_NAME: 'ONNX Model Explorer',
APP_VERSION: '1.0.0',
// Paths
MODELS_PATH: './models/',
MODELS_CONFIG_FILE: './models/models.json',
// CDN URLs
CDN: {
PROTOBUF_JS: 'https://cdn.jsdelivr.net/npm/protobufjs@7/dist/protobuf.min.js',
CYTOSCAPE_JS: 'https://cdn.jsdelivr.net/npm/cytoscape@latest/dist/cytoscape.min.js',
BOOTSTRAP_CSS: 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css',
BOOTSTRAP_JS: 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js',
FONT_AWESOME: 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.0/css/all.min.css'
},
// File Configuration
FILE: {
ALLOWED_EXTENSIONS: ['.onnx', '.safetensors', '.tflite', '.h5', '.keras', '.pb', '.mlmodel', '.caffemodel', '.weights', '.pdmodel', '.params'],
MAX_FILE_SIZE: Infinity, // No file size limit
UPLOAD_TIMEOUT: 30000 // 30 seconds
},
// UI Configuration
UI: {
MODEL_LIST_MAX_HEIGHT: 600,
GRAPH_CONTAINER_HEIGHT: 500,
SEARCH_DEBOUNCE_DELAY: 300,
ERROR_DISPLAY_DURATION: 5000, // 5 seconds
LOADING_SPINNER_DELAY: 500 // 0.5 seconds
},
// Graph Configuration
GRAPH: {
DEFAULT_ZOOM: 1,
MIN_ZOOM: 0.1,
MAX_ZOOM: 5,
ZOOM_STEP: 0.1,
NODE_HIGHLIGHT_COLOR: '#FFD700',
NODE_DEFAULT_COLOR: '#87CEEB',
EDGE_DEFAULT_COLOR: '#999'
},
// Performance Configuration
PERFORMANCE: {
LAZY_LOAD_THRESHOLD: 1000, // Load graphs with > 1000 nodes lazily
CACHE_SIZE: 10, // Number of models to cache
BATCH_RENDER_SIZE: 100 // Number of nodes to render per batch
},
// Error Messages
ERRORS: {
FILE_NOT_FOUND: 'File not found. Please check the file path.',
INVALID_FILE_FORMAT: 'Invalid file format. Please upload a valid ONNX (.onnx), SafeTensors (.safetensors), TFLite (.tflite), or other supported model file.',
PARSE_ERROR: 'Failed to parse the model. The file may be corrupted.',
LIBRARY_LOAD_ERROR: 'Failed to load required libraries. Please check your internet connection.',
UPLOAD_ERROR: 'Failed to upload the file. Please try again.',
EXPORT_ERROR: 'Failed to export the model information.',
UNKNOWN_ERROR: 'An unknown error occurred. Please try again.',
NO_MODELS_AVAILABLE: 'No models available. Please upload an ONNX file.',
MODEL_LOAD_TIMEOUT: 'Model loading timed out. Please try again.',
INVALID_MODEL_DATA: 'Invalid model data. The model may be corrupted.'
},
// Success Messages
SUCCESS: {
MODEL_LOADED: 'Model loaded successfully.',
FILE_UPLOADED: 'File uploaded successfully.',
MODEL_EXPORTED: 'Model exported successfully.',
SEARCH_COMPLETED: 'Search completed.'
},
// Info Messages
INFO: {
LOADING_MODEL: 'Loading model...',
PARSING_MODEL: 'Parsing model...',
RENDERING_GRAPH: 'Rendering graph...',
SEARCHING: 'Searching...'
},
// Data Type Mapping
DATA_TYPES: {
1: 'FLOAT',
2: 'UINT8',
3: 'INT8',
4: 'UINT16',
5: 'INT16',
6: 'INT32',
7: 'INT64',
8: 'STRING',
9: 'BOOL',
10: 'FLOAT16',
11: 'DOUBLE',
12: 'UINT32',
13: 'UINT64',
14: 'COMPLEX64',
15: 'COMPLEX128',
16: 'BFLOAT16'
},
// Local Storage Keys
STORAGE: {
SELECTED_MODEL: 'onnx_explorer_selected_model',
RECENT_MODELS: 'onnx_explorer_recent_models',
USER_PREFERENCES: 'onnx_explorer_preferences',
CACHE_PREFIX: 'onnx_explorer_cache_'
},
// Event Names
EVENTS: {
MODEL_LOADED: 'model:loaded',
MODEL_SELECTED: 'model:selected',
NODE_SELECTED: 'node:selected',
SEARCH_UPDATED: 'search:updated',
ERROR_OCCURRED: 'error:occurred',
EXPORT_REQUESTED: 'export:requested',
COMPARISON_STARTED: 'comparison:started',
COMPARISON_ENDED: 'comparison:ended',
FILE_UPLOADED: 'file:uploaded',
GRAPH_RENDERED: 'graph:rendered'
},
// Logging Configuration
LOGGING: {
ENABLED: true,
LEVEL: 'info', // 'debug', 'info', 'warn', 'error'
CONSOLE_OUTPUT: true
}
};
// Freeze the config object to prevent modifications
Object.freeze(CONFIG);