ZETIC.MLange

Deploy Your Model

Learn how to deploy and manage your models with ZETIC.MLange

Overview

ZETIC.MLange provides a streamlined workflow for deploying your models to production. Choose the method that best fits your workflow:

First-time setup required

Start with the Web Dashboard to complete initial setup, then switch to CLI for automation.


Core Concepts

Repository

Your workspace for model version control. Each repository manages multiple versions of a related model family.

username/my-model-repository
├── v1 (uploaded 2024-01-15)
├── v2 (uploaded 2024-02-20) ← default
└── v3 (uploaded 2024-03-10) ← latest

Key features:

  • Latest model is automatically selected by default
  • Set a specific version as default model
  • Version history management for all uploaded models

Model Identifier

Access your models using the format: username/repository_name

Default behavior: Always loads the latest model version

Custom default: Set a specific version as default in repository settings

// Automatically loads the latest or default version
val model = ZeticMLangeModel(
    context, 
    BuildConfig.PERSONAL_KEY, 
    "Steve/MobileCLIP2-image"
)
// Automatically loads the latest or default version
let model = ZeticMLangeModel(
    tokenKey: personalKey,
    name: "Steve/MobileCLIP2-image"
)
// Automatically loads the latest or default version
const model = await ZeticMLange.load(
  personalKey,
  "Steve/MobileCLIP2-image"
);

Deployment Status

Track your model's deployment progress through these stages:

StatusDescriptionReady for Use
N/ARepository created, awaiting first upload
FailedError during upload or conversion
ConvertingModel uploaded, converting to on-device format
OptimizingConversion complete, optimization in progress✅ Testing only
ReadyFully optimized and production-ready✅ Production

Using Optimizing status

Models in Optimizing status are functional but not performance-optimized. Use for testing and development, not production deployments.


Authentication

Personal Key

Your authentication credential for accessing ZETIC.MLange APIs and services.

Generate and Copy Your Personal Key

Copy Personal Key

  1. Navigate to SettingsPersonal Access Tokens in the Web Dashboard
  2. Click the Generate New Token button
  3. Click the copy icon next to the generated token to copy it

Save this token securely

You won't be able to see it again!

Store securely

Add your key to local.properties (this file is git-ignored by default):

# local.properties
MLANGE_PERSONAL_KEY=your-personal-key-here

Then load it in your build.gradle.kts:

// app/build.gradle.kts
android {
    defaultConfig {
        val properties = Properties()
        properties.load(project.rootProject.file("local.properties").inputStream())
        
        buildConfigField(
            "String",
            "PERSONAL_KEY",
            "\"${properties.getProperty("MLANGE_PERSONAL_KEY")}\""
        )
    }
}

Create a Config.xcconfig file (add to .gitignore):

# Config.xcconfig
MLANGE_PERSONAL_KEY = your-personal-key-here

Then reference it in your Info.plist:

<!-- Info.plist -->
<key>MLangePersonalKey</key>
<string>$(MLANGE_PERSONAL_KEY)</string>

Use in your application

// Access via BuildConfig
val model = ZeticMLangeModel(
    context,
    BuildConfig.PERSONAL_KEY,
    "Steve/MobileCLIP2-image"
)
// Read from Info.plist
guard let personalKey = Bundle.main.object(
    forInfoDictionaryKey: "MLangePersonalKey"
) as? String else {
    fatalError("Personal key not found")
}

let model = ZeticMLangeModel(
    tokenKey: personalKey,
    name: "Steve/MobileCLIP2-image"
)

Security best practices

  • Never commit local.properties (Android) or .xcconfig (iOS) files to version control
  • Add them to .gitignore immediately:
    # Android
    local.properties
    
    # iOS
    Config.xcconfig
    *.xcconfig
  • Rotate keys regularly
  • Revoke compromised keys immediately in the Web Dashboard