Crea una sessione di caricamento
Prepara il caricamento di un file locale per un agente in grado di leggere i byte e inviare richieste HTTP PUT al di fuori di MCP. Restituisce upload_url, method, gli header esatti, upload_id e le istruzioni. Invia i byte originali senza modificarli usando l’header Authorization temporaneo restituito, mai una chiave API dell’area di lavoro o un token OAuth. L’autorizzazione al caricamento scade dopo 10 minuti e consente un solo tentativo PUT. Dopo il completamento, invia upload_id per creare una traduzione con le stesse credenziali entro un’ora. Non consuma crediti. Massimo 20 caricamenti in sospeso e 120 sessioni all’ora per area di lavoro.
POST/v1/uploads
Richiede batches:create. Creare una sessione non costa crediti e non crea una traduzione. Invia un nome file semplice, con un’estensione supportata, e la dimensione esatta dei byte originali:
{ "filename": "catalogue.xlsx", "size_bytes": 4096 }La risposta contiene upload_id, upload_url, method, headers, expires_at, consume_until e instructions in forma leggibile. Usa l’URL e le intestazioni ricevuti esattamente come sono con un client HTTP esterno, quindi crea la traduzione specificando upload_id e usando le stesse credenziali. Il nome file è già associato alla sessione.
const session = createUploadResponse.data;
const uploaded = await fetch(session.upload_url, {
method: session.method,
headers: session.headers,
body: originalFileBytes,
redirect: "error",
});
if (!uploaded.ok) throw new Error(`Upload failed: ${uploaded.status}`);
// Use the original workspace credential for POST /v1/batches:
// { upload_id: session.upload_id, instruction: "Translate into French" }L’intestazione temporanea Authorization consente un solo tentativo di caricamento per questo documento nell’arco di 10 minuti. Il solo URL non concede alcun accesso. Non sostituire mai questa intestazione con una chiave API dello spazio di lavoro o un token OAuth, non inserire segreti in un URL, non seguire reindirizzamenti e non registrare le intestazioni temporanee. Il segreto di caricamento non può leggere documenti, creare traduzioni né approvare spese. Revocando la connessione o rimuovendo la relativa autorizzazione, le funzionalità di caricamento non ancora utilizzate vengono invalidate.
Il numero di byte ricevuti deve corrispondere a size_bytes; il limite per formato viene verificato prima di rilasciare la capability. Crea la traduzione entro un’ora. Un workspace può avere 20 caricamenti in sospeso e creare 120 sessioni all’ora. I file non utilizzati possono essere eliminati dopo 24 ore e vengono rimossi durante la pulizia giornaliera. Una volta associato a una traduzione, al file si applicano i normali tempi di conservazione. Il recupero tramite upload_id è disponibile fino alla pulizia della sessione, che avviene almeno 24 ore dopo l’emissione. Conserva l’ID batch per recuperare in seguito la traduzione dalla cronologia.
Requisiti per gli agenti
L’ambiente di esecuzione dell’agente deve poter accedere ai file locali e disporre di un client HTTP in grado di inviare richieste PUT con byte non elaborati. MCP da solo non può inviare dati binari e AI Glot Code Mode non può accedere ai file locali né effettuare richieste HTTP in uscita. Se queste funzionalità non sono disponibili, comunica chiaramente all’utente che l’assistente non può inviare l’allegato. Suggerisci di caricarlo nell’app web di AI Glot, di usare la CLI oppure di fornire un link di download HTTPS da usare con file_url. Non dichiarare mai che il caricamento è riuscito senza averlo verificato.
Dopo il caricamento, esamina il piano di traduzione e le relative esclusioni prima di approvare il costo in crediti. Inviare byte non elaborati descrive i tentativi successivi e gli errori.
Risposta
Crea una sessione temporanea di caricamento file
dataobjectrequiredrequest_idstringrequiredCodici possibili: invalid_request, unknown_field, invalid_parameter, invalid_cursor
errorobjectrequiredrequest_idstringrequiredCodici possibili: authentication_required, invalid_api_key, api_key_expired, api_key_revoked
errorobjectrequiredrequest_idstringrequiredCodici possibili: insufficient_credits
errorobjectrequiredrequest_idstringrequiredCodici possibili: insufficient_scope, feature_not_available, admin_required, file_retention_expired
errorobjectrequiredrequest_idstringrequiredCodici possibili: batch_not_found, glossary_not_found, resource_not_found
errorobjectrequiredrequest_idstringrequiredCodici possibili: glossary_already_exists, result_not_ready, batch_not_editable, no_plan_yet, batch_not_awaiting_approval
errorobjectrequiredrequest_idstringrequiredCodici possibili: file_expired
errorobjectrequiredrequest_idstringrequiredCodici possibili: request_too_large, file_too_large, result_too_large
errorobjectrequiredrequest_idstringrequiredCodici possibili: language_not_supported, invalid_language_pair, glossary_term_limit_reached, glossary_limit_reached, invalid_glossary_terms, unsupported_format, file_fetch_failed, plan_invalid
errorobjectrequiredrequest_idstringrequiredCodici possibili: rate_limited
errorobjectrequiredrequest_idstringrequiredCodici possibili: internal_error
errorobjectrequiredrequest_idstringrequiredCodici possibili: service_unavailable
errorobjectrequiredrequest_idstringrequired