如何通过REST API向Azure QnA Maker批量添加多个URL?
在Azure QnA Maker中添加更多URL的REST API方法及示例
好问题!要给已运行的QnA Maker知识库新增更多公网URL,你需要调用Update Knowledgebase的PUT REST API方法——这个接口专门用来更新现有知识库的内容,包括添加新的数据源(比如URL、文件或者手动Q&A对)。
关键准备项
在调用API前,你得先备好这几个参数:
- 你的QnA Maker资源订阅密钥:可以在Azure门户对应资源的「密钥和终结点」页面找到
- 目标知识库ID:要么在QnA Maker门户的知识库详情页查看,要么通过
List KnowledgebasesAPI获取 - 资源所在区域:比如
westus、eastasia,对应API请求的域名前缀
入门请求示例
请求URL
把占位符换成你的实际信息:
PUT https://<你的区域>.api.cognitive.microsoft.com/qnamaker/v4.0/knowledgebases/<知识库ID>
请求头部
必须包含这两个头部:
Ocp-Apim-Subscription-Key: <你的订阅密钥> Content-Type: application/json
请求体
核心是在add字段下的urls数组里填入要新增的URL——API会自动把这些新URL的内容合并到现有知识库,不会覆盖已有的数据:
{ "add": { "urls": [ "https://your-new-faq-site-1.com/faq.html", "https://your-new-faq-site-2.com/help-center.html" ] }, "delete": {}, "update": {} }
后续检查更新状态
因为知识库更新是异步操作,调用后会返回202 Accepted状态码和一个operationId。你可以用这个ID调用Get Operation Details API来确认更新是否完成:
GET https://<你的区域>.api.cognitive.microsoft.com/qnamaker/v4.0/operations/<operationId>
返回结果里的operationState变成Succeeded就说明新URL的内容已经成功导入知识库了。
小提示
- 确保要添加的URL是公网可访问的,QnA Maker的爬虫需要能正常抓取页面内容
- 如果需要,你还可以在
add字段里同时添加手动Q&A对或者文件,一次完成多种内容更新 - 生产环境里别直接硬编码订阅密钥,建议用Azure密钥保管库或者AD认证来管理凭证
内容的提问来源于stack exchange,提问作者Mike Honey
相关产品推荐
相关产品推荐

