Skip to main content
Deepgram's Docs

Search documentation

Type to search this documentation.

On this pageOverview

Configure Deepgram on Modal

Modal Deepgram deployments are managed by labels. Each label specifies a set of Deepgram TOML files and models. Keep in mind that Deepgram models, such as Flux and Aura-2, must be deployed on independent Modal stacks, and cannot be co-hosted with any other models.

Set the label by exporting an environment variable.

Bash
export DEPLOY_LABEL=stt

These resources are stored on Modal Volumes when you run

Bash
modal run -m modal_deepgram.deepgram_resources \
  --label $DEPLOY_LABEL \
  --model-links-path <path-to-models-list-txt-file> \
  --deploy-type license-proxy \
  --source-api-config-file <api-toml-file> \
  --source-engine-config-file <engine-toml-file>

This will

  • Download the Deepgram model weights to a Modal Volume
  • Pull the appropriate config files from Deepgram's repo
  • Patch the config files
    • Use localhost with the desired ports
    • Specify the Modal Volume mount point for model weights

When calling modal run -m modal_deepgram.deepgram_resources, note that

  • the models .txt filepath should be local
  • the config file names should match one of those found in the Deepgram self-hosted resources repo
  • the --deploy-type argument takes either license-proxy or standard and will choose the appropriate directory to pull the configs (default is license-proxy)

Update config files for a deployment after the initial modal_deepgram.deepgram_resources run by pulling them from the Volume, editing, and uploading back to the Volume.

  1. Pull the file locally:

    Bash
    modal volume get deepgram-cache configs/{label}/api.toml ./api.toml
  2. Edit ./api.toml in your editor.

  3. Push the change back:

    Bash
    modal volume put deepgram-cache ./api.toml configs/{label}/api.toml
  4. Redeploy with DEPLOY_LABEL={label} modal deploy -m modal_deepgram.app to apply.

Passing --model-links-path when you run modal_deepgram.deepgram_resources wipes /models/{label}/ and downloads every URL in the file.

Bash
modal run -m modal_deepgram.deepgram_resources \
  --label stt \
  --model-links-path ./model-links.txt

The quickstart shows you how to deploy a STT service. If you wanted to deploy Aura-2 TTS instead, you would follow these steps:

  1. Save your Aura-2 model links to ./tts-model-links.txt.

  2. Run prepare_resources with the tts label and Aura-2 config files. For language-specific deployments, swap the polyglot configs for variants like api.aura-2-en.toml / engine.aura-2-en.toml.

    Bash
    export DEPLOY_LABEL=tts
    
    modal run -m modal_deepgram.deepgram_resources \
      --label $DEPLOY_LABEL \
      --model-links-path ./tts-model-links.txt \
      --source-api-config-file api.aura-2-polyglot.toml \
      --source-engine-config-file engine.aura-2-polyglot.toml
  3. Update the hardware literals in modal_deepgram/app.py to TTS-recommended values — see Compute and Autoscaling → Configure hardware.

  4. Deploy:

    Bash
    DEPLOY_LABEL=tts modal deploy -m modal_deepgram.app

To change the Deepgram release, edit DEEPGRAM_IMAGE_TAG in modal_deepgram/deepgram.py and redeploy the app. This will rebuild the container image.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu