Burime · Kontratat e Daljes

Kontratat e Daljes të Unifikuara

Një specifikim kontrate prodhimi që mban përgjigjet të qëndrueshme nëpër ofruesit e tekstit, zërit, imazhit dhe videos.

Kontrata Kanonike e Përgjigjes

{
  "success": true,
  "content": "Primary human-readable output",
  "provider": "openai",
  "usage": {
    "input_tokens": 120,
    "output_tokens": 64
  },
  "metadata": {
    "model": "gpt-x",
    "latency_ms": 540,
    "trace_id": "trc_123"
  },
  "images": [],
  "files": [],
  "videos": []
}

Parimet e Dizajnit

  • Një kuvertë për të gjitha modalitetet dhe ofruesit.
  • Emrat e fushave mbeten të qëndrueshme nëpër versionet e runtime-it.
  • Detajet specifike të ofruesit ruhen në metadatë, jo në ndryshimin e strukturës kryesore.
  • Daljet e modaliteteve të munguar kthejnë vargje të zbrazëta, jo ndryshime të strukturës.
  • Flamuri success është i detyrueshëm për trajtimin deterministik të klientit.

Referenca e Fushave

  • success: rezultat boolean i operacionit.
  • content: dalje kryesore e lexueshme nga njeriu.
  • provider: identifikator i normalizuar i ofruesit.
  • usage: objekt llogaritjeje i normalizuar.
  • metadata: diagnostikë dhe kontekst ekzekutimi.
  • images/files/videos: vargje daljesh për modalitetet.
  • error: objekt i strukturuar i gabimit kur success=false.

Shembuj me shumë ofrues

Përgjigje e normalizuar në stilin OpenAI

{
  "success": true,
  "content": "Generated response",
  "provider": "openai",
  "usage": { "input_tokens": 90, "output_tokens": 52 },
  "metadata": { "latency_ms": 480 },
  "images": [],
  "files": [],
  "videos": []
}

Përgjigje e normalizuar në stilin Replicate

{
  "success": true,
  "content": "Image generation completed",
  "provider": "replicate",
  "usage": { "input_tokens": 0, "output_tokens": 0 },
  "metadata": { "duration_ms": 2300 },
  "images": [{ "url": "https://..." }],
  "files": [],
  "videos": []
}

Rregullat e Kompatibilitetit të Klientit

  • Logjika e renderimit në frontend duhet të bazohet në formën e kuvertës, jo në pjesët e brendshme të ofruesit.
  • Klientët duhet të pranojnë çelësa metadata të panjohur për kompatibilitetin e ardhshëm.
  • Vargjet e zbrazëta janë dalje të vlefshme për modalitetet që nuk zbatohen.
  • Parsimi duhet të preferojë kontrollat e qarta të fushave mbi degëzimin sipas ofruesit.

Error Contract

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid request payload",
    "details": {}
  },
  "provider": "system",
  "metadata": {
    "trace_id": "trc_123"
  }
}
  • Paketat e gabimit duhet të përfshijnë kod të lexueshëm nga makina dhe një mesazh të lexueshëm nga njeriu.
  • Identifikuesit e gjurmimit duhet të propagohen për diagnostikim.
  • Përgjigjet me success=false nuk duhet kurrë të ri-përdorin fushat e paketës që janë vetëm për sukses.
  • Statusi HTTP dhe kodi i strukturuar i gabimit duhet të jenë të përputhshëm.