Qubrid AI · Schema

Qubrid AI RAG Entities

Schema definitions for Qubrid AI RAG API entities including knowledge bases, documents, RAG queries, and source references.

Artificial IntelligenceCloud ComputingGPUInferenceLarge Language ModelsMachine-LearningNVIDIAServerless
View JSON Schema on GitHub

JSON Schema

qubrid-ai-rag-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://platform.qubrid.com/schemas/qubrid-ai/rag.json",
  "title": "Qubrid AI RAG Entities",
  "description": "Schema definitions for Qubrid AI RAG API entities including knowledge bases, documents, RAG queries, and source references.",
  "type": "object",
  "$defs": {
    "KnowledgeBase": {
      "type": "object",
      "title": "Knowledge Base",
      "description": "A knowledge base containing enterprise documents that are chunked, embedded, and indexed for retrieval-augmented generation.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the knowledge base."
        },
        "name": {
          "type": "string",
          "description": "The display name of the knowledge base.",
          "maxLength": 256
        },
        "description": {
          "type": "string",
          "description": "A description of the knowledge base and the type of data it contains.",
          "maxLength": 1024
        },
        "embedding_model": {
          "type": "string",
          "description": "The embedding model used to generate vector representations of document chunks."
        },
        "chunk_size": {
          "type": "integer",
          "description": "The target size of each document chunk in tokens.",
          "minimum": 64,
          "maximum": 4096
        },
        "chunk_overlap": {
          "type": "integer",
          "description": "The number of tokens of overlap between consecutive document chunks.",
          "minimum": 0,
          "maximum": 1024
        },
        "document_count": {
          "type": "integer",
          "description": "The total number of documents in the knowledge base.",
          "minimum": 0
        },
        "chunk_count": {
          "type": "integer",
          "description": "The total number of chunks across all documents.",
          "minimum": 0
        },
        "status": {
          "type": "string",
          "enum": ["ready", "processing", "error"],
          "description": "The current status of the knowledge base."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp when the knowledge base was created."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp when the knowledge base was last updated."
        }
      }
    },
    "Document": {
      "type": "object",
      "title": "Document",
      "description": "A document uploaded to a knowledge base that is chunked and embedded for retrieval.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the document."
        },
        "name": {
          "type": "string",
          "description": "The original filename of the uploaded document."
        },
        "size_bytes": {
          "type": "integer",
          "description": "The size of the document file in bytes.",
          "minimum": 0
        },
        "format": {
          "type": "string",
          "description": "The file format of the document, such as pdf, txt, csv, or docx.",
          "enum": ["pdf", "txt", "csv", "docx", "md", "html"]
        },
        "chunk_count": {
          "type": "integer",
          "description": "The number of chunks the document was split into.",
          "minimum": 0
        },
        "status": {
          "type": "string",
          "enum": ["processing", "ready", "error"],
          "description": "The processing status of the document."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp when the document was uploaded."
        }
      }
    },
    "RagQueryRequest": {
      "type": "object",
      "title": "RAG Query Request",
      "description": "A request to perform retrieval-augmented generation against a knowledge base.",
      "required": ["knowledge_base_id", "query", "model"],
      "properties": {
        "knowledge_base_id": {
          "type": "string",
          "description": "The identifier of the knowledge base to query against."
        },
        "query": {
          "type": "string",
          "description": "The natural language question or query to answer.",
          "minLength": 1
        },
        "model": {
          "type": "string",
          "description": "The identifier of the LLM to use for generating the response."
        },
        "top_k": {
          "type": "integer",
          "description": "The number of most relevant document chunks to retrieve.",
          "minimum": 1,
          "maximum": 20,
          "default": 5
        },
        "temperature": {
          "type": "number",
          "description": "Sampling temperature for response generation.",
          "minimum": 0,
          "maximum": 2,
          "default": 0.7
        },
        "max_tokens": {
          "type": "integer",
          "description": "Maximum number of tokens to generate in the response.",
          "minimum": 1
        },
        "include_sources": {
          "type": "boolean",
          "description": "Whether to include source document references in the response.",
          "default": true
        }
      }
    },
    "RagQueryResponse": {
      "type": "object",
      "title": "RAG Query Response",
      "description": "The response from a RAG query containing the generated answer and source references.",
      "properties": {
        "answer": {
          "type": "string",
          "description": "The generated response grounded in retrieved document context."
        },
        "model": {
          "type": "string",
          "description": "The model used to generate the response."
        },
        "sources": {
          "type": "array",
          "description": "Source document references used as context for the response.",
          "items": {
            "$ref": "#/$defs/SourceReference"
          }
        },
        "usage": {
          "type": "object",
          "description": "Token usage statistics for the RAG query.",
          "properties": {
            "prompt_tokens": {
              "type": "integer",
              "description": "Number of tokens in the prompt including retrieved context."
            },
            "completion_tokens": {
              "type": "integer",
              "description": "Number of tokens in the generated response."
            },
            "total_tokens": {
              "type": "integer",
              "description": "Total tokens used."
            }
          }
        }
      }
    },
    "SourceReference": {
      "type": "object",
      "title": "Source Reference",
      "description": "A reference to a source document chunk used as context in a RAG response.",
      "properties": {
        "document_id": {
          "type": "string",
          "description": "The identifier of the source document."
        },
        "document_name": {
          "type": "string",
          "description": "The name of the source document."
        },
        "chunk_text": {
          "type": "string",
          "description": "The text content of the retrieved chunk."
        },
        "relevance_score": {
          "type": "number",
          "description": "The semantic similarity score between the query and this chunk.",
          "minimum": 0,
          "maximum": 1
        }
      }
    }
  }
}