Skip to content

Add supports for models #61

Open
Open
@MihaMarkic

Description

Support for posting and retrieving models

Specs
Prikaz modelskih napovedi omogoča zajem in prikaz modelskih napovedi. Za posredovanje podatko sta na voljo dva API-ja:

  • API za zajem podatkov modelskih napovedi
  • API za posredovanje podatkov modelskih napovedi

API za zajem podatkov

Klienti pošljejo podatke s POST zahtevkom. Vsebina telesa zahtevka je modelska predikcija v CSV obliki, zahtevek pa mora biti opremljen še z naslednjimi query parametri:

  • id: ID modela
  • date: datum napovedi
  • signature: hash ID modela + shared secret (za zagotavljanje identite)
  • scenario: scenarij modela
  • intervalType: (INTERVAL_ZAUPANJA | VERJETNOSTNI_INTERVAL) option
  • intervalWidth: (50 | 95) option

Scenarij lahko zavzame naslednje vrednosti:

  • BREZ_NOVIH_OKUZB - Brez novih okuzb. Kaj imamo ze na “zalogi”?
  • STACINOARNO_STANJE - Stacinoarno stanje, kot je sedaj.
  • POJEMANJE_10 - 10% pojemanje (kar vi si zeleli, pa tega ni)
  • POJEMANJE_40 - 40% pojemanje kot v prvem valu
  • ODPRTJE - Scenarij, ce odpremo karanteno, ko se malo pademo in greco exponentno v 3 val.

Stolpci (polja) v CSV datoteki so: date, deceased, deceasedLowerBound, deceasedUpperBound, deceasedToDate, deceasedToDateLowerBound, deceasedToDateUpperBound, icu, icuLowerBound, icuUpperBound, hospitalized, hospitalizedLowerBound, hospitalizedUpperBound

Če se za isti model, dan, scenarij, intervalType in intervalWidth pošlje ponovno napoved se stara napoved prepiše.

Če se bodo izvorni podatki shranjevali kot CSV datoteke mora biti direktorijska/imenska sktuktura dovolj bogata in fleksibilna, da podpre različne tipe in (potencialno) njihovo evolucijo. Na primer:

//////data.json

API za posredovanje podatkov

API ponuja tri endpointe:

  • Ali so podatki za tekoči dan zaključeni (pripravljeni) (READY)
  • Seznam modelov, ki so na voljo (MODELS)
  • Podatki napovedi modelov (DATA)

Struktura API-ja:

  • /ready/ - timestamp option
  • /models/ - vrne seznam vseh aktivnih modelov
  • /models/predictions/2020-08-01/ - vrne napovedi vseh aktivnih modelov za izbrani dan

MODELS endpoint vrača JSON podatke oblike (za točnapolja glej shemo):

[
{
"id": "20540b1c-a7b6-4e45-bd57-9d60f1cdf28f",
"name": "My precious model",
"code": "https://github.com/zaplotnik/korona",
"homepage": "https://arxiv.org/pdf/2005.13282.pdf"
}
]

Podatki so lahko v JSON ali CSV obliki.

DATA endpoint vrača podatke oblike:

[
"modelId": "20540b1c-a7b6-4e45-bd57-9d60f1cdf28f",
"date": "2020-11-04",
"scenario": "(BREZ_NOVIH_OKUZB | ...)",
"interval": {
"intervalType": "(INTERVAL_ZAUPANJA | VERJETNOSTNI_INTERVAL) option",
"intervalTypeWidth": "(50 | 95) option" }
"data":
[
{
"date": "2020-08-01",
"deceased": "int",
"deceasedLowerBound": "int option",
"deceasedUpperBound": "int option",
"deceasedToDate": "int",
"deceasedToDateLowerBound": "int option",
"deceasedToDateUpperBound": "int option",
"icu": "int",
"icuLowerBound": "int option",
"icuUpperBound": "int option",
"hospitalized": "int",
"hospitalizedLowerBound": "int option",
"hospitalizedUpperBound": "int option"
}
...
]
]

Podatki so lahko v JSON ali CSV obliki.

Predlog: v obliki CSV je telo odgovora data, metapodatki modelId, date ... pa se posredujejo kot response headers.

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions