A HTTP-bővítmény protokoll használata

él ikon
Másik lehetőségként tekintse meg a Videóalkalmazások létrehozása a szolgáltatásban témakört.


Az Azure Video Analyzer egy folyamatbővítmény-csomóponton keresztül teszi lehetővé a feldolgozási képességeinek továbbfejlesztét. A HTTP-bővítmény processzorcsomópontja a HTTP-bővítmény protokoll használatával teszi lehetővé a bővítési forgatókönyveket, ahol nem a teljesítmény és/vagy az optimális erőforrás-kihasználtság az elsődleges szempont. Ebből a cikkből megtudhatja, hogyan küldhet üzeneteket ezzel a protokollal a Video Analyzer és egy HTTP REST-végpont között, amely általában egy AI-következtetési kiszolgáló köré van csomagolva.

A HTTP-szerződés a következő két összetevő között van definiálva:

  • HTTP-kiszolgáló
  • A Video Analyzer modul HTTP-ügyfélként működik

HTTP-szerződés

Kérés

A Video Analyzer modul a HTTP-kiszolgálóra vonatkozó kérései a következők:

Kulcs Érték
POST https://hostname/optional-path?optional-query
Elfogadás application/json
Engedélyezés Alapszintű, Kivonatoló, Bearer (egyéni fejléctámogatással)
Content-Type image/jpeg
image/png
image/bmp
kép/x-raw
Tartalomhossz törzsének hossza, bájtban megvakulva
User-Agent Azure Media Services
Törzs Kép bájtok, bináris kódolással a támogatott tartalomtípusok egyikében.

### Example

```html
POST http://localhost:8080/inference HTTP/1.1
Host: localhost:8080
x-ms-client-request-id: d6050cd4-c9f2-42d3-9adc-53ba7e440f17
Content-Type: image/bmp
Content-Length: 519222

(Image Binary Content)

Reagálás

A dedukenciakiszolgálótól a Video Analyzer modulra adott válaszoknak a következőnek kell lennie:

Kulcs Érték
Állapotkódok 200 OK – Következtetési eredmények találhatók
204 Nincs tartalom – Az AI nem talált eredményt
400 – Hibás kérés – Nem várt
500 Belső kiszolgálóhiba – Nem várt
503 Foglalt kiszolgáló – A Video Analyzer a "Retry-After" fejléc alapján, vagy az alapértelmezett idő alapján áll le, ha a fejléc nincs jelen.
Content-Type application/json
Tartalom hossza Törzs hossza, bájtban
Törzs JSON-objektum egyetlen "következtetés" tulajdonsággal.

Példa

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 468
Server: Microsoft-HTTPAPI/2.0
Date: Fri, 17 Apr 2021 04:44:01 GMT

{
  "inferences": [
    {
      "type": "entity",
      "entity": {
        "tag": { "value": "car", "confidence": 0.9048132 },
        "box": { "l": 0.42681578, "t": 0.47660735, "w": 0.019501392, "h": 0.020954132 }
      }
    },
    {
      "type": "entity",
      "entity": {
        "tag": { "value": "car", "confidence": 0.8953932 },
        "box": { "l": 0.55083525, "t": 0.4843858, "w": 0.046550274, "h": 0.046502113 }
      }
    }    
  ]
}

Javasoljuk, hogy a válaszokat érvényes JSON-dokumentumok használatával, a következtetési metaadat-séma objektummodellje alapján meghatározott, előre meghatározott sémát követően ad vissza. A séma megfelelő használata biztosítja az együttműködést a Video Analyzer más összetevőivel, például az élő videókban lévő objektumok nyomon követésének képességével, és a videón keresztüli következtetési metaadatok átfedését az itt szemléltetett módon.

Ha a modul olyan választ ad vissza, amelyben a tartalomtípus nem "application/json", a Video Analyzer base 64-tartalomként kódolja az üzenetet, és átlátszatlan JSON-adatként szerializálja.

Ha a modul "application/json" tartalomtípusú választ ad vissza, de a JSON-séma nem követi a fenti következtetési metaadatsémát, az üzenet hasznos adata a folyamaton keresztül lesz továbbítva, de az együttműködési képesség csökken.

Megjegyzés

Ha a következtetési kiszolgáló nem ad eredményt egy adott rendszerképhez, a HTTP 204-es állapotkódot (nincs tartalom) kell visszaadni egy üres választulattal. A Video Analyzer ezt üres eredményként fogja megérteni, és nem továbbítja az eseményt a folyamat során.

Következő lépések

További információ a gRPC bővítmény protokollról