如何通过API请求启用Dialogflow ES代理的情感分析功能
Dialogflow ES代理开启情感分析功能的API调用方案
接口基础信息
开启情感分析本质是更新Agent级别的全局配置,不需要单独调用功能开通类接口,REST接口规格如下:
- 请求方法:
PATCH - 请求路径:
https://dialogflow.googleapis.com/v2/projects/<替换为你的GCP项目ID>/agent - 必带查询参数:
updateMask=enableSentimentAnalysis,这个参数用来指定本次请求只更新情感分析开关字段,缺失的话接口会忽略你传的开关配置,不会生效。
必填参数配置
请求头配置
Authorization:值格式为Bearer <你的有效访问令牌>,令牌需要对应拥有Dialogflow代理编辑权限的身份(服务账号/OAuth2.0授权账号均可)Content-Type:固定值application/json; charset=utf-8
请求体配置
最小合法请求体只需要传开关字段即可,不需要传Agent的其他冗余配置:
{ "enableSentimentAnalysis": true }
完整操作流程
- 准备鉴权凭证:测试环境可以直接通过gcloud工具执行
gcloud auth application-default print-access-token获取临时访问令牌;生产环境建议用绑定了dialogflow.agents.update权限的服务账号生成长效访问令牌。
- 准备鉴权凭证:测试环境可以直接通过gcloud工具执行
- 替换请求路径里的项目ID占位符,拼接上
updateMask查询参数,构造完整请求地址。
- 替换请求路径里的项目ID占位符,拼接上
- 按上述要求填好请求头、请求体后发送请求。
- 结果校验:如果接口返回200状态码,且响应体里的Agent配置包含
"enableSentimentAnalysis": true字段,说明配置已经生效。
- 结果校验:如果接口返回200状态码,且响应体里的Agent配置包含
生效说明
配置生效后,你后续发送的所有
detectIntent、streamingDetectIntent会话请求,返回结果中会自动携带sentimentAnalysisResult字段,包含用户输入文本的情感正负向得分、情感强度值,不需要在单次会话请求中额外传参开启。
常见踩坑提示
- 不要遗漏
updateMask查询参数,这是配置不生效的最常见原因 - 如果返回403错误,先检查你使用的鉴权身份是否拥有目标项目的Dialogflow代理编辑权限
- 该配置是全局生效的,开启后代理下所有环境(测试、正式)的会话请求都会返回情感分析结果
内容的提问来源于stack exchange,提问作者PSA
相关产品推荐
相关产品推荐

