Ask Question

Chat with the document, response in server-sent events mode by default, you can change it through stream parameter.

Consume one question quota whether it's upon single document or collection.

Response:

if document is pdf/doc/docx format, structure is as follows:

{
    "data": {
        "answer": "answer to the question",
        "id": question_id,
        "source_info": [
            {
                # key: page number
                # value: rects
                '0': [[38.1063, 557.8058, 553.9003, 584.0043]]
            },
            {'1': [[38.0, 152.3994, 523.6151, 178.6392]], 'upload_id': 'xxxx'},
            {'0': [[38.0, 758.0623, 537.0082, 784.0]], 'upload_id': 'xxxx'},
            ...
        ]
    }
}

if document is md/epub/txt/website format, structure is as follows:

{
    "data": {
        "answer": "answer to the question",
        "id": question_id,
        "source_info": [
            {
            # key: element data-index
            # value: element xpath
            198: [{xpath: "/html/body/div/div[199]"}]
            },
            {
            "material": "", # selected text with HTML tags
            "indexes": [
                3,
                4,
                5,
                6
            ],
            "focusNode": "div[1]/p[5]/text()[1]",
            "upload_id": "903d971d-8250-47cc-a649-4b6ca35032dc",
            "anchorNode": "div[1]/p[2]/text()[1]",
            "focusOffset": "225",
            "anchorOffset": "2"
        }
            ...
        ]
    }
}
  • answer: chunks of answer, may be Markdown format to support rich text, for example: Tables. For detailed_citation answer, the span tag chunk may be as follows:

    autobiography captured the pre-Nazi Europe[<span data-index="0">1</span>]
    

    The tag attr data-index is the index of the source in source_info array, which is used to highlight the source of the previous answer sentences in your PDF viewer. The highlighting method is same as source_info, and just use slice of source_info array as parameter.

  • id: id of the question, you can use it to GET /questions/{question_id} later.

Please note: you should store id in your database, because we don't have a GET /questions/list API to list all questions for now.

  • source_info: only responses in the last chunk of server-sent events mode, may be an empty list. So if the last chunk doesn't contain source_info attr, it means error occurred. Page number may not be ordered, you can use this information to highlight the source of specific upload_id document of the answer in your PDF viewer, by
    calling drawSources method of our DOCViewerSDK, and converting source_info to Source parameter.
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required
length between 36 and 36

document id or collection id, created by POST /documents/upload or POST /collections APIs accordingly.

string
required
length between 1 and 3000

question to ask

boolean
Defaults to true

If set, partial message deltas will be sent, like in ChatGPT of OpenAI. Tokens will be sent as data-only server-sent events as they become available.

SelectedMeta | HtmlSelectedMeta

When use Ask About Selected Text, this field is acquired from EVENT_TYPES.CHAT_ICON_CLICKED of our DOCViewerSDK, and then filled with the document upload_id, when ask upon a collection, it's the sub document id of collection.

history
array of objects
Defaults to

chat history, used for Threaded Chat, this parameter simulates OpenAI' API. history is question and answer pairs, which is a list of ChatMessage objects. The max input tokens of history, selected_meta.material and question is 8000, which is a little less than OpenAI's limit of Embedding models. Sample parameter is as follows:

    [
      {"role": "user", "content": "Who..."},
      {"role": "assistant", "content": "The..."},
      {"role": "user", "content": "Where..."}
      {"role": "assistant", "content": "The..."},
    ]
    
History
boolean
Defaults to true

if true: limit responses to current file's information, else: responses go freely with knowledge of our AI

boolean
Defaults to false

Whether to show the source at the end of each sentence or not. Requires enabling the search_entire_doc setting.

string

preferred language of answer to the question, if not provided, we will try to detect the language automatically, which is flexible and also works well. You'd better use ISO language name, such as English, Chinese. But we can't promise, when AI can't answer your question well, it generally answers in English.

Responses

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json