Job async + poll loop
Dùng khi cần job id ngay và poll từ app (hoặc Playground poll loop).
Gommo poll interval: 3500ms, tối đa 80 lần (~5 phút). Mỗi poll là một POST tới /vi/ai/jobs/{id_base}?media=….
Public API
Create: POST https://v2.api.gommo.net/ai/jobs/image/{model_id} (form body). Poll: POST https://v2.api.gommo.net/ai/jobs/{id_base}?media=image. Xem Gommo public API.
1. Tạo job
Giả sử $env:TOKEN, $slug, $ratio từ Image job đầu tiên.
powershell
$h = @{ Authorization = "Bearer $env:TOKEN" }
$body = "domain=%REGISTRATION_DOMAIN%&project_id=default&prompt=A cute cat&ratio=$ratio"
$created = Invoke-RestMethod -Method POST `
-Uri "https://v2.api.gommo.net/ai/jobs/image/$slug" `
-Headers $h `
-ContentType "application/x-www-form-urlencoded" `
-Body $body
$jobId = $created.imageInfo.id_base ?? $created.data.id_base ?? $created.id_base
Write-Host "jobId=$jobId"2. Poll một lần
powershell
$pollBody = "domain=%REGISTRATION_DOMAIN%&project_id=default"
$poll = Invoke-RestMethod -Method POST `
-Uri "https://v2.api.gommo.net/ai/jobs/$jobId?media=image" `
-Headers $h `
-ContentType "application/x-www-form-urlencoded" `
-Body $pollBody
$poll3. Loop đơn giản (PowerShell)
powershell
$max = 80
$intervalSec = 3.5
for ($i = 1; $i -le $max; $i++) {
$poll = Invoke-RestMethod -Method POST `
-Uri "https://v2.api.gommo.net/ai/jobs/$jobId?media=image" `
-Headers $h `
-ContentType "application/x-www-form-urlencoded" `
-Body $pollBody
$url = $poll.imageInfo.result_url ?? $poll.data?.resultUrl
if ($url) { Write-Host "Done: $url"; break }
Write-Host "Attempt $i — waiting..."
Start-Sleep -Seconds $intervalSec
}Poll media: image | video | music — phải khớp job type.
Playground
Media job → bỏ chọn wait → Poll job → Auto poll (3.5s).
