Remberg ai-chat API

The ai-chat API from Remberg — 2 operation(s) for ai-chat.

OpenAPI Specification

remberg-ai-chat-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: AI ai-chat API
  description: The remberg AI API description
  version: v1
  contact: {}
servers:
- url: https://api.remberg.de
tags:
- name: ai-chat
paths:
  /v1/ai/answer:
    post:
      description: Generate an AI-powered answer based on the provided context. Returns the answer along with the knowledge-base sources used to produce it.
      operationId: AiCopilotCfaController_getAnswer
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetAnswerCfaBodyDto'
      responses:
        '200':
          description: Returns an AI generated answer and related sources for the given context.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAnswerCfaResponseDto'
        '400':
          description: 'Only one context item is allowed (We will allow multiple ones this in the future).


            Invalid parameters'
        '403':
          description: Forbidden
        '404':
          description: No matching knowledge base entries for the given context.
        '429':
          description: Too many requests.
      security:
      - authorization: []
      summary: ''
      tags:
      - ai-chat
  /v1/ai/feedback/{traceId}:
    post:
      description: Submit user feedback (positive or negative) for a previously generated AI answer, identified by its trace ID.
      operationId: AiCopilotCfaController_provideFeedback
      parameters:
      - name: traceId
        required: true
        in: path
        description: traceId of the conversation to provide feedback for
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AiFeedbackCfaBodyDto'
      responses:
        '201':
          description: Feedback was successfully registered.
        '403':
          description: Forbidden
        '404':
          description: No matching conversation was found.
        '500':
          description: Conversation is missing a traceId.
      security:
      - authorization: []
      summary: ''
      tags:
      - ai-chat
components:
  schemas:
    AiFeedbackCfaBodyDto:
      type: object
      properties:
        score:
          type: number
          description: Feedback score (0-10)
        comment:
          type: string
          description: Qualitative feedback to explain the score or give additional information to improve future responses
      required:
      - score
    GetAnswerCfaResponseDto:
      type: object
      properties:
        traceId:
          type: string
          description: traceId to keep track of the conversation. Can be e.g. used to submit feedback
        question:
          type: string
          description: question that was answered by the request
        answer:
          type: string
          description: generated answer to the given question
        sources:
          items:
            oneOf:
            - $ref: '#/components/schemas/GetAnswerCfaFileSourceResponseDto'
            - $ref: '#/components/schemas/GetAnswerCfaTicketSourceResponseDto'
          description: list of sources that have been used to generate the answer
          type: array
        score:
          type: number
          description: Indicator for confidence of the answer, value between 0 and 1
      required:
      - traceId
      - question
      - answer
      - sources
      - score
    GetAnswerCfaFileSourceResponseDto:
      type: object
      properties:
        sourceType:
          type: object
          description: type of the source (e.g. file or ticket)
        text:
          type: string
          description: text snippet of the source that was used to generate the answer
        fileId:
          type: string
          description: remberg id of the file where the information can be found in
        fileName:
          type: string
          description: name of the file where the information can be found in
        page:
          type: number
          description: page on which the information can be found
      required:
      - sourceType
      - text
      - fileId
      - fileName
      - page
    GetAnswerCfaTicketSourceResponseDto:
      type: object
      properties:
        sourceType:
          type: object
          description: type of the source (e.g. file or ticket)
        text:
          type: string
          description: text snippet of the source that was used to generate the answer
        ticketId:
          type: string
          description: remberg id of the ticket where the information can be found in
        title:
          type: string
          description: title of the ticket where the information can be found in
      required:
      - sourceType
      - text
      - ticketId
      - title
    GetAnswerCfaContextBodyDto:
      type: object
      properties:
        instanceId:
          type: string
          description: remberg id of the object that should be used to limit the context
        type:
          type: string
          enum:
          - asset
          - file
          - assetType
          description: type of the object that should be used to limit the context
      required:
      - instanceId
      - type
    GetAnswerCfaBodyDto:
      type: object
      properties:
        question:
          type: string
          description: Question that should be answered by the request
        context:
          description: Additional information to narrow the context that shall be used to answer the question (will use all available information if left empty)
          type: array
          items:
            $ref: '#/components/schemas/GetAnswerCfaContextBodyDto'
      required:
      - question
  securitySchemes:
    authorization:
      type: apiKey
      in: header
      name: authorization