From 10f3cd80150bcd1aee4d04080cc4e954f7df8dc2 Mon Sep 17 00:00:00 2001 From: localai-org-maint-bot Date: Mon, 28 Sep 2026 08:35:19 +0200 Subject: [PATCH] feat(swagger): update swagger (#12308) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: mudler <2420543+mudler@users.noreply.github.com> --- swagger/docs.go | 280 ++++++++++++++++++++++++++++++++++++++++++- swagger/swagger.json | 280 ++++++++++++++++++++++++++++++++++++++++++- swagger/swagger.yaml | 197 +++++++++++++++++++++++++++++- 3 files changed, 754 insertions(+), 3 deletions(-) diff --git a/swagger/docs.go b/swagger/docs.go index c447043ae..0950fdb6c 100644 --- a/swagger/docs.go +++ b/swagger/docs.go @@ -3770,6 +3770,90 @@ const docTemplate = `{ } } }, + "/v1/systemone": { + "post": { + "description": "Runs zero-shot NER over the supplied state and answers each question. Question types: noul (binary entity presence), choice (pick one option), score (pick one level).", + "tags": [ + "systemone" + ], + "summary": "Answer structured-extraction questions over state text.", + "parameters": [ + { + "description": "state + questions", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SystemOneRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/schema.SystemOneResponse" + } + } + } + } + }, + "/v1/systemone/permute": { + "post": { + "description": "Re-runs one choice question under n_perm option orders. Reports per-order probabilities, argmax stability, and spread.", + "tags": [ + "systemone" + ], + "summary": "Re-run a choice question under multiple option orders.", + "parameters": [ + { + "description": "request + question + n_perm + seed", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SystemOnePermuteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/schema.SystemOnePermuteResponse" + } + } + } + } + }, + "/v1/systemone/separate": { + "post": { + "description": "Runs N independent NER passes, one per question, against the same state. Response shape matches /v1/systemone.", + "tags": [ + "systemone" + ], + "summary": "Answer each question in a separate NER pass.", + "parameters": [ + { + "description": "state + questions", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SystemOneRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/schema.SystemOneResponse" + } + } + } + } + }, "/v1/text-to-speech/{voice-id}": { "post": { "tags": [ @@ -4093,8 +4177,16 @@ const docTemplate = `{ "config.Gallery": { "type": "object", "properties": { + "artifact_verification": { + "description": "ArtifactVerification overrides Verification only for the gallery OCI artifact.\nBackend images keep their separate Verification policy.", + "allOf": [ + { + "$ref": "#/definitions/config.GalleryVerification" + } + ] + }, "mirrors": { - "description": "Mirrors are tried in order when URL cannot be fetched. They are a\nfallback for availability, not a load-balancing pool: the primary is\nalways preferred, and a mirror is only consulted after the one before\nit fails. Any URI the gallery loader understands works here\n(https://, github:, file://).", + "description": "Mirrors are tried in order when URL cannot be fetched. They are a\nfallback for availability, not a load-balancing pool: the primary is\nalways preferred, and a mirror is only consulted after the one before\nit fails. Any URI the gallery loader understands works here\n(https://, github:, file://, oci://).", "type": "array", "items": { "type": "string" @@ -4129,6 +4221,10 @@ const docTemplate = `{ "not_before": { "description": "NotBefore is an RFC3339 timestamp. Empty disables the time check.", "type": "string" + }, + "source_repository": { + "description": "SourceRepository is an https URL compared exactly against the\ncertificate's source-repository extension. Empty skips the check.", + "type": "string" } } }, @@ -7811,12 +7907,42 @@ const docTemplate = `{ "id": { "type": "string" }, + "process": { + "description": "Process is the backend process serving the model on this host. Absent\nwhen the model has no local process (a distributed worker holds it) or\nthe process could not be read.", + "allOf": [ + { + "$ref": "#/definitions/schema.SysInfoProcess" + } + ] + }, "size_vram": { "description": "SizeVRAM is DRM-accounted resident device memory in bytes. Nil means\nthe backend process tree has no complete supported reading.", "type": "integer" } } }, + "schema.SysInfoProcess": { + "type": "object", + "properties": { + "cpu_percent": { + "description": "CPUPercent is the share of the whole host's CPU used since the previous\nreading, 0-100. Absent on the first reading of a process.", + "type": "number" + }, + "memory_percent": { + "type": "number" + }, + "pid": { + "type": "integer" + }, + "rss_bytes": { + "description": "RSSBytes is resident host memory. Weights offloaded to a GPU are not\nin it.", + "type": "integer" + }, + "started_at": { + "type": "string" + } + } + }, "schema.SystemInformationResponse": { "type": "object", "properties": { @@ -7836,6 +7962,158 @@ const docTemplate = `{ } } }, + "schema.SystemOneAnswer": { + "type": "object", + "properties": { + "choice": { + "type": "string" + }, + "confidence": { + "type": "number" + }, + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.SystemOneEntity" + } + }, + "legend": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "noul": { + "type": "number" + }, + "probabilities": { + "type": "object", + "additionalProperties": { + "type": "number", + "format": "float64" + } + }, + "score": { + "type": "number" + }, + "type": { + "type": "string" + } + } + }, + "schema.SystemOneEntity": { + "type": "object", + "properties": { + "confidence": { + "type": "number" + }, + "end": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "text": { + "type": "string" + } + } + }, + "schema.SystemOnePermuteRequest": { + "type": "object", + "properties": { + "n_perm": { + "type": "integer" + }, + "question": { + "type": "string" + }, + "request": { + "$ref": "#/definitions/schema.SystemOneRequest" + }, + "seed": { + "type": "integer" + } + } + }, + "schema.SystemOnePermuteResponse": { + "type": "object", + "properties": { + "argmax_stable": { + "type": "boolean" + }, + "runs": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.SystemOnePermuteRun" + } + }, + "spread": { + "type": "object", + "additionalProperties": { + "type": "number", + "format": "float64" + } + } + } + }, + "schema.SystemOnePermuteRun": { + "type": "object", + "properties": { + "choice": { + "type": "string" + }, + "latency_ms": { + "type": "number" + }, + "order": { + "type": "array", + "items": { + "type": "string" + } + }, + "probabilities": { + "type": "object", + "additionalProperties": { + "type": "number", + "format": "float64" + } + } + } + }, + "schema.SystemOneRequest": { + "type": "object" + }, + "schema.SystemOneResponse": { + "type": "object", + "properties": { + "answers": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/schema.SystemOneAnswer" + } + }, + "latency_ms": { + "type": "number" + }, + "model": { + "type": "string" + }, + "usage": { + "$ref": "#/definitions/schema.SystemOneUsage" + } + } + }, + "schema.SystemOneUsage": { + "type": "object", + "properties": { + "input_tokens": { + "type": "integer" + }, + "output_tokens": { + "type": "integer" + } + } + }, "schema.TTSRequest": { "description": "TTS request body", "type": "object", diff --git a/swagger/swagger.json b/swagger/swagger.json index b4e49b347..06d6c2c8d 100644 --- a/swagger/swagger.json +++ b/swagger/swagger.json @@ -3767,6 +3767,90 @@ } } }, + "/v1/systemone": { + "post": { + "description": "Runs zero-shot NER over the supplied state and answers each question. Question types: noul (binary entity presence), choice (pick one option), score (pick one level).", + "tags": [ + "systemone" + ], + "summary": "Answer structured-extraction questions over state text.", + "parameters": [ + { + "description": "state + questions", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SystemOneRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/schema.SystemOneResponse" + } + } + } + } + }, + "/v1/systemone/permute": { + "post": { + "description": "Re-runs one choice question under n_perm option orders. Reports per-order probabilities, argmax stability, and spread.", + "tags": [ + "systemone" + ], + "summary": "Re-run a choice question under multiple option orders.", + "parameters": [ + { + "description": "request + question + n_perm + seed", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SystemOnePermuteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/schema.SystemOnePermuteResponse" + } + } + } + } + }, + "/v1/systemone/separate": { + "post": { + "description": "Runs N independent NER passes, one per question, against the same state. Response shape matches /v1/systemone.", + "tags": [ + "systemone" + ], + "summary": "Answer each question in a separate NER pass.", + "parameters": [ + { + "description": "state + questions", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SystemOneRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/schema.SystemOneResponse" + } + } + } + } + }, "/v1/text-to-speech/{voice-id}": { "post": { "tags": [ @@ -4090,8 +4174,16 @@ "config.Gallery": { "type": "object", "properties": { + "artifact_verification": { + "description": "ArtifactVerification overrides Verification only for the gallery OCI artifact.\nBackend images keep their separate Verification policy.", + "allOf": [ + { + "$ref": "#/definitions/config.GalleryVerification" + } + ] + }, "mirrors": { - "description": "Mirrors are tried in order when URL cannot be fetched. They are a\nfallback for availability, not a load-balancing pool: the primary is\nalways preferred, and a mirror is only consulted after the one before\nit fails. Any URI the gallery loader understands works here\n(https://, github:, file://).", + "description": "Mirrors are tried in order when URL cannot be fetched. They are a\nfallback for availability, not a load-balancing pool: the primary is\nalways preferred, and a mirror is only consulted after the one before\nit fails. Any URI the gallery loader understands works here\n(https://, github:, file://, oci://).", "type": "array", "items": { "type": "string" @@ -4126,6 +4218,10 @@ "not_before": { "description": "NotBefore is an RFC3339 timestamp. Empty disables the time check.", "type": "string" + }, + "source_repository": { + "description": "SourceRepository is an https URL compared exactly against the\ncertificate's source-repository extension. Empty skips the check.", + "type": "string" } } }, @@ -7808,12 +7904,42 @@ "id": { "type": "string" }, + "process": { + "description": "Process is the backend process serving the model on this host. Absent\nwhen the model has no local process (a distributed worker holds it) or\nthe process could not be read.", + "allOf": [ + { + "$ref": "#/definitions/schema.SysInfoProcess" + } + ] + }, "size_vram": { "description": "SizeVRAM is DRM-accounted resident device memory in bytes. Nil means\nthe backend process tree has no complete supported reading.", "type": "integer" } } }, + "schema.SysInfoProcess": { + "type": "object", + "properties": { + "cpu_percent": { + "description": "CPUPercent is the share of the whole host's CPU used since the previous\nreading, 0-100. Absent on the first reading of a process.", + "type": "number" + }, + "memory_percent": { + "type": "number" + }, + "pid": { + "type": "integer" + }, + "rss_bytes": { + "description": "RSSBytes is resident host memory. Weights offloaded to a GPU are not\nin it.", + "type": "integer" + }, + "started_at": { + "type": "string" + } + } + }, "schema.SystemInformationResponse": { "type": "object", "properties": { @@ -7833,6 +7959,158 @@ } } }, + "schema.SystemOneAnswer": { + "type": "object", + "properties": { + "choice": { + "type": "string" + }, + "confidence": { + "type": "number" + }, + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.SystemOneEntity" + } + }, + "legend": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "noul": { + "type": "number" + }, + "probabilities": { + "type": "object", + "additionalProperties": { + "type": "number", + "format": "float64" + } + }, + "score": { + "type": "number" + }, + "type": { + "type": "string" + } + } + }, + "schema.SystemOneEntity": { + "type": "object", + "properties": { + "confidence": { + "type": "number" + }, + "end": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "text": { + "type": "string" + } + } + }, + "schema.SystemOnePermuteRequest": { + "type": "object", + "properties": { + "n_perm": { + "type": "integer" + }, + "question": { + "type": "string" + }, + "request": { + "$ref": "#/definitions/schema.SystemOneRequest" + }, + "seed": { + "type": "integer" + } + } + }, + "schema.SystemOnePermuteResponse": { + "type": "object", + "properties": { + "argmax_stable": { + "type": "boolean" + }, + "runs": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.SystemOnePermuteRun" + } + }, + "spread": { + "type": "object", + "additionalProperties": { + "type": "number", + "format": "float64" + } + } + } + }, + "schema.SystemOnePermuteRun": { + "type": "object", + "properties": { + "choice": { + "type": "string" + }, + "latency_ms": { + "type": "number" + }, + "order": { + "type": "array", + "items": { + "type": "string" + } + }, + "probabilities": { + "type": "object", + "additionalProperties": { + "type": "number", + "format": "float64" + } + } + } + }, + "schema.SystemOneRequest": { + "type": "object" + }, + "schema.SystemOneResponse": { + "type": "object", + "properties": { + "answers": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/schema.SystemOneAnswer" + } + }, + "latency_ms": { + "type": "number" + }, + "model": { + "type": "string" + }, + "usage": { + "$ref": "#/definitions/schema.SystemOneUsage" + } + } + }, + "schema.SystemOneUsage": { + "type": "object", + "properties": { + "input_tokens": { + "type": "integer" + }, + "output_tokens": { + "type": "integer" + } + } + }, "schema.TTSRequest": { "description": "TTS request body", "type": "object", diff --git a/swagger/swagger.yaml b/swagger/swagger.yaml index 34fcfc8d7..1337afa9a 100644 --- a/swagger/swagger.yaml +++ b/swagger/swagger.yaml @@ -2,13 +2,19 @@ basePath: / definitions: config.Gallery: properties: + artifact_verification: + allOf: + - $ref: '#/definitions/config.GalleryVerification' + description: |- + ArtifactVerification overrides Verification only for the gallery OCI artifact. + Backend images keep their separate Verification policy. mirrors: description: |- Mirrors are tried in order when URL cannot be fetched. They are a fallback for availability, not a load-balancing pool: the primary is always preferred, and a mirror is only consulted after the one before it fails. Any URI the gallery loader understands works here - (https://, github:, file://). + (https://, github:, file://, oci://). items: type: string type: array @@ -32,6 +38,11 @@ definitions: not_before: description: NotBefore is an RFC3339 timestamp. Empty disables the time check. type: string + source_repository: + description: |- + SourceRepository is an https URL compared exactly against the + certificate's source-repository extension. Empty skips the check. + type: string type: object config.TTSVoice: properties: @@ -2654,12 +2665,38 @@ definitions: type: string id: type: string + process: + allOf: + - $ref: '#/definitions/schema.SysInfoProcess' + description: |- + Process is the backend process serving the model on this host. Absent + when the model has no local process (a distributed worker holds it) or + the process could not be read. size_vram: description: |- SizeVRAM is DRM-accounted resident device memory in bytes. Nil means the backend process tree has no complete supported reading. type: integer type: object + schema.SysInfoProcess: + properties: + cpu_percent: + description: |- + CPUPercent is the share of the whole host's CPU used since the previous + reading, 0-100. Absent on the first reading of a process. + type: number + memory_percent: + type: number + pid: + type: integer + rss_bytes: + description: |- + RSSBytes is resident host memory. Weights offloaded to a GPU are not + in it. + type: integer + started_at: + type: string + type: object schema.SystemInformationResponse: properties: backends: @@ -2673,6 +2710,106 @@ definitions: $ref: '#/definitions/schema.SysInfoModel' type: array type: object + schema.SystemOneAnswer: + properties: + choice: + type: string + confidence: + type: number + entities: + items: + $ref: '#/definitions/schema.SystemOneEntity' + type: array + legend: + additionalProperties: + type: string + type: object + noul: + type: number + probabilities: + additionalProperties: + format: float64 + type: number + type: object + score: + type: number + type: + type: string + type: object + schema.SystemOneEntity: + properties: + confidence: + type: number + end: + type: integer + start: + type: integer + text: + type: string + type: object + schema.SystemOnePermuteRequest: + properties: + n_perm: + type: integer + question: + type: string + request: + $ref: '#/definitions/schema.SystemOneRequest' + seed: + type: integer + type: object + schema.SystemOnePermuteResponse: + properties: + argmax_stable: + type: boolean + runs: + items: + $ref: '#/definitions/schema.SystemOnePermuteRun' + type: array + spread: + additionalProperties: + format: float64 + type: number + type: object + type: object + schema.SystemOnePermuteRun: + properties: + choice: + type: string + latency_ms: + type: number + order: + items: + type: string + type: array + probabilities: + additionalProperties: + format: float64 + type: number + type: object + type: object + schema.SystemOneRequest: + type: object + schema.SystemOneResponse: + properties: + answers: + additionalProperties: + $ref: '#/definitions/schema.SystemOneAnswer' + type: object + latency_ms: + type: number + model: + type: string + usage: + $ref: '#/definitions/schema.SystemOneUsage' + type: object + schema.SystemOneUsage: + properties: + input_tokens: + type: integer + output_tokens: + type: integer + type: object schema.TTSRequest: description: TTS request body properties: @@ -5672,6 +5809,64 @@ paths: summary: Generates audio from the input text. tags: - audio + /v1/systemone: + post: + description: 'Runs zero-shot NER over the supplied state and answers each question. + Question types: noul (binary entity presence), choice (pick one option), score + (pick one level).' + parameters: + - description: state + questions + in: body + name: request + required: true + schema: + $ref: '#/definitions/schema.SystemOneRequest' + responses: + "200": + description: OK + schema: + $ref: '#/definitions/schema.SystemOneResponse' + summary: Answer structured-extraction questions over state text. + tags: + - systemone + /v1/systemone/permute: + post: + description: Re-runs one choice question under n_perm option orders. Reports + per-order probabilities, argmax stability, and spread. + parameters: + - description: request + question + n_perm + seed + in: body + name: request + required: true + schema: + $ref: '#/definitions/schema.SystemOnePermuteRequest' + responses: + "200": + description: OK + schema: + $ref: '#/definitions/schema.SystemOnePermuteResponse' + summary: Re-run a choice question under multiple option orders. + tags: + - systemone + /v1/systemone/separate: + post: + description: Runs N independent NER passes, one per question, against the same + state. Response shape matches /v1/systemone. + parameters: + - description: state + questions + in: body + name: request + required: true + schema: + $ref: '#/definitions/schema.SystemOneRequest' + responses: + "200": + description: OK + schema: + $ref: '#/definitions/schema.SystemOneResponse' + summary: Answer each question in a separate NER pass. + tags: + - systemone /v1/text-to-speech/{voice-id}: post: parameters: