diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1835e8e6071a3d293ff7f09eb52a67266e550fc2..0855240488d39cd46eba980116b6e3293c680225 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -51,3 +51,13 @@ mypy: # paths: [gl-code-quality-report.json] reports: codequality: gl-code-quality-report.json + +pages: + image: ruby:2.7 + script: + - gem install bundler + - bundle install + - bundle exec jekyll build -d public + artifacts: + paths: + - public diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000000000000000000000000000000000000..c99d6dd1146f031725734b03b147dcc37043f790 --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source "https://rubygems.org" + +gem "jekyll" diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..f247e185c7cb4f2bdcd8c38d0b2b74f32b2a3310 --- /dev/null +++ b/public/index.html @@ -0,0 +1,2134 @@ +<!doctype html> +<html> + <head> + <title>FastAPI</title> + <style type="text/css"> + body { + font-family: Trebuchet MS, sans-serif; + font-size: 15px; + color: #444; + margin-right: 24px; + } + + h1 { + font-size: 25px; + } + h2 { + font-size: 20px; + } + h3 { + font-size: 16px; + font-weight: bold; + } + hr { + height: 1px; + border: 0; + color: #ddd; + background-color: #ddd; + } + + .app-desc { + clear: both; + margin-left: 20px; + } + .param-name { + width: 100%; + } + .license-info { + margin-left: 20px; + } + + .license-url { + margin-left: 20px; + } + + .model { + margin: 0 0 0px 20px; + } + + .method { + margin-left: 20px; + } + + .method-notes { + margin: 10px 0 20px 0; + font-size: 90%; + color: #555; + } + + pre { + padding: 10px; + margin-bottom: 2px; + } + + .http-method { + text-transform: uppercase; + } + + pre.get { + background-color: #0f6ab4; + } + + pre.post { + background-color: #10a54a; + } + + pre.put { + background-color: #c5862b; + } + + pre.delete { + background-color: #a41e22; + } + + .huge { + color: #fff; + } + + pre.example { + background-color: #f3f3f3; + padding: 10px; + border: 1px solid #ddd; + } + + code { + white-space: pre; + } + + .nickname { + font-weight: bold; + } + + .method-path { + font-size: 1.5em; + background-color: #0f6ab4; + } + + .up { + float:right; + } + + .parameter { + width: 500px; + } + + .param { + width: 500px; + padding: 10px 0 0 20px; + font-weight: bold; + } + + .param-desc { + width: 700px; + padding: 0 0 0 20px; + color: #777; + } + + .param-type { + font-style: italic; + } + + .param-enum-header { + width: 700px; + padding: 0 0 0 60px; + color: #777; + font-weight: bold; + } + + .param-enum { + width: 700px; + padding: 0 0 0 80px; + color: #777; + font-style: italic; + } + + .field-label { + padding: 0; + margin: 0; + clear: both; + } + + .field-items { + padding: 0 0 15px 0; + margin-bottom: 15px; + } + + .return-type { + clear: both; + padding-bottom: 10px; + } + + .param-header { + font-weight: bold; + } + + .method-tags { + text-align: right; + } + + .method-tag { + background: none repeat scroll 0% 0% #24A600; + border-radius: 3px; + padding: 2px 10px; + margin: 2px; + color: #FFF; + display: inline-block; + text-decoration: none; + } + </style> + </head> + <body> + <h1>FastAPI</h1> + <div class="app-desc">No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)</div> + <div class="app-desc">More information: <a href="https://helloreverb.com">https://helloreverb.com</a></div> + <div class="app-desc">Contact Info: <a href="hello@helloreverb.com">hello@helloreverb.com</a></div> + <div class="app-desc">Version: 0.1.0</div> + + <div class="license-info">All rights reserved</div> + <div class="license-url">http://apache.org/licenses/LICENSE-2.0.html</div> + <h2>Access</h2> + <ol> + <li>OAuth AuthorizationUrl:TokenUrl:/v1/auth/token</li> + </ol> + + <h2><a name="__Methods">Methods</a></h2> + [ Jump to <a href="#__Models">Models</a> ] + + <h3>Table of Contents </h3> + <div class="method-summary"></div> + <h4><a href="#Audio">Audio</a></h4> + <ul> + <li><a href="#downloadAudioFileV1AudioDownloadGet"><code><span class="http-method">get</span> /v1/audio/download</code></a></li> + <li><a href="#extractTextFromAudioV1AudioExtractTaskPost"><code><span class="http-method">post</span> /v1/audio/extract/task</code></a></li> + <li><a href="#getAudioProcessingModelsV1AudioModelsGet"><code><span class="http-method">get</span> /v1/audio/models</code></a></li> + <li><a href="#getExtractedResultsV1AudioExtractResultGet"><code><span class="http-method">get</span> /v1/audio/extract/result</code></a></li> + <li><a href="#getResponseV1AudioProcessResultGet"><code><span class="http-method">get</span> /v1/audio/process/result</code></a></li> + <li><a href="#processAudioV1AudioProcessTaskPost"><code><span class="http-method">post</span> /v1/audio/process/task</code></a></li> + <li><a href="#uploadAudioFileV1AudioUploadPost"><code><span class="http-method">post</span> /v1/audio/upload</code></a></li> + </ul> + <h4><a href="#Auth">Auth</a></h4> + <ul> + <li><a href="#loginForAccessTokenV1AuthTokenPost"><code><span class="http-method">post</span> /v1/auth/token</code></a></li> + <li><a href="#readUsersMeV1AuthUsersMeGet"><code><span class="http-method">get</span> /v1/auth/users/me</code></a></li> + <li><a href="#registerUserV1AuthRegisterPut"><code><span class="http-method">put</span> /v1/auth/register</code></a></li> + </ul> + <h4><a href="#Comparison">Comparison</a></h4> + <ul> + <li><a href="#compareAudioToImageV1ComparisonAudioImageTaskPost"><code><span class="http-method">post</span> /v1/comparison/audio/image/task</code></a></li> + <li><a href="#compareAudioToTextV1ComparisonAudioTextTaskPost"><code><span class="http-method">post</span> /v1/comparison/audio/text/task</code></a></li> + <li><a href="#getAudioImageComparisonResultV1ComparisonAudioImageResultGet"><code><span class="http-method">get</span> /v1/comparison/audio/image/result</code></a></li> + <li><a href="#getAudioTextComparisonResultV1ComparisonAudioTextResultGet"><code><span class="http-method">get</span> /v1/comparison/audio/text/result</code></a></li> + </ul> + <h4><a href="#Image">Image</a></h4> + <ul> + <li><a href="#downloadImageFileV1ImageDownloadGet"><code><span class="http-method">get</span> /v1/image/download</code></a></li> + <li><a href="#getModelsV1ImageModelsGet"><code><span class="http-method">get</span> /v1/image/models</code></a></li> + <li><a href="#getResponseV1ImageProcessResultGet"><code><span class="http-method">get</span> /v1/image/process/result</code></a></li> + <li><a href="#processImageV1ImageProcessTaskPost"><code><span class="http-method">post</span> /v1/image/process/task</code></a></li> + <li><a href="#uploadImageV1ImageUploadPost"><code><span class="http-method">post</span> /v1/image/upload</code></a></li> + </ul> + <h4><a href="#Task">Task</a></h4> + <ul> + <li><a href="#getJobResultV1TaskResultGet"><code><span class="http-method">get</span> /v1/task/result</code></a></li> + <li><a href="#getJobStatusV1TaskStatusGet"><code><span class="http-method">get</span> /v1/task/status</code></a></li> + </ul> + + <h1><a name="Audio">Audio</a></h1> + <div class="method"><a name="downloadAudioFileV1AudioDownloadGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/audio/download</code></pre></div> + <div class="method-summary">The endpoint <code>/download</code> allows to download audio file by given uuid. (<span class="nickname">downloadAudioFileV1AudioDownloadGet</span>)</div> + <div class="method-notes"><p>The endpoint <code>/download</code> takes a file UUID as input, checks if the file exists in the +audio directory, and returns the file as bytes (<code>.mp3</code> format). If file does not exist, returns 404 HTTP response code</p> +<p>Responses:</p> +<ul> +<li>200, file bytes (<code>.mp3</code> format)</li> +</ul> +</div> + + + + + + <h3 class="field-label">Query parameters</h3> + <div class="field-items"> + <div class="param">file (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — format: uuid</div> </div> <!-- field-items --> + + + + <!--Todo: process Response Object and its headers, schema, examples --> + + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#"></a> + <h4 class="field-label">404</h4> + The specified file was not found. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"File not found"}</code></pre> + <h4 class="field-label">422</h4> + Validation Error + <a href="#HTTPValidationError">HTTPValidationError</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="extractTextFromAudioV1AudioExtractTaskPost"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="post"><code class="huge"><span class="http-method">post</span> /v1/audio/extract/task</code></pre></div> + <div class="method-summary">The endpoint <code>/split</code> extract specified phrases from given audio +file using specified given audio model (<span class="nickname">extractTextFromAudioV1AudioExtractTaskPost</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>audio_file</strong>: an uuid of file to process</li> +<li><strong>audio_model</strong>: an audio processing model name (check '<em>/models</em>' for available models)</li> +</ul> +<p>Responses:</p> +<ul> +<li>404, No such audio file available</li> +<li>404, No such audio model available</li> +</ul> +</div> + + + <h3 class="field-label">Consumes</h3> + This API call consumes the following media types via the <span class="header">Content-Type</span> request header: + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Request body</h3> + <div class="field-items"> + <div class="param">body <a href="#AudioExtractPhrasesRequest">AudioExtractPhrasesRequest</a> (required)</div> + + <div class="param-desc"><span class="param-type">Body Parameter</span> — </div> + </div> <!-- field-items --> + + + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#TaskCreateResponse">TaskCreateResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "task_id" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Task was successfully created and scheduled + <a href="#TaskCreateResponse">TaskCreateResponse</a> + <h4 class="field-label">404</h4> + The specified file or model was not found. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"No such audio file available"}</code></pre> + <h4 class="field-label">422</h4> + Validation Error + <a href="#HTTPValidationError">HTTPValidationError</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="getAudioProcessingModelsV1AudioModelsGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/audio/models</code></pre></div> + <div class="method-summary">The endpoint /models returns available (loaded) audio models. (<span class="nickname">getAudioProcessingModelsV1AudioModelsGet</span>)</div> + <div class="method-notes">Returns list of models, which are loaded into the worker and available for usage.</div> + + + + + + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#ModelsDataReponse">ModelsDataReponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "models" : [ { + "languages" : [ "languages", "languages" ], + "name" : "name", + "description" : "description" + }, { + "languages" : [ "languages", "languages" ], + "name" : "name", + "description" : "description" + } ] +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + List of available models + <a href="#ModelsDataReponse">ModelsDataReponse</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="getExtractedResultsV1AudioExtractResultGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/audio/extract/result</code></pre></div> + <div class="method-summary">The endpoint <code>/result</code> retrieves the result of an audio +extracting task from task system and returns it. (<span class="nickname">getExtractedResultsV1AudioExtractResultGet</span>)</div> + <div class="method-notes"></div> + + + + + + <h3 class="field-label">Query parameters</h3> + <div class="field-items"> + <div class="param">task_id (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — format: uuid</div> </div> <!-- field-items --> + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#AudioExtractPhrasesResponse">AudioExtractPhrasesResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "data" : [ { + "audio_segment" : { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + }, + "found" : true, + "phrase" : "phrase" + }, { + "audio_segment" : { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + }, + "found" : true, + "phrase" : "phrase" + } ] +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#AudioExtractPhrasesResponse">AudioExtractPhrasesResponse</a> + <h4 class="field-label">406</h4> + It is impossible to get task result (task does not exist or it has not finished yet). + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"The job is non-existent or not done"}</code></pre> + <h4 class="field-label">422</h4> + The specified task is not audio extraction task. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"There is no such audio extraction task"}</code></pre> + </div> <!-- method --> + <hr/> + <div class="method"><a name="getResponseV1AudioProcessResultGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/audio/process/result</code></pre></div> + <div class="method-summary">The endpoint <code>/result</code> retrieves the result of an audio +processing task from task system and returns it. (<span class="nickname">getResponseV1AudioProcessResultGet</span>)</div> + <div class="method-notes"><p>Responses:</p> +<ul> +<li>200, returns a processing result in the format:</li> +</ul> +<pre><code class="language-js">{ + "text": "string", // total extracted text + "segments": [ // list of audio segments + { + "start": 0.0, // absolute timecode (in seconds) of the beginning of the segment + "end": 10.0, // absolute timecode (in seconds) of the beginning of the segment + "text": "string", // text, which was extracted from the segment + "file": "3fa85f64-5717-4562-b3fc-2c963f66afa6" // file uuid of the audio segment (for downloading) + } + ] +} +</code></pre> +<ul> +<li>406, is impossible to get task result (task does not exist or it has not finished yet).</li> +<li>422, if the task was not created as audio processing task</li> +</ul> +</div> + + + + + + <h3 class="field-label">Query parameters</h3> + <div class="field-items"> + <div class="param">task_id (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — format: uuid</div> </div> <!-- field-items --> + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#AudioProcessingResponse">AudioProcessingResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "text" : "text", + "segments" : [ { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + }, { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + } ] +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#AudioProcessingResponse">AudioProcessingResponse</a> + <h4 class="field-label">406</h4> + It is impossible to get task result (task does not exist or it has not finished yet). + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"The job is non-existent or not done"}</code></pre> + <h4 class="field-label">422</h4> + The specified task is not audio processing task. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"There is no such audio processing task"}</code></pre> + </div> <!-- method --> + <hr/> + <div class="method"><a name="processAudioV1AudioProcessTaskPost"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="post"><code class="huge"><span class="http-method">post</span> /v1/audio/process/task</code></pre></div> + <div class="method-summary">The endpoint <code>/process</code> creates an audio processing task based on the given request parameters. (<span class="nickname">processAudioV1AudioProcessTaskPost</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>audio_file</strong>: an uuid of file to process</li> +<li><strong>audio_model</strong>: an audio processing model name (check '<em>/models</em>' for available models)</li> +</ul> +<p>Responses:</p> +<ul> +<li>404, No such audio file available</li> +<li>404, No such audio model available</li> +</ul> +</div> + + + <h3 class="field-label">Consumes</h3> + This API call consumes the following media types via the <span class="header">Content-Type</span> request header: + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Request body</h3> + <div class="field-items"> + <div class="param">body <a href="#AudioProcessingRequest">AudioProcessingRequest</a> (required)</div> + + <div class="param-desc"><span class="param-type">Body Parameter</span> — </div> + </div> <!-- field-items --> + + + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#TaskCreateResponse">TaskCreateResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "task_id" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Task was successfully created and scheduled + <a href="#TaskCreateResponse">TaskCreateResponse</a> + <h4 class="field-label">404</h4> + The specified file or model was not found. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"No such audio file available"}</code></pre> + <h4 class="field-label">422</h4> + Validation Error + <a href="#HTTPValidationError">HTTPValidationError</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="uploadAudioFileV1AudioUploadPost"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="post"><code class="huge"><span class="http-method">post</span> /v1/audio/upload</code></pre></div> + <div class="method-summary">The endpoint /upload allows clients to upload audio files and returns a unique file ID. (<span class="nickname">uploadAudioFileV1AudioUploadPost</span>)</div> + <div class="method-notes"><p>The endpoint validates file based on +<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types">MIME types specification</a>. +The endpoint converts audio file into <code>.mp3</code> format.</p> +<p>Parameters:</p> +<ul> +<li><strong>upload_file</strong>: The audio file to upload</li> +</ul> +<p>List of the most important allowed extensions:</p> +<ul> +<li>.acc</li> +<li>.mp3</li> +<li>.m4a</li> +<li>.oga, .ogv</li> +<li>.ogg</li> +<li>.opus</li> +<li>.wav</li> +</ul> +</div> + + + <h3 class="field-label">Consumes</h3> + This API call consumes the following media types via the <span class="header">Content-Type</span> request header: + <ul> + <li><code>multipart/form-data</code></li> + </ul> + + + + + <h3 class="field-label">Form parameters</h3> + <div class="field-items"> + <div class="param">upload_file (required)</div> + + <div class="param-desc"><span class="param-type">Form Parameter</span> — format: binary</div> </div> <!-- field-items --> + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#UploadFileResponse">UploadFileResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "file_id" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + The file is uploaded successfully + <a href="#UploadFileResponse">UploadFileResponse</a> + <h4 class="field-label">422</h4> + The file was not sent or the file has unallowed extension + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"Only audio files uploads are allowed"}</code></pre> + </div> <!-- method --> + <hr/> + <h1><a name="Auth">Auth</a></h1> + <div class="method"><a name="loginForAccessTokenV1AuthTokenPost"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="post"><code class="huge"><span class="http-method">post</span> /v1/auth/token</code></pre></div> + <div class="method-summary">The endpoint <code>/token</code> handles the login process and returns an +access token for the authenticated user. (<span class="nickname">loginForAccessTokenV1AuthTokenPost</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>username</strong> - unique username, which the client has provided while registering</li> +<li><strong>password</strong> - client's password</li> +</ul> +<p>Responses:</p> +<ul> +<li>401, incorrect username or password</li> +<li>200, token</li> +</ul> +</div> + + + <h3 class="field-label">Consumes</h3> + This API call consumes the following media types via the <span class="header">Content-Type</span> request header: + <ul> + <li><code>application/x-www-form-urlencoded</code></li> + </ul> + + + + + <h3 class="field-label">Form parameters</h3> + <div class="field-items"> + <div class="param">grant_type (required)</div> + + <div class="param-desc"><span class="param-type">Form Parameter</span> — </div> <div class="param">username (required)</div> + + <div class="param-desc"><span class="param-type">Form Parameter</span> — </div> <div class="param">password (required)</div> + + <div class="param-desc"><span class="param-type">Form Parameter</span> — </div> <div class="param">scope (required)</div> + + <div class="param-desc"><span class="param-type">Form Parameter</span> — </div> <div class="param">client_id (required)</div> + + <div class="param-desc"><span class="param-type">Form Parameter</span> — </div> <div class="param">client_secret (required)</div> + + <div class="param-desc"><span class="param-type">Form Parameter</span> — </div> </div> <!-- field-items --> + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#Token">Token</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "access_token" : "access_token", + "token_type" : "token_type" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#Token">Token</a> + <h4 class="field-label">401</h4> + Incorrect username or password. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"Incorrect username or password"}</code></pre> + <h4 class="field-label">422</h4> + Validation Error + <a href="#HTTPValidationError">HTTPValidationError</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="readUsersMeV1AuthUsersMeGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/auth/users/me</code></pre></div> + <div class="method-summary">The endpoint <code>/users/me</code> returns the current user. (<span class="nickname">readUsersMeV1AuthUsersMeGet</span>)</div> + <div class="method-notes"></div> + + + + + + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#User">User</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "full_name" : "full_name", + "disabled" : true, + "email" : "email", + "username" : "username" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#User">User</a> + <h4 class="field-label">400</h4> + User is inactive + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"Inactive user"}</code></pre> + <h4 class="field-label">401</h4> + Could not validate credentials + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"Could not validate credentials"}</code></pre> + </div> <!-- method --> + <hr/> + <div class="method"><a name="registerUserV1AuthRegisterPut"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="put"><code class="huge"><span class="http-method">put</span> /v1/auth/register</code></pre></div> + <div class="method-summary">The endpoint <code>/register</code> registers a new user by storing their username, password, email, and +full name in a Redis database. (<span class="nickname">registerUserV1AuthRegisterPut</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>username</strong>: The "username: parameter is a string representing the username of the user being registered</li> +<li><strong>password</strong>: The "password" parameter is a string that represents the user's password</li> +<li><strong>email</strong>: The "email" parameter is an optional string that represents the email address of the user</li> +<li><strong>full_name</strong>: The "full_name" parameter is an optional parameter that represents the full name of the user</li> +</ul> +</div> + + + + + + <h3 class="field-label">Query parameters</h3> + <div class="field-items"> + <div class="param">username (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — </div> <div class="param">password (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — </div> <div class="param">email (optional)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — </div> <div class="param">full_name (optional)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — </div> </div> <!-- field-items --> + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#RegisterResponse">RegisterResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "text" : "text" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#RegisterResponse">RegisterResponse</a> + <h4 class="field-label">422</h4> + The specified username is already taken + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"Username is already taken"}</code></pre> + </div> <!-- method --> + <hr/> + <h1><a name="Comparison">Comparison</a></h1> + <div class="method"><a name="compareAudioToImageV1ComparisonAudioImageTaskPost"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="post"><code class="huge"><span class="http-method">post</span> /v1/comparison/audio/image/task</code></pre></div> + <div class="method-summary">The endpoint <code>/audio/image</code> creates a task to compare an audio against image file using specified +models and returns the task ID. (<span class="nickname">compareAudioToImageV1ComparisonAudioImageTaskPost</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>audio_file</strong>: an uuid of file to process</li> +<li><strong>audio_model</strong>: an audio processing model name (check '<em>/audio/models</em>' for available models)</li> +<li><strong>image_file</strong>: an uuid of file to process</li> +<li><strong>image_model</strong>: an image processing model name (check '<em>/image/models</em>' for available models)</li> +</ul> +<p>Responses:</p> +<ul> +<li>200, Task created</li> +<li>404, No such audio file available</li> +<li>404, No such audio model available</li> +<li>404, No such image file available</li> +<li>404, No such image model available</li> +</ul> +</div> + + + <h3 class="field-label">Consumes</h3> + This API call consumes the following media types via the <span class="header">Content-Type</span> request header: + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Request body</h3> + <div class="field-items"> + <div class="param">body <a href="#AudioToImageComparisonRequest">AudioToImageComparisonRequest</a> (required)</div> + + <div class="param-desc"><span class="param-type">Body Parameter</span> — </div> + </div> <!-- field-items --> + + + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#TaskCreateResponse">TaskCreateResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "task_id" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Task was successfully created and scheduled + <a href="#TaskCreateResponse">TaskCreateResponse</a> + <h4 class="field-label">404</h4> + The specified file or model was not found. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"No such image model available"}</code></pre> + <h4 class="field-label">422</h4> + Validation Error + <a href="#HTTPValidationError">HTTPValidationError</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="compareAudioToTextV1ComparisonAudioTextTaskPost"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="post"><code class="huge"><span class="http-method">post</span> /v1/comparison/audio/text/task</code></pre></div> + <div class="method-summary">The endpoint '/audio/text' creates a task to compare audio against text from user input +using specified models and returns the task ID. (<span class="nickname">compareAudioToTextV1ComparisonAudioTextTaskPost</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>audio_file</strong>: an uuid of file to process</li> +<li><strong>audio_model</strong>: an audio processing model name (check '<em>/audio/models</em>' for available models)</li> +<li><strong>text</strong>: a list of strings to compare audio against</li> +</ul> +<p>Responses:</p> +<ul> +<li>200, Task created</li> +<li>404, No such audio file available</li> +<li>404, No such audio model available</li> +</ul> +</div> + + + <h3 class="field-label">Consumes</h3> + This API call consumes the following media types via the <span class="header">Content-Type</span> request header: + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Request body</h3> + <div class="field-items"> + <div class="param">body <a href="#AudioToTextComparisonRequest">AudioToTextComparisonRequest</a> (required)</div> + + <div class="param-desc"><span class="param-type">Body Parameter</span> — </div> + </div> <!-- field-items --> + + + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#TaskCreateResponse">TaskCreateResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "task_id" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Task was successfully created and scheduled + <a href="#TaskCreateResponse">TaskCreateResponse</a> + <h4 class="field-label">404</h4> + The specified file or model was not found. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"No such audio model available"}</code></pre> + <h4 class="field-label">422</h4> + Validation Error + <a href="#HTTPValidationError">HTTPValidationError</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="getAudioImageComparisonResultV1ComparisonAudioImageResultGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/comparison/audio/image/result</code></pre></div> + <div class="method-summary">The endpoint <code>/audio/image/result</code> retrieves the results of a task with a given task ID, and returns the +results. (<span class="nickname">getAudioImageComparisonResultV1ComparisonAudioImageResultGet</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>task_id</strong>: The <code>task_id</code> is the uuid of the task to fetch results of</li> +</ul> +<p>Responses:</p> +<ul> +<li>200, job results in the format</li> +</ul> +<pre><code class="language-js">{ +"image": { // image proccessing result + "text": "string", // total extracted text + "boxes": [ // list of boxes with text + { + "text": "string", // text extracted from the box + "coordinates": { // coordinates of the box on the image + "left_top": { // four points defining a rectangle + "x": 0, + "y": 0 + }, + "right_top": { + "x": 0, + "y": 0 + }, + "left_bottom": { + "x": 0, + "y": 0 + }, + "right_bottom": { + "x": 0, + "y": 0 + } + } + } + ] +}, +"audio": { // audio processing results + "text": "string", // total extracted text + "segments": [ // audio segments, that were processed + { + "start": 0, // absolute time code of the beginning of the segment + "end": 0, // absolute time code of the ending of the segment + "text": "string", // text extracted from the segment + "file": "3fa85f64-5717-4562-b3fc-2c963f66afa6" // audio segment + } + ] +}, +"errors": [ // results of comparing + { + "audio_segment": { // audio segment where error was made + "start": 0, + "end": 0, + "text": "string", + "file": "3fa85f64-5717-4562-b3fc-2c963f66afa6" + }, + "at_char": 0, // chat, at which an error stats + "found": "string", // found word (based on audio) + "expected": "string" // exptected word (suggetion for improvement based on image) + } +] +} +</code></pre> +<ul> +<li>406, Results are not ready yet or no task with such id exist</li> +<li>422, There is no such audio processing task</li> +</ul> +</div> + + + + + + <h3 class="field-label">Query parameters</h3> + <div class="field-items"> + <div class="param">task_id (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — format: uuid</div> </div> <!-- field-items --> + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#AudioImageComparisonResultsResponse">AudioImageComparisonResultsResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "image" : { + "boxes" : [ { + "coordinates" : { + "left_top" : { + "x" : 0, + "y" : 6 + } + }, + "text" : "text" + }, { + "coordinates" : { + "left_top" : { + "x" : 0, + "y" : 6 + } + }, + "text" : "text" + } ], + "text" : "text" + }, + "audio" : { + "text" : "text", + "segments" : [ { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + }, { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + } ] + }, + "errors" : [ { + "audio_segment" : { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + }, + "found" : "found", + "at_char" : 0, + "expected" : "expected" + }, { + "audio_segment" : { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + }, + "found" : "found", + "at_char" : 0, + "expected" : "expected" + } ] +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#AudioImageComparisonResultsResponse">AudioImageComparisonResultsResponse</a> + <h4 class="field-label">406</h4> + It is impossible to get task result (task does not exist or it has not finished yet). + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"Results are not ready yet or no task with such id exist"}</code></pre> + <h4 class="field-label">422</h4> + There is no such task consists of the both image and audio. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"There is no such task consists of the both image and audio"}</code></pre> + </div> <!-- method --> + <hr/> + <div class="method"><a name="getAudioTextComparisonResultV1ComparisonAudioTextResultGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/comparison/audio/text/result</code></pre></div> + <div class="method-summary">The endpoint <code>/audio/text/result</code> retrieves the results of a task with a given task ID, and returns the +results. (<span class="nickname">getAudioTextComparisonResultV1ComparisonAudioTextResultGet</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>task_id</strong>: The <code>task_id</code> is the uuid of the task to fetch results of</li> +</ul> +<p>Responses:</p> +<ul> +<li>200, job results in the format</li> +</ul> +<pre><code class="language-js">{ +"audio": { // audio processing results + "text": "string", // total extracted text + "segments": [ // audio segments, that were processed + { + "start": 0, // absolute time code of the beginning of the segment + "end": 0, // absolute time code of the ending of the segment + "text": "string", // text extracted from the segment + "file": "3fa85f64-5717-4562-b3fc-2c963f66afa6" // audio segment + } + ] +}, +"errors": [ // results of comparing + { + "audio_segment": { // audio segment where error was made + "start": 0, + "end": 0, + "text": "string", + "file": "3fa85f64-5717-4562-b3fc-2c963f66afa6" + }, + "at_char": 0, // chat, at which an error stats + "found": "string", // found word (based on audio) + "expected": "string" // exptected word (suggetion for improvement based on text) + } +] +} +</code></pre> +<ul> +<li>406, Results are not ready yet or no task with such id exist</li> +<li>422, There is no such audio processing task</li> +</ul> +</div> + + + + + + <h3 class="field-label">Query parameters</h3> + <div class="field-items"> + <div class="param">task_id (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — format: uuid</div> </div> <!-- field-items --> + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#AudioTextComparisonResultsResponse">AudioTextComparisonResultsResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "audio" : { + "text" : "text", + "segments" : [ { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + }, { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + } ] + }, + "errors" : [ { + "audio_segment" : { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + }, + "found" : "found", + "at_char" : 0, + "expected" : "expected" + }, { + "audio_segment" : { + "file" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "start" : 0.8008281904610115, + "end" : 6.027456183070403, + "text" : "text" + }, + "found" : "found", + "at_char" : 0, + "expected" : "expected" + } ] +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#AudioTextComparisonResultsResponse">AudioTextComparisonResultsResponse</a> + <h4 class="field-label">406</h4> + It is impossible to get task result (task does not exist or it has not finished yet). + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"Results are not ready yet or no task with such id exist"}</code></pre> + <h4 class="field-label">422</h4> + There is no such task consists of the both audio and text. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"There is no such task consists of the both audio and text"}</code></pre> + </div> <!-- method --> + <hr/> + <h1><a name="Image">Image</a></h1> + <div class="method"><a name="downloadImageFileV1ImageDownloadGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/image/download</code></pre></div> + <div class="method-summary">The endpoint <code>/download</code> allows to download audio file by given uuid. (<span class="nickname">downloadImageFileV1ImageDownloadGet</span>)</div> + <div class="method-notes"><p>The endpoint <code>/download</code> takes a file UUID as input, checks if the file exists in the +image directory, and returns the file as bytes. If file does not exist, returns 404 HTTP response code</p> +<p>Responses:</p> +<ul> +<li>200, file bytes</li> +</ul> +</div> + + + + + + <h3 class="field-label">Query parameters</h3> + <div class="field-items"> + <div class="param">file (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — format: uuid</div> </div> <!-- field-items --> + + + + <!--Todo: process Response Object and its headers, schema, examples --> + + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#"></a> + <h4 class="field-label">404</h4> + The specified file was not found. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"File not found"}</code></pre> + <h4 class="field-label">422</h4> + Validation Error + <a href="#HTTPValidationError">HTTPValidationError</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="getModelsV1ImageModelsGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/image/models</code></pre></div> + <div class="method-summary">The endpoint /models returns available (loaded) image models. (<span class="nickname">getModelsV1ImageModelsGet</span>)</div> + <div class="method-notes">Returns list of models, which are loaded into the worker and available for usage.</div> + + + + + + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#ModelsDataReponse">ModelsDataReponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "models" : [ { + "languages" : [ "languages", "languages" ], + "name" : "name", + "description" : "description" + }, { + "languages" : [ "languages", "languages" ], + "name" : "name", + "description" : "description" + } ] +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + List of available models + <a href="#ModelsDataReponse">ModelsDataReponse</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="getResponseV1ImageProcessResultGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/image/process/result</code></pre></div> + <div class="method-summary">The endpoint <code>/result</code> retrieves the result of an image +processing task from task system and returns it. (<span class="nickname">getResponseV1ImageProcessResultGet</span>)</div> + <div class="method-notes"><p>Responses:</p> +<ul> +<li>200, returns a processing result in the format:</li> +</ul> +<pre><code class="language-js">{ + "text": "string", // total extracted text + "boxes": [ // list of boxes with text + { + "text": "string", // text, which was extracted from the box + "coordinates": { // coordinates of the box on image + "left_top": { // four points defining the rectangle + "x": 0, + "y": 0 + }, + "right_top": { + "x": 0, + "y": 0 + }, + "left_bottom": { + "x": 0, + "y": 0 + }, + "right_bottom": { + "x": 0, + "y": 0 + } + } + } + ] +} +</code></pre> +<ul> +<li>406, is impossible to get task result (task does not exist or it has not finished yet).</li> +<li>422, if the task was not created as audio processing task</li> +</ul> +</div> + + + + + + <h3 class="field-label">Query parameters</h3> + <div class="field-items"> + <div class="param">task_id (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — format: uuid</div> </div> <!-- field-items --> + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#ImageProcessingResponse">ImageProcessingResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "boxes" : [ { + "coordinates" : { + "left_top" : { + "x" : 0, + "y" : 6 + } + }, + "text" : "text" + }, { + "coordinates" : { + "left_top" : { + "x" : 0, + "y" : 6 + } + }, + "text" : "text" + } ], + "text" : "text" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#ImageProcessingResponse">ImageProcessingResponse</a> + <h4 class="field-label">406</h4> + It is impossible to get task result (task does not exist or it has not finished yet). + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"The job is non-existent or not done"}</code></pre> + <h4 class="field-label">422</h4> + The specified task is not image processing task. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"There is no such image processing task"}</code></pre> + </div> <!-- method --> + <hr/> + <div class="method"><a name="processImageV1ImageProcessTaskPost"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="post"><code class="huge"><span class="http-method">post</span> /v1/image/process/task</code></pre></div> + <div class="method-summary">The endpoint <code>/process</code> creates an image processing task based on the given request parameters. (<span class="nickname">processImageV1ImageProcessTaskPost</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>image_file</strong>: an uuid of file to process</li> +<li><strong>image_model</strong>: an image processing model name (check '<em>/models</em>' for available models)</li> +</ul> +<p>Responses:</p> +<ul> +<li>404, No such image file available</li> +<li>404, No such image model available</li> +</ul> +</div> + + + <h3 class="field-label">Consumes</h3> + This API call consumes the following media types via the <span class="header">Content-Type</span> request header: + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Request body</h3> + <div class="field-items"> + <div class="param">body <a href="#ImageProcessingRequest">ImageProcessingRequest</a> (required)</div> + + <div class="param-desc"><span class="param-type">Body Parameter</span> — </div> + </div> <!-- field-items --> + + + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#TaskCreateResponse">TaskCreateResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "task_id" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Task was successfully created and scheduled + <a href="#TaskCreateResponse">TaskCreateResponse</a> + <h4 class="field-label">404</h4> + The specified file or model was not found. + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"No such image file available"}</code></pre> + <h4 class="field-label">422</h4> + Validation Error + <a href="#HTTPValidationError">HTTPValidationError</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="uploadImageV1ImageUploadPost"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="post"><code class="huge"><span class="http-method">post</span> /v1/image/upload</code></pre></div> + <div class="method-summary">The endpoint /upload allows clients to upload image files and returns a unique file ID. (<span class="nickname">uploadImageV1ImageUploadPost</span>)</div> + <div class="method-notes"><p>The endpoint validates file based on +<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types">MIME types specification</a>. +The endpoint converts image file into .png format.</p> +<p>Parameters:</p> +<ul> +<li><strong>upload_file</strong>: The file to upload</li> +</ul> +<p>Allowed extension:</p> +<ul> +<li>.avif</li> +<li>.bmp</li> +<li>.gif</li> +<li>.ico</li> +<li>.jpeg, .jpg</li> +<li>.png</li> +<li>.svg</li> +<li>.tif, .tiff</li> +<li>.webp</li> +</ul> +</div> + + + <h3 class="field-label">Consumes</h3> + This API call consumes the following media types via the <span class="header">Content-Type</span> request header: + <ul> + <li><code>multipart/form-data</code></li> + </ul> + + + + + <h3 class="field-label">Form parameters</h3> + <div class="field-items"> + <div class="param">upload_file (required)</div> + + <div class="param-desc"><span class="param-type">Form Parameter</span> — format: binary</div> </div> <!-- field-items --> + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#UploadFileResponse">UploadFileResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "file_id" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + The file is uploaded successfully + <a href="#UploadFileResponse">UploadFileResponse</a> + <h4 class="field-label">422</h4> + The file was not sent or the file has unallowed extension + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"Only image files uploads are allowed"}</code></pre> + </div> <!-- method --> + <hr/> + <h1><a name="Task">Task</a></h1> + <div class="method"><a name="getJobResultV1TaskResultGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/task/result</code></pre></div> + <div class="method-summary">The endpoint <code>/result</code> retrieves the results of a task with a given task ID, and returns the +results. (<span class="nickname">getJobResultV1TaskResultGet</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>task_id</strong>: The <code>task_id</code> is the uuid of the task to fetch results of</li> +</ul> +<p>Responses:</p> +<ul> +<li>200, job results</li> +<li>406, Results are not ready yet or no task with such id exist</li> +</ul> +</div> + + + + + + <h3 class="field-label">Query parameters</h3> + <div class="field-items"> + <div class="param">task_id (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — format: uuid</div> </div> <!-- field-items --> + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + + Object + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ }</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#Object">Object</a> + <h4 class="field-label">406</h4> + It is impossible to get task result (task does not exist or it has not finished yet). + <a href="#"></a> + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{"detail":"Results are not ready yet or no task with such id exist"}</code></pre> + <h4 class="field-label">422</h4> + Validation Error + <a href="#HTTPValidationError">HTTPValidationError</a> + </div> <!-- method --> + <hr/> + <div class="method"><a name="getJobStatusV1TaskStatusGet"></a> + <div class="method-path"> + <a class="up" href="#__Methods">Up</a> + <pre class="get"><code class="huge"><span class="http-method">get</span> /v1/task/status</code></pre></div> + <div class="method-summary">The endpoint <code>status</code> returns the status of a task identified by its <code>task_id</code>. (<span class="nickname">getJobStatusV1TaskStatusGet</span>)</div> + <div class="method-notes"><p>Parameters:</p> +<ul> +<li><strong>task_id</strong>: The <code>task_id</code> is the uuid of the task to fetch status of</li> +</ul> +<p>Responses:</p> +<ul> +<li>200, Job status</li> +</ul> +</div> + + + + + + <h3 class="field-label">Query parameters</h3> + <div class="field-items"> + <div class="param">task_id (required)</div> + + <div class="param-desc"><span class="param-type">Query Parameter</span> — format: uuid</div> </div> <!-- field-items --> + + + <h3 class="field-label">Return type</h3> + <div class="return-type"> + <a href="#TaskStatusResponse">TaskStatusResponse</a> + + </div> + + <!--Todo: process Response Object and its headers, schema, examples --> + + <h3 class="field-label">Example data</h3> + <div class="example-data-content-type">Content-Type: application/json</div> + <pre class="example"><code>{ + "ready" : true, + "task_id" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91", + "status" : "status" +}</code></pre> + + <h3 class="field-label">Produces</h3> + This API call produces the following media types according to the <span class="header">Accept</span> request header; + the media type will be conveyed by the <span class="header">Content-Type</span> response header. + <ul> + <li><code>application/json</code></li> + </ul> + + <h3 class="field-label">Responses</h3> + <h4 class="field-label">200</h4> + Successful Response + <a href="#TaskStatusResponse">TaskStatusResponse</a> + <h4 class="field-label">422</h4> + Validation Error + <a href="#HTTPValidationError">HTTPValidationError</a> + </div> <!-- method --> + <hr/> + + <h2><a name="__Models">Models</a></h2> + [ Jump to <a href="#__Methods">Methods</a> ] + + <h3>Table of Contents</h3> + <ol> + <li><a href="#AudioChunk"><code>AudioChunk</code> - AudioChunk</a></li> + <li><a href="#AudioExtractPhrasesRequest"><code>AudioExtractPhrasesRequest</code> - AudioExtractPhrasesRequest</a></li> + <li><a href="#AudioExtractPhrasesResponse"><code>AudioExtractPhrasesResponse</code> - AudioExtractPhrasesResponse</a></li> + <li><a href="#AudioImageComparisonResultsResponse"><code>AudioImageComparisonResultsResponse</code> - AudioImageComparisonResultsResponse</a></li> + <li><a href="#AudioPhrase"><code>AudioPhrase</code> - AudioPhrase</a></li> + <li><a href="#AudioProcessingRequest"><code>AudioProcessingRequest</code> - AudioProcessingRequest</a></li> + <li><a href="#AudioProcessingResponse"><code>AudioProcessingResponse</code> - AudioProcessingResponse</a></li> + <li><a href="#AudioTextComparisonResultsResponse"><code>AudioTextComparisonResultsResponse</code> - AudioTextComparisonResultsResponse</a></li> + <li><a href="#AudioToImageComparisonRequest"><code>AudioToImageComparisonRequest</code> - AudioToImageComparisonRequest</a></li> + <li><a href="#AudioToTextComparisonRequest"><code>AudioToTextComparisonRequest</code> - AudioToTextComparisonRequest</a></li> + <li><a href="#Body_login_for_access_token_v1_auth_token_post"><code>Body_login_for_access_token_v1_auth_token_post</code> - Body_login_for_access_token_v1_auth_token_post</a></li> + <li><a href="#Body_upload_audio_file_v1_audio_upload_post"><code>Body_upload_audio_file_v1_audio_upload_post</code> - Body_upload_audio_file_v1_audio_upload_post</a></li> + <li><a href="#Body_upload_image_v1_image_upload_post"><code>Body_upload_image_v1_image_upload_post</code> - Body_upload_image_v1_image_upload_post</a></li> + <li><a href="#HTTPValidationError"><code>HTTPValidationError</code> - HTTPValidationError</a></li> + <li><a href="#IPRPoint"><code>IPRPoint</code> - IPRPoint</a></li> + <li><a href="#IPRRectangle"><code>IPRRectangle</code> - IPRRectangle</a></li> + <li><a href="#IPRTextBox"><code>IPRTextBox</code> - IPRTextBox</a></li> + <li><a href="#ImageProcessingRequest"><code>ImageProcessingRequest</code> - ImageProcessingRequest</a></li> + <li><a href="#ImageProcessingResponse"><code>ImageProcessingResponse</code> - ImageProcessingResponse</a></li> + <li><a href="#ModelData"><code>ModelData</code> - ModelData</a></li> + <li><a href="#ModelsDataReponse"><code>ModelsDataReponse</code> - ModelsDataReponse</a></li> + <li><a href="#RegisterResponse"><code>RegisterResponse</code> - RegisterResponse</a></li> + <li><a href="#TaskCreateResponse"><code>TaskCreateResponse</code> - TaskCreateResponse</a></li> + <li><a href="#TaskStatusResponse"><code>TaskStatusResponse</code> - TaskStatusResponse</a></li> + <li><a href="#TextDiff"><code>TextDiff</code> - TextDiff</a></li> + <li><a href="#Token"><code>Token</code> - Token</a></li> + <li><a href="#UploadFileResponse"><code>UploadFileResponse</code> - UploadFileResponse</a></li> + <li><a href="#User"><code>User</code> - User</a></li> + <li><a href="#ValidationError"><code>ValidationError</code> - ValidationError</a></li> + </ol> + + <div class="model"> + <h3><a name="AudioChunk"><code>AudioChunk</code> - AudioChunk</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">start </div><div class="param-desc"><span class="param-type"><a href="#BigDecimal">BigDecimal</a></span> </div> +<div class="param">end </div><div class="param-desc"><span class="param-type"><a href="#BigDecimal">BigDecimal</a></span> </div> +<div class="param">text </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">file </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="AudioExtractPhrasesRequest"><code>AudioExtractPhrasesRequest</code> - AudioExtractPhrasesRequest</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">audio_file </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div> +<div class="param">audio_model </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">phrases </div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="AudioExtractPhrasesResponse"><code>AudioExtractPhrasesResponse</code> - AudioExtractPhrasesResponse</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">data </div><div class="param-desc"><span class="param-type"><a href="#AudioPhrase">array[AudioPhrase]</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="AudioImageComparisonResultsResponse"><code>AudioImageComparisonResultsResponse</code> - AudioImageComparisonResultsResponse</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">image </div><div class="param-desc"><span class="param-type"><a href="#ImageProcessingResponse">ImageProcessingResponse</a></span> </div> +<div class="param">audio </div><div class="param-desc"><span class="param-type"><a href="#AudioProcessingResponse">AudioProcessingResponse</a></span> </div> +<div class="param">errors </div><div class="param-desc"><span class="param-type"><a href="#TextDiff">array[TextDiff]</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="AudioPhrase"><code>AudioPhrase</code> - AudioPhrase</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">audio_segment (optional)</div><div class="param-desc"><span class="param-type"><a href="#AudioChunk">AudioChunk</a></span> </div> +<div class="param">found </div><div class="param-desc"><span class="param-type"><a href="#boolean">Boolean</a></span> </div> +<div class="param">phrase </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="AudioProcessingRequest"><code>AudioProcessingRequest</code> - AudioProcessingRequest</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">audio_file </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div> +<div class="param">audio_model </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="AudioProcessingResponse"><code>AudioProcessingResponse</code> - AudioProcessingResponse</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">text </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">segments </div><div class="param-desc"><span class="param-type"><a href="#AudioChunk">array[AudioChunk]</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="AudioTextComparisonResultsResponse"><code>AudioTextComparisonResultsResponse</code> - AudioTextComparisonResultsResponse</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">audio </div><div class="param-desc"><span class="param-type"><a href="#AudioProcessingResponse">AudioProcessingResponse</a></span> </div> +<div class="param">errors </div><div class="param-desc"><span class="param-type"><a href="#TextDiff">array[TextDiff]</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="AudioToImageComparisonRequest"><code>AudioToImageComparisonRequest</code> - AudioToImageComparisonRequest</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">audio_file </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div> +<div class="param">image_file </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div> +<div class="param">audio_model </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">image_model </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="AudioToTextComparisonRequest"><code>AudioToTextComparisonRequest</code> - AudioToTextComparisonRequest</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">audio_file </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div> +<div class="param">text </div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span> </div> +<div class="param">audio_model </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="Body_login_for_access_token_v1_auth_token_post"><code>Body_login_for_access_token_v1_auth_token_post</code> - Body_login_for_access_token_v1_auth_token_post</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">grant_type (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">username </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">password </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">scope (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">client_id (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">client_secret (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="Body_upload_audio_file_v1_audio_upload_post"><code>Body_upload_audio_file_v1_audio_upload_post</code> - Body_upload_audio_file_v1_audio_upload_post</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">upload_file </div><div class="param-desc"><span class="param-type"><a href="#binary">byte[]</a></span> format: binary</div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="Body_upload_image_v1_image_upload_post"><code>Body_upload_image_v1_image_upload_post</code> - Body_upload_image_v1_image_upload_post</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">upload_file </div><div class="param-desc"><span class="param-type"><a href="#binary">byte[]</a></span> format: binary</div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="HTTPValidationError"><code>HTTPValidationError</code> - HTTPValidationError</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">detail (optional)</div><div class="param-desc"><span class="param-type"><a href="#ValidationError">array[ValidationError]</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="IPRPoint"><code>IPRPoint</code> - IPRPoint</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">x </div><div class="param-desc"><span class="param-type"><a href="#integer">Integer</a></span> </div> +<div class="param">y </div><div class="param-desc"><span class="param-type"><a href="#integer">Integer</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="IPRRectangle"><code>IPRRectangle</code> - IPRRectangle</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">left_top </div><div class="param-desc"><span class="param-type"><a href="#IPRPoint">IPRPoint</a></span> </div> +<div class="param">right_top </div><div class="param-desc"><span class="param-type"><a href="#IPRPoint">IPRPoint</a></span> </div> +<div class="param">left_bottom </div><div class="param-desc"><span class="param-type"><a href="#IPRPoint">IPRPoint</a></span> </div> +<div class="param">right_bottom </div><div class="param-desc"><span class="param-type"><a href="#IPRPoint">IPRPoint</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="IPRTextBox"><code>IPRTextBox</code> - IPRTextBox</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">text </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">coordinates </div><div class="param-desc"><span class="param-type"><a href="#IPRRectangle">IPRRectangle</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="ImageProcessingRequest"><code>ImageProcessingRequest</code> - ImageProcessingRequest</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">image_file </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div> +<div class="param">image_model </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="ImageProcessingResponse"><code>ImageProcessingResponse</code> - ImageProcessingResponse</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">text </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">boxes </div><div class="param-desc"><span class="param-type"><a href="#IPRTextBox">array[IPRTextBox]</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="ModelData"><code>ModelData</code> - ModelData</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">name </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">languages </div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span> </div> +<div class="param">description </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="ModelsDataReponse"><code>ModelsDataReponse</code> - ModelsDataReponse</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">models </div><div class="param-desc"><span class="param-type"><a href="#ModelData">array[ModelData]</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="RegisterResponse"><code>RegisterResponse</code> - RegisterResponse</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">text </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="TaskCreateResponse"><code>TaskCreateResponse</code> - TaskCreateResponse</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">task_id </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="TaskStatusResponse"><code>TaskStatusResponse</code> - TaskStatusResponse</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">task_id </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div> +<div class="param">status </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">ready </div><div class="param-desc"><span class="param-type"><a href="#boolean">Boolean</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="TextDiff"><code>TextDiff</code> - TextDiff</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">audio_segment </div><div class="param-desc"><span class="param-type"><a href="#AudioChunk">AudioChunk</a></span> </div> +<div class="param">at_char </div><div class="param-desc"><span class="param-type"><a href="#integer">Integer</a></span> </div> +<div class="param">found </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">expected </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="Token"><code>Token</code> - Token</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">access_token </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">token_type </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="UploadFileResponse"><code>UploadFileResponse</code> - UploadFileResponse</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">file_id </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="User"><code>User</code> - User</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">username </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">email (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">full_name (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">disabled (optional)</div><div class="param-desc"><span class="param-type"><a href="#boolean">Boolean</a></span> </div> + </div> <!-- field-items --> + </div> + <div class="model"> + <h3><a name="ValidationError"><code>ValidationError</code> - ValidationError</a> <a class="up" href="#__Models">Up</a></h3> + + <div class="field-items"> + <div class="param">loc </div><div class="param-desc"><span class="param-type"><a href="#">array[null]</a></span> </div> + <div class="param-desc"><span class="param-type">items anyOf:</span> + </div> +<div class="param">msg </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> +<div class="param">type </div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span> </div> + </div> <!-- field-items --> + </div> + </body> +</html>