openapi: 3.0.3
info:
  title: Jarvis models APIs
  description: |-
    boardware
  contact:
    email: chenyunda218@gmail.com
  version: 0.0.1
servers:
  - url: http://localhost:8080
    description: Local server
tags:
  - name: Blackbox
paths:
  /?blackbox={blackbox_name}:
    post:
      tags:
        - Blackbox
      summary: "Create Blackbox"
      parameters:
        - name: blackbox_name
          in: query
          required: true
          schema:
            $ref: "#/components/schemas/BlackboxName"
          description: "Blackbox name"
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Input"
          application/json:
            schema:
              $ref: "#/components/schemas/Input"
      responses:
        "200":
          description: "Success"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"

components:
  schemas:
    TextToAudioInput:
      type: object
      properties:
        text:
          type: string
          description: "Text to convert to audio"
    AudioToTextInput:
      type: object
      properties:
        audio:
          type: string
          format: binary
    TextAndImageInput:
      type: object
      properties:
        text:
          type: string
        image:
          type: string
          format: binary
    Input:
      oneOf:
        - $ref: "#/components/schemas/TextToAudioInput"
        - $ref: "#/components/schemas/AudioToTextInput"
        - $ref: "#/components/schemas/TextAndImageInput"
    TextResult:
      type: object
      properties:
        text:
          type: string
          description: "Result of processing"
    Result:
      oneOf:
        - $ref: "#/components/schemas/TextResult"
    BlackboxName:
      type: string
      description: "Blackbox name"
      enum:
        - text_to_audio
        - audio_to_text
        - asr
        - tts
        - sentiment_engine
        - tesou
        - fastchat
        - audio_chat
        - g2e
        - text_and_image
        - chroma_query
        - chroma_chat
        - chroma_upsert