Skip to main content

Jobs

The Jobs screen lets you submit multimodal jobs (speech to text, diarization, text to speech, vision, image generation and edit, video processing and generation, DLP on a media) and follow their status and cost. Portal path: /multimodal/jobs. Developers and agents' owners use it to test a multimodal model before wiring it in an agent.

What the screen shows​

The page title is Multimodal jobs. At the top, the Submit a job form has Kind (required), Model, Media id, Prompt, Text and Options (JSON, merged into the body), with its result panel. Only the fields the chosen kind reads are sent:

KindRouteFields sent
sttPOST /v1/multimodal/sttModel, Media id
diarizePOST /v1/multimodal/diarizeModel, Media id
ttsPOST /v1/multimodal/ttsModel, Text
visionPOST /v1/multimodal/visionModel, Media id, Prompt
images/generatePOST /v1/multimodal/images/generateModel, Prompt
images/editPOST /v1/multimodal/images/editModel, Media id, Prompt
video/processPOST /v1/multimodal/video/processMedia id
video/generatePOST /v1/multimodal/video/generateModel, Prompt
dlpPOST /v1/multimodal/dlpMedia id, Text

Under the form, the Jobs table shows Id, Operation, Adapter, Status, Estimated, Measured, Created, with the filters Operation and Status (queued, running, succeeded, failed). A click on a row opens the job.

Actions​

Button or actionWhat it doesAPI callRoles
Run (Submit a job)Submits the job of the chosen kind (see the table above)POST /v1/multimodal/{kind} routes listed abovetenant_admin, developer, agent; any tenant user for dlp
Refresh icon, FilterReloads the jobsGET /v1/multimodal/jobsany tenant user
Click on a rowOpens the job with its result and costsGET /v1/multimodal/jobs/{job_id}any tenant user

Roles​

The portal hides no button. In services/control-plane/src/eai/domains/multimodal/__init__.py every generation route calls require_roles with GENERATORS (tenant_admin, developer, agent); the dlp route and the job list need only a tenant. The cost is estimated before the call and measured after it.

Typical tasks​

Transcribe an audio file​

  1. Upload the audio. A speech job reads a stored media. Upload the file in Media library and copy its Id.

    Expected result: an audio media in Library.

    If it fails: see the Troubleshooting section of the media library.

  2. Submit the job. Choose Kind stt, paste the Media id, optionally a Model, then Run.

    Expected result: the job in the result panel and in the Jobs table with its Status.

    If it fails: unsupported_media means the media is not audio.

Generate an image​

  1. Write the prompt. The prompt goes through the DLP in block mode first. Choose Kind images/generate, write the Prompt, add options such as the size in Options:

    {"n": 1, "size": "1024x1024"}

    Expected result: after Run, a job of the operation image_generation.

    If it fails: dlp_blocked lists the sensitive data types found in the prompt.

Follow the cost of the jobs​

  1. Filter the table. Choose Status succeeded, then Filter.

    Expected result: the Estimated and Measured amounts of each job.

    If it fails: an empty table means no job ended with this status.

Troubleshooting​

SymptomCauseFix
forbidden (403) with required_rolesYou are not tenant_admin, developer or agentAsk for the developer role
invalid_request (400) with required media_id, content_base64The kind needs a media and Media id is emptyFill Media id
unsupported_media (422)The media type does not fit the kindUse an image, an audio or a video as expected
parameter_unsupported (422)An option is not read by this route or not supported by the providerRemove the option from Options
parameter_invalid (422)For example min_speakers above max_speakersFix the values in Options
dlp_blocked (422)The prompt or the text holds blocked dataRemove the sensitive data
invalid_request (400) with operationsOptions asks for an unknown video operationUse frames or audio