Knowledgebase - Update

Asynchronous operation to modify a knowledgebase.

PATCH {Endpoint}/qnamaker/v5.0-preview.2/knowledgebases/{kbId}

URI Parameters

Name In Required Type Description
Endpoint
path True

string

Supported Cognitive Services endpoint (e.g., https://< qnamaker-resource-name >.api.cognitiveservices.azure.com).

kbId
path True

string

Knowledgebase id.

Request Header

Name Required Type Description
Ocp-Apim-Subscription-Key True

string

Request Body

Name Type Description
add

Add

An instance of CreateKbInputDTO for add operation

defaultAnswerUsedForExtraction

string

Text string to be used as the answer in any Q-A which has no extracted answer from the document but has a hierarchy. Required when EnableHierarchicalExtraction field is set to True.

delete

Delete

An instance of DeleteKbContentsDTO for delete Operation

enableHierarchicalExtraction

boolean

Enable hierarchical extraction of Q-A from files and urls. The value set during KB creation will be used if this field is not present.

update

Update

An instance of UpdateKbContentsDTO for Update Operation

Responses

Name Type Description
202 Accepted

Operation

Details of the asynchronous operation.

Headers

Location: string

Other Status Codes

ErrorResponse

Error response.

Security

Ocp-Apim-Subscription-Key

Type: apiKey
In: header

Examples

Successful query

Sample request

PATCH {Endpoint}/qnamaker/v5.0-preview.2/knowledgebases/9d091697-fb8c-4ed5-9ac0-35bf8273bfff


{
  "add": {
    "qnaList": [
      {
        "id": 0,
        "answer": "You can change the default message if you use the QnAMakerDialog. See this for details: https://docs.botframework.com/en-us/azure-bot-service/templates/qnamaker/#navtitle",
        "source": "Custom Editorial",
        "questions": [
          "How can I change the default message from QnA Maker?"
        ],
        "metadata": []
      }
    ],
    "urls": [
      "https://docs.microsoft.com/en-us/azure/cognitive-services/Emotion/FAQ"
    ],
    "files": [
      {
        "fileName": "SurfaceManual.pdf",
        "fileUri": "https://download.microsoft.com/download/2/9/B/29B20383-302C-4517-A006-B0186F04BE28/surface-pro-4-user-guide-EN.pdf"
      }
    ]
  },
  "delete": {
    "ids": [
      13,
      35
    ]
  },
  "update": {
    "name": "QnA Maker FAQ Prompts Bot",
    "qnaList": [
      {
        "id": 2,
        "answer": "You can use our REST apis to create a KB. See here for details: https://docs.microsoft.com/en-us/rest/api/cognitiveservices/qnamaker/knowledgebase/create",
        "source": "Custom Editorial",
        "questions": {
          "add": [],
          "delete": []
        },
        "metadata": {
          "add": [],
          "delete": []
        },
        "context": {
          "isContextOnly": false,
          "promptsToAdd": [
            {
              "displayText": "Add Prompts",
              "displayOrder": 0,
              "qna": {
                "id": 0,
                "answer": "Click here to know more https://docs.microsoft.com/en-us/azure/cognitive-services/qnamaker/how-to/multiturn-conversation",
                "source": "Editorial",
                "questions": [
                  "How can I add prompts?"
                ],
                "metadata": [],
                "context": {
                  "isContextOnly": false,
                  "prompts": []
                }
              },
              "qnaId": 0
            },
            {
              "displayText": "Delete Prompts",
              "displayOrder": 0,
              "qna": {
                "id": 0,
                "answer": "Click here to know more https://docs.microsoft.com/en-us/azure/cognitive-services/qnamaker/how-to/multiturn-conversation",
                "source": "Editorial",
                "questions": [
                  "How can I delete delete prompts?"
                ],
                "metadata": [],
                "context": {
                  "isContextOnly": false,
                  "prompts": []
                }
              },
              "qnaId": 0
            },
            {
              "displayText": "Update Knowledgebase",
              "displayOrder": 0,
              "qna": null,
              "qnaId": 3
            }
          ],
          "promptsToDelete": [
            3
          ]
        }
      },
      {
        "id": 3,
        "answer": "You can use our REST apis to update your KB. See here for details: https://docs.microsoft.com/en-us/rest/api/cognitiveservices/qnamaker/knowledgebase/update",
        "source": "Custom Editorial",
        "questions": {
          "add": [],
          "delete": []
        },
        "metadata": {
          "delete": [
            {
              "name": "category",
              "value": "api"
            }
          ],
          "add": [
            {
              "name": "category",
              "value": "programmatic"
            }
          ]
        },
        "context": {
          "isContextOnly": false,
          "promptsToAdd": [
            {
              "displayText": "Regenerate Endpoint keys",
              "displayOrder": 1,
              "qna": null,
              "qnaId": 4
            }
          ],
          "promptsToDelete": [
            4
          ]
        }
      }
    ]
  }
}

Sample response

{
  "operationState": "NotStarted",
  "createdTimestamp": "2018-03-19T07:38:46Z",
  "lastActionTimestamp": "2018-03-19T07:39:29Z",
  "userId": "86bb8390-56c0-42c2-9f81-3de161981191",
  "operationId": "03a4f4ce-30a6-4ec6-b436-02bcdf6153e1"
}

Definitions

Name Description
Add

An instance of CreateKbInputDTO for add operation

Context

Context associated with Qna to be updated.

Delete

An instance of DeleteKbContentsDTO for delete Operation

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.

FileDTO

DTO to hold details of uploaded files.

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.

Metadata

List of metadata associated with the answer to be updated

MetadataDTO

Name - value pair of metadata.

Operation

Record to track long running operation.

OperationStateType

Operation state.

PromptDTO

Prompt for an answer.

Qna

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

QnADTO

Q-A object.

Questions

List of questions associated with the answer.

Update

An instance of UpdateKbContentsDTO for Update Operation

UpdateKbOperationDTO

Contains list of QnAs to be updated

UpdateQnaDTO

PATCH Body schema for Update Qna List

Add

An instance of CreateKbInputDTO for add operation

Name Type Description
files

FileDTO[]

List of files to be added to knowledgebase.

qnaList

QnADTO[]

List of QNA to be added to the index. Ids are generated by the service and should be omitted.

urls

string[]

List of URLs to be added to knowledgebase.

Context

Context associated with Qna to be updated.

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

promptsToAdd

PromptDTO[]

List of prompts to be added to the qna.

promptsToDelete

integer[]

List of prompts associated with qna to be deleted

Delete

An instance of DeleteKbContentsDTO for delete Operation

Name Type Description
ids

integer[]

List of Qna Ids to be deleted

sources

string[]

List of sources to be deleted from knowledgebase.

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

ErrorCodeType

One of a server-defined set of error codes.

details

Error[]

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

innerError

InnerErrorModel

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

Error

The error object.

FileDTO

DTO to hold details of uploaded files.

Name Type Description
fileName

string

File name. Supported file types are ".tsv", ".pdf", ".txt", ".docx", ".xlsx".

fileUri

string

Public URI of the file.

isUnstructured

boolean

Optional Flag to specify if the given file is Unstructured.

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

InnerErrorModel

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

Metadata

List of metadata associated with the answer to be updated

Name Type Description
add

MetadataDTO[]

List of metadata associated with answer to be added

delete

MetadataDTO[]

List of Metadata associated with answer to be deleted

MetadataDTO

Name - value pair of metadata.

Name Type Description
name

string

Metadata name.

value

string

Metadata value.

Operation

Record to track long running operation.

Name Type Description
createdTimestamp

string

Timestamp when the operation was created.

errorResponse

ErrorResponse

Error details in case of failures.

lastActionTimestamp

string

Timestamp when the current state was entered.

operationId

string

Operation Id.

operationState

OperationStateType

Operation state.

resourceLocation

string

Relative URI to the target resource location for completed resources.

userId

string

User Id

OperationStateType

Operation state.

Name Type Description
Failed

string

NotStarted

string

Running

string

Succeeded

string

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

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

Context of a QnA

id

integer

Unique id for the Q-A.

lastUpdatedTimestamp

string

Timestamp when the QnA was last updated.

metadata

MetadataDTO[]

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

QnADTO

Q-A object.

Name Type Description
answer

string

Answer text

context

Context

Context of a QnA

id

integer

Unique id for the Q-A.

lastUpdatedTimestamp

string

Timestamp when the QnA was last updated.

metadata

MetadataDTO[]

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

Questions

List of questions associated with the answer.

Name Type Description
add

string[]

List of questions to be added

delete

string[]

List of questions to be deleted.

Update

An instance of UpdateKbContentsDTO for Update Operation

Name Type Description
defaultAnswer

string

Default answer sent to user if no good match is found in the KB.

name

string

Friendly name for the knowledgebase.

qnaList

UpdateQnaDTO[]

List of Q-A (UpdateQnaDTO) to be added to the knowledgebase.

urls

string[]

List of existing URLs to be refreshed. The content will be extracted again and re-indexed.

UpdateKbOperationDTO

Contains list of QnAs to be updated

Name Type Description
add

Add

An instance of CreateKbInputDTO for add operation

defaultAnswerUsedForExtraction

string

Text string to be used as the answer in any Q-A which has no extracted answer from the document but has a hierarchy. Required when EnableHierarchicalExtraction field is set to True.

delete

Delete

An instance of DeleteKbContentsDTO for delete Operation

enableHierarchicalExtraction

boolean

Enable hierarchical extraction of Q-A from files and urls. The value set during KB creation will be used if this field is not present.

update

Update

An instance of UpdateKbContentsDTO for Update Operation

UpdateQnaDTO

PATCH Body schema for Update Qna List

Name Type Description
answer

string

Answer text

context

Context

Context associated with Qna to be updated.

id

integer

Unique id for the Q-A

metadata

Metadata

List of metadata associated with the answer to be updated

questions

Questions

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