Azure QnA Maker Cognitive Service: программно подключить базу знаний к QnA Maker - PullRequest
0 голосов
/ 28 октября 2019

Если я создаю новую базу знаний через портал Azure, мне необходимо подключить к ней существующую службу QnA Maker.

Однако, похоже, нет программного способа сделать это:

REST API QnA Maker предоставляет вызовы для создания и публикации базы знаний, однако информации о том, как указать QnAmaker, нет. используемый сервис:

https://docs.microsoft.com/en-us/rest/api/cognitiveservices/qnamaker/knowledgebase

Я создаю и публикую базу знаний, используя примерно следующие операции, но не могу найти какой-либо способ связать вновь созданную базу знаний с существующей QnAMaker Cognitive Service.

Или я неправильно понял взаимосвязь между этими двумя ресурсами, или это пробел в документации, и если да, то как я могу подключить новый kbase к существующему экземпляру службы QnA Maker?


function create_kb () {

 userId=$(curl -s -X POST "${api_create_end_point}" \
  -H "Content-Type: application/json" \
  -H "Ocp-Apim-Subscription-Key: ${subscription_key}" \
  --data-ascii "${body}" | jq -r '.userId')

}

function get_user_kbases () {

  kbId=$(curl -s -X GET "https://${endpoint}/qnamaker/v4.0/knowledgebases" \
    -H "Ocp-Apim-Subscription-Key: ${subscription_key}" \
    --data-ascii "" | jq -r '.knowledgebases | .[] | select(.name == "govbotkb").id')
  echo "${kbId}"
}


function publish_knowledge_base () {

  echo "Publishing the knowledgebase ${kbId} ..."

  publish_result=$(curl -s -X POST "https://${endpoint}/qnamaker/v4.0/knowledgebases/${kbId}" \
    -H "Ocp-Apim-Subscription-Key: ${subscription_key}" \
    --data-ascii "${body}")

  echo "${publish_result}"

}


function get_knowledgebase_details () {

   echo "Getting knowledgebase details ..."
   echo curl -v -X GET "https://${endpoint}/qnamaker/v4.0/knowledgebases/${kbId}" -H "Ocp-Apim-Subscription-Key: ${subscription_key}"
   kbase_details=$( curl -s -X GET "https://${endpoint}/qnamaker/v4.0/knowledgebases/${kbId}" \
                   -H "Ocp-Apim-Subscription-Key: ${subscription_key}" \
                   --data-ascii "{body}"
                  )
    echo "${kbase_details}"

}

1 Ответ

0 голосов
/ 30 октября 2019

Вы передаете ключ подписки на каждый из этих вызовов API, в том числе при создании базы знаний. Ключ подписки поступает от вашей службы QnA, поэтому он используется для идентификации вашей службы и подключения к ней базы знаний.

...