ArthurAI Chatbot API

The Chatbot API from ArthurAI — 2 operation(s) for chatbot.

OpenAPI Specification

arthurai-chatbot-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Arthur GenAI Engine Agent Discovery Chatbot API
  version: 2.1.688
tags:
- name: Chatbot
paths:
  /api/v1/tasks/{task_id}/chatbot/stream:
    post:
      tags:
      - Chatbot
      summary: Stream a chatbot response
      description: Send a message to the Arthur AI chatbot and receive a streaming response. The chatbot can call Arthur Engine API endpoints on your behalf.
      operationId: stream_chatbot_api_v1_tasks__task_id__chatbot_stream_post
      security:
      - API Key: []
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Task Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatbotRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/chatbot/config:
    get:
      tags:
      - Chatbot
      summary: Get chatbot model configuration
      description: Returns the model provider, model name, blacklisted endpoints, and available endpoints.
      operationId: get_chatbot_config_api_v1_chatbot_config_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatbotConfigResponse'
      security:
      - API Key: []
    put:
      tags:
      - Chatbot
      summary: Update chatbot model configuration
      description: Saves a new version of the chatbot prompt with the specified model provider and model name, and tags it as production.
      operationId: update_chatbot_config_api_v1_chatbot_config_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatbotConfigUpdateRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatbotConfigResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - API Key: []
components:
  schemas:
    ChatbotConfigUpdateRequest:
      properties:
        model_provider:
          anyOf:
          - $ref: '#/components/schemas/ModelProvider'
          - type: 'null'
        model_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Model Name
        blacklist_endpoints:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Blacklist Endpoints
      type: object
      title: ChatbotConfigUpdateRequest
    ChatbotConfigResponse:
      properties:
        model_provider:
          $ref: '#/components/schemas/ModelProvider'
        model_name:
          type: string
          title: Model Name
        blacklist_endpoints:
          items:
            type: string
          type: array
          title: Blacklist Endpoints
          default: []
        available_endpoints:
          items:
            type: string
          type: array
          title: Available Endpoints
          default: []
      type: object
      required:
      - model_provider
      - model_name
      title: ChatbotConfigResponse
    OpenAIMessageType:
      type: string
      enum:
      - text
      - image_url
      - input_audio
      title: OpenAIMessageType
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    ModelProvider:
      type: string
      enum:
      - anthropic
      - openai
      - gemini
      - bedrock
      - vertex_ai
      - hosted_vllm
      - azure
      title: ModelProvider
    ImageURL:
      properties:
        url:
          type: string
          title: Url
          description: URL of the image
      type: object
      required:
      - url
      title: ImageURL
    InputAudio:
      properties:
        data:
          type: string
          title: Data
          description: Base64 encoded audio data
        format:
          type: string
          title: Format
          description: audio format (e.g. 'mp3', 'wav', 'flac', etc.)
      type: object
      required:
      - data
      - format
      title: InputAudio
    ToolCall:
      properties:
        type:
          type: string
          title: Type
          description: The type of tool call. Currently the only type supported is 'function'.
          default: function
        id:
          type: string
          title: Id
          description: Unique identifier for the tool call
        function:
          $ref: '#/components/schemas/ToolCallFunction'
          description: Function details
      type: object
      required:
      - id
      - function
      title: ToolCall
    OpenAIMessageItem:
      properties:
        type:
          $ref: '#/components/schemas/OpenAIMessageType'
          description: Type of the message (either 'text', 'image_url', or 'input_audio')
        text:
          anyOf:
          - type: string
          - type: 'null'
          title: Text
          description: Text content of the message if type is 'text'
        image_url:
          anyOf:
          - $ref: '#/components/schemas/ImageURL'
          - type: 'null'
          description: Image URL content of the message if type is 'image_url'
        input_audio:
          anyOf:
          - $ref: '#/components/schemas/InputAudio'
          - type: 'null'
          description: Input audio content of the message if type is 'input_audio'
      type: object
      required:
      - type
      title: OpenAIMessageItem
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    OpenAIMessage-Input:
      properties:
        role:
          $ref: '#/components/schemas/MessageRole'
          description: Role of the message
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
          description: An optional name for the participant. Provides the model information to differentiate between participants of the same role.
        content:
          anyOf:
          - type: string
          - items:
              $ref: '#/components/schemas/OpenAIMessageItem'
            type: array
          - type: 'null'
          title: Content
          description: Content of the message
        tool_calls:
          anyOf:
          - items:
              $ref: '#/components/schemas/ToolCall'
            type: array
          - type: 'null'
          title: Tool Calls
          description: Tool calls made by assistant
        tool_call_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Tool Call Id
          description: ID of the tool call this message is responding to
      type: object
      required:
      - role
      title: OpenAIMessage
      description: 'The message schema class for the prompts playground.

        This class adheres to OpenAI''s message schema.'
    ToolCallFunction:
      properties:
        name:
          type: string
          title: Name
          description: Name of the function to call
        arguments:
          type: string
          title: Arguments
          description: JSON string of function arguments
      type: object
      required:
      - name
      - arguments
      title: ToolCallFunction
    ChatbotRequest:
      properties:
        history:
          items:
            $ref: '#/components/schemas/OpenAIMessage-Input'
          type: array
          title: History
        session_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Session Id
      type: object
      required:
      - history
      title: ChatbotRequest
    MessageRole:
      type: string
      enum:
      - developer
      - system
      - user
      - assistant
      - tool
      title: MessageRole
  securitySchemes:
    API Key:
      type: http
      description: Bearer token authentication with an API key
      scheme: bearer