Runtime - Generate Answer

GenerateAnswer call to query the knowledgebase.

POST {RuntimeEndpoint}/qnamaker/knowledgebases/{kbId}/generateAnswer

URI Parameters

Name In Required Type Description
kbId
path True
  • string

Knowledgebase id.

RuntimeEndpoint
path True
  • string

QnA Maker App Service endpoint (for example: https://{qnaservice-hostname}.azurewebsites.net).

Request Header

Name Required Type Description
Authorization True
  • string

Request Body

Name Type Description
context

Context object with previous QnA's information.

isTest
  • boolean

Query against the test index.

qnaId
  • string

Exact qnaId to fetch from the knowledgebase, this field takes priority over question.

question
  • string

User question to query against the knowledge base.

rankerType
  • string

Optional field. Set to 'QuestionOnly' for using a question only Ranker.

scoreThreshold
  • number

Threshold for answers returned based on score.

strictFilters

Find only answers that contain these metadata.

strictFiltersCompoundOperationType

Optional field. Set to OR for using OR as Operation for Strict Filters.

top
  • integer

Max number of answers to be returned for the question.

userId
  • string

Unique identifier for the user. Optional parameter for telemetry. For more information, refer Analytics and Telemetry.

Responses

Name Type Description
200 OK

GenerateAnswer call response.

Other Status Codes

Error response.

Security

Authorization

Type: apiKey
In: header

Examples

Successful query

Sample Request

POST {RuntimeEndpoint}/qnamaker/knowledgebases/9d091697-fb8c-4ed5-9ac0-35bf8273bfff/generateAnswer
Authorization: EndpointKey {Primary/Secondary EndpointKey}
{
  "question": "qna maker and luis",
  "top": 6,
  "isTest": true,
  "scoreThreshold": 20,
  "strictFilters": [
    {
      "name": "category",
      "value": "api"
    }
  ],
  "userId": "sd53lsY="
}

Sample Response

{
  "answers": [
    {
      "score": 28.54820341616869,
      "id": 20,
      "answer": "There is no direct integration of LUIS with QnA Maker. But, in your bot code, you can use LUIS and QnA Maker together.",
      "source": "Custom Editorial",
      "questions": [
        "How can I integrate LUIS with QnA Maker?"
      ],
      "metadata": [
        {
          "name": "category",
          "value": "api"
        }
      ]
    }
  ]
}

Definitions

Context

Context of a QnA

Error

The error object. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.

ErrorCodeType

One of a server-defined set of error codes.

ErrorResponse

Error response. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.

InnerErrorModel

An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.

MetadataDTO

Name - value pair of metadata.

PromptDTO

Prompt for an answer.

Qna

QnADTO - Either QnaId or QnADTO needs to be present in a PromptDTO object

QnASearchResult

Represents Search Result.

QnASearchResultList

Represents List of Question Answers.

QueryDTO

POST body schema to query the knowledgebase.

StrictFiltersCompoundOperationType

Optional field. Set to OR for using OR as Operation for Strict Filters.

Context

Context of a QnA

Name Type Description
isContextOnly
  • boolean

To mark if a prompt is relevant only with a previous question or not. true - Do not include this QnA as search result for queries without context false - ignores context and includes this QnA in search result

prompts

List of prompts associated with the answer.

Error

The error object. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.

Name Type Description
code

One of a server-defined set of error codes.

details

An array of details about specific errors that led to this reported error.

innerError

An object containing more specific information than the current object about the error.

message
  • string

A human-readable representation of the error.

target
  • string

The target of the error.

ErrorCodeType

One of a server-defined set of error codes.

Name Type Description
BadArgument
  • string
EndpointKeysError
  • string
ExtractionFailure
  • string
Forbidden
  • string
KbNotFound
  • string
NotFound
  • string
OperationNotFound
  • string
QnaRuntimeError
  • string
QuotaExceeded
  • string
SKULimitExceeded
  • string
ServiceError
  • string
Unauthorized
  • string
Unspecified
  • string
ValidationFailure
  • string

ErrorResponse

Error response. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.

Name Type Description
error

The error object.

InnerErrorModel

An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.

Name Type Description
code
  • string

A more specific error code than was provided by the containing error.

innerError

An object containing more specific information than the current object about the error.

MetadataDTO

Name - value pair of metadata.

Name Type Description
name
  • string

Metadata name.

value
  • string

Metadata value.

PromptDTO

Prompt for an answer.

Name Type Description
displayOrder
  • integer

Index of the prompt - used in ordering of the prompts

displayText
  • string

Text displayed to represent a follow up question prompt

qna

QnADTO - Either QnaId or QnADTO needs to be present in a PromptDTO object

qnaId
  • integer

Qna id corresponding to the prompt - if QnaId is present, QnADTO object is ignored.

Qna

QnADTO - Either QnaId or QnADTO needs to be present in a PromptDTO object

Name Type Description
answer
  • string

Answer text

context

Context of a QnA

id
  • integer

Unique id for the Q-A.

metadata

List of metadata associated with the answer.

questions
  • string[]

List of questions associated with the answer.

source
  • string

Source from which Q-A was indexed. eg. https://docs.microsoft.com/en-us/azure/cognitive-services/QnAMaker/FAQs

QnASearchResult

Represents Search Result.

Name Type Description
answer
  • string

Answer.

context

Context object of the QnA

id
  • integer

Id of the QnA result.

metadata

List of metadata.

questions
  • string[]

List of questions.

score
  • number

Search result score.

source
  • string

Source of QnA result.

QnASearchResultList

Represents List of Question Answers.

Name Type Description
answers

Represents Search Result list.

QueryDTO

POST body schema to query the knowledgebase.

Name Type Description
context

Context object with previous QnA's information.

isTest
  • boolean

Query against the test index.

qnaId
  • string

Exact qnaId to fetch from the knowledgebase, this field takes priority over question.

question
  • string

User question to query against the knowledge base.

rankerType
  • string

Optional field. Set to 'QuestionOnly' for using a question only Ranker.

scoreThreshold
  • number

Threshold for answers returned based on score.

strictFilters

Find only answers that contain these metadata.

strictFiltersCompoundOperationType

Optional field. Set to OR for using OR as Operation for Strict Filters.

top
  • integer

Max number of answers to be returned for the question.

userId
  • string

Unique identifier for the user. Optional parameter for telemetry. For more information, refer Analytics and Telemetry.

StrictFiltersCompoundOperationType

Optional field. Set to OR for using OR as Operation for Strict Filters.

Name Type Description
AND
  • string
OR
  • string