如果我通过Azure门户创建新的知识库,则需要我将现有的QnA Maker Service连接到它。
但是似乎没有编程的方式可以做到这一点:
QnA Maker REST API提供了创建和发布知识库的调用,但是没有有关如何指定要使用的QnAmaker服务的信息:
https://docs.microsoft.com/en-us/rest/api/cognitiveservices/qnamaker/knowledgebase
我大致使用以下操作来创建和发布知识库,但是似乎找不到任何将新创建的知识库与现有QnA Maker认知服务关联的方法。
我是否误解了这两种资源之间的关系,或者这是文档中的空白?如果是的话,如何将新的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}"
}
答案 0 :(得分:0)
您正在将订阅密钥传递到每个API调用中,包括在创建知识库时。订阅密钥来自您的QnA服务,因此可用于识别您的服务并将知识库连接到该服务。