Ask for a fix
POST/api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}/fix beta
Queues a fix job: the model drafts a revised sentence for an intent policy with a failing case, grounds it and runs every case and the replay against it. One request per intent policy, counted on that request alone (a new draft drafts no fix of its own); a new sentence resets it.
curl --fail-with-body -X POST 'https://app.openlatch.ai/api/public/v1/aip/drafts/<draft_public_id>/intent-policies/<intent_policy_id>/fix' \ -H "Authorization: Bearer $OPENLATCH_API_KEY"import jsonimport osimport urllib.request
request = urllib.request.Request( 'https://app.openlatch.ai/api/public/v1/aip/drafts/<draft_public_id>/intent-policies/<intent_policy_id>/fix', method='POST', headers={ 'Authorization': 'Bearer ' + os.environ['OPENLATCH_API_KEY'], },)with urllib.request.urlopen(request) as response: text = response.read().decode() print(json.dumps(json.loads(text), indent=2) if text else response.status)#!/usr/bin/env bashset -euo pipefail
curl -sS --fail-with-body -X POST 'https://app.openlatch.ai/api/public/v1/aip/drafts/<draft_public_id>/intent-policies/<intent_policy_id>/fix' \ -H "Authorization: Bearer $OPENLATCH_API_KEY" | jq .$headers = @{ Authorization = "Bearer $env:OPENLATCH_API_KEY"}Invoke-RestMethod -Method POST -Uri 'https://app.openlatch.ai/api/public/v1/aip/drafts/<draft_public_id>/intent-policies/<intent_policy_id>/fix' -Headers $headers | ConvertTo-Json -Depth 20Autorización
Sección titulada «Autorización»| Rol en la organización | Este punto de conexión |
|---|---|
owner | Permitido |
admin | Permitido |
editor | Permitido |
viewer | No permitido |
Una clave tiene el rol que su propietario ocupa en la organización. Consulte Autenticación.
Ámbito de la clave de API: aip:write
Parámetros de ruta
Sección titulada «Parámetros de ruta»| Parámetro | Tipo | Descripción |
|---|---|---|
public_id | string | Obligatorio. |
intent_policy_id | string (uuid) | Obligatorio. |
Parámetros de encabezado
Sección titulada «Parámetros de encabezado»| Parámetro | Tipo | Descripción |
|---|---|---|
Idempotency-Key | string or null | Optional. Makes this request safe to retry. Depending on the request, the same key with the same request either joins the job the first one queued (409 JOB_ALREADY_EXISTS, the job id in details) or replays the first answer (Idempotent-Replayed: true; 409 IDEMPOTENCY_IN_PROGRESS while it runs). The same key with another request is 422 IDEMPOTENCY_KEY_REUSED. |
Respuesta
Sección titulada «Respuesta»- 202 Accepted — la llamada se completó correctamente.
- 400 Bad Request —
BAD_REQUEST - 401 Unauthorized —
UNAUTHORIZED - 402 Payment Required —
license_expired - 403 Forbidden —
FEATURE_DISABLED,FORBIDDEN,INSUFFICIENT_SCOPE - 404 Not Found —
NOT_FOUND - 409 Conflict —
AI_NOT_ENABLED,FIX_ATTEMPTS_EXHAUSTED,GROUNDING_IN_FLIGHT,JOB_ALREADY_EXISTS,NO_FAILING_CASE - 422 Unprocessable Content —
IDEMPOTENCY_KEY_REUSED,INVALID_ID,VALIDATION_ERROR - 429 Too Many Requests —
TOO_MANY_REQUESTS - 500 Internal Server Error —
INTERNAL_SERVER_ERROR,tenant_isolation_violation - 503 Service Unavailable —
FEATURE_STATE_UNAVAILABLE,SERVICE_UNAVAILABLE
Campos de la respuesta
Sección titulada «Campos de la respuesta»| Campo | Tipo | Descripción |
|---|---|---|
data | object | Obligatorio. `202 for a job-starting operation: poll GET /aip/jobs/{job_id}`. |
data.job_id | string | Obligatorio. |
Ejemplo de respuesta
Sección titulada «Ejemplo de respuesta»{ "data": { "job_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10" }}