HTTP API#

The HTTP API is defined using the OpenAPI schema in openapi.json.

We also host interactive swagger docs where you can try sending example queries to the HTTP API.

Generation#

POST /chat#

Chat

Chat API.

  • conversation_history: List of dicts, history of the conversation, both human and model.

  • model_name: String, name of the model.

  • request_output_len: Integer, number of tokens to generate.

  • temperature: Float, sampling temperature, higher is more random.

  • random_seed: Int, random seed, change to generate different output.

  • runtime_top_k: Int, only sample from the top k tokens.

  • runtime_top_p: Float, only sample from top tokens that sum to top_p probability.

  • frequency_penalty: Float, higher penalizes repetition more. 0.0 means no penalty.

  • presence_penalty: Float, higher penalizes repetition more. 0.0 means no penalty.

  • length_penalty: Float, encourage the model to be concise. 1.0 means no penalty.

  • stop_words: List of strings, stop generating when one is sampled.

  • retrieval_dataset: Optional string, the dataset name to retrieve from.

  • use_search_engine: Optional, boolean, whether to use a search engine.,

example:

POST /chat HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "conversation_history": [
        {
            "text": "Hello, what is your name?",
            "type": "human"
        },
        {
            "text": "Hi, I am Reka's assistant.",
            "type": "model"
        },
        {
            "text": "What is the capital of the UK?",
            "type": "human"
        }
    ],
    "frequency_penalty": 1.0,
    "length_penalty": 1.0,
    "model_name": "reka-flash",
    "presence_penalty": 1.0,
    "random_seed": 42,
    "request_output_len": 2048,
    "runtime_top_k": 1024,
    "runtime_top_p": 0.95,
    "stop_words": [],
    "temperature": 0.9,
    "use_search_engine": false
}
Status Codes:
  • 200 OK

    Newest response from the model.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "type": "model",
        "text": "string",
        "finish_reason": "stop",
        "retrieved_chunks": [
            {
                "text": "string",
                "sourceDocument": "string",
                "sourceDocumentIsUrl": true,
                "sectionTitle": "string",
                "chunkIndex": 1,
                "isNegative": true,
                "score": 1.0
            }
        ],
        "metadata": {
            "input_tokens": 1,
            "generated_tokens": 1,
            "image_count": 1,
            "video_count": 1,
            "audio_count": 1
        }
    }
    

Datasets#

GET /datasets#

List Datasets

List existing datasets.

Example request:

GET /datasets HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Successful Response

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        "string"
    ]
    

POST /datasets#

Add Dataset

Add a new dataset from the uploaded file.

This takes form data:

  • file: the file to upload. Either a zip of text files or a single text file.

  • dataset_name: the name for the dataset.

  • dataset_description: optional, a description of the dataset.

Status Codes:
  • 200 OK

    Successful Response

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "name": "string",
        "ok": true,
        "info": "string"
    }
    

DELETE /datasets/{dataset_name}#

Delete Dataset

Endpoint for deleting a dataset.

To delete a job and the corresponding artifacts the following actions need to be taken in that order:

  • cancel any (k8s) jobs – for now we only cancel k8s jobs and not on-prem ones.

Reason is that to cancel the latter, we need to keep track of pid in the job table so the Job model will diverge on_prem and on_cloud which requires a further discussion

  • delete weaviate artifacts and retrieval parameters

  • delete dataset

  • delete job entry

Parameters:
  • dataset_name (string) – The name of the dataset to delete.

Status Codes:
  • 200 OK

    Successful Response

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "name": "string",
        "ok": true,
        "info": "string"
    }
    

GET /datasets/{dataset_name}#

Get Dataset

Get information about a dataset.

Parameters:
  • dataset_name (string) – The name of the dataset to get details of.

Example request:

GET /datasets/{dataset_name} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Successful Response

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "name": "string",
        "is_retrieval_prepared": true
    }
    

Medias#

POST /upload-media#

Upload Image

Upload an image, providing a URL that can be used by the VLM.

This takes form data:

  • image - an image file.

Status Codes:
  • 200 OK

    Successful Response

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "image_url": "string",
        "media_url": "string"
    }
    

Images#

POST /upload-image#

Upload Image

Upload an image, providing a URL that can be used by the VLM.

This takes form data:

  • image - an image file.

Status Codes:
  • 200 OK

    Successful Response

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "image_url": "string",
        "media_url": "string"
    }
    

Files#

POST /upload-file#

Upload File

Upload a file, providing a URL that can be used by the code interpreter.

This takes form data:

  • file - an file.

Status Codes:
  • 200 OK

    Successful Response

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "file_url": "string"
    }
    

Retrieval#

POST /datasets/{dataset_name}/prepare-retrieval#

Prepare Retrieval

Start preparing a retrieval DB for the given dataset.

Returns a job ID. You can use GET /jobs/prepare-retrieval/{job_id}/status to query the status of the job.

Parameters:
  • dataset_name (string) – The name of the dataset to prepare retrieval for.

Status Codes:
  • 200 OK

    Successful Response

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    string
    

GET /jobs/prepare-retrieval/{job_id}/status#

Get Prepare Job Status

Check the status of a prepare retrieval job.

Parameters:
  • job_id (string) – The ID of the prepare-retrieval job to get status for.

Example request:

GET /jobs/prepare-retrieval/{job_id}/status HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Successful Response

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "job_status": "PENDING",
        "detail": "string",
        "history": [
            {}
        ]
    }