You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QnA Maker多轮对话配置后遇401授权错误求助

解决QnA Maker 401授权错误及多轮对话不显示问题

你遇到的核心问题是QnA Maker API调用返回401未授权错误,这直接导致多轮对话功能无法正常触发。我给你几个针对性的排查和解决思路:

  • 确认密钥类型是否正确
    QnA Maker有两种密钥:Authoring Key(用于创建/编辑知识库)和Endpoint Key(用于调用generateAnswer接口)。你的代码里用的是Endpoint Key,方向是对的,但一定要确保你复制的是Azure门户中QnA Maker资源里的Endpoint Key,而非Authoring Key。很多人会搞混这两个,误用Authoring Key调用generateAnswer必然会返回401。

  • 检查环境变量配置是否生效
    你的代码依赖process.env.QnAEndpointKey等环境变量,先确认这些变量是否被正确加载。可以临时在代码里加一行console.log(key)打印密钥值,看看是否和Azure后台的完全一致(注意测试完立刻删除这行代码,避免密钥泄露)。如果用的是.env文件,要确保文件格式正确,没有多余空格或引号。

  • 验证API请求URL的格式
    你的URL拼接逻辑是${ endpoint }/qnamaker/knowledgebases/${ kbId }/generateAnswer,要确认endpoint的值是完整的根域名,比如https://your-qna-resource-name.azurewebsites.net,不要带/qnamaker后缀——如果endpoint本身包含这个后缀,拼接后会出现重复路径,导致URL无效,进而触发401或404错误。

  • 排查QnA Maker资源的网络权限
    如果你的QnA Maker资源设置了网络访问限制(比如仅限特定IP访问),而Bot服务所在的IP不在允许列表里,也会返回401。你可以临时在Azure门户的QnA Maker资源“网络”设置中,把访问权限改成“所有网络”测试是否能正常调用。如果问题解决,再把Bot服务的公网IP添加到允许列表中。

  • 多轮对话的后续验证
    等授权问题解决后,还要确认两个关键点:一是知识库已正确配置多轮对话的prompt(在QnA Maker编辑界面,每个问题的回答里已添加关联的后续问题);二是代码里正确传递了qnAcontext参数——这个参数需要包含上一轮对话返回的context信息,QnA Maker才能返回对应的多轮选项。

内容的提问来源于stack exchange,提问作者Moses

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:23:18