云服务器内容精选

  • 发布测试 意图配置完成后,需要训练发布才能在对话体验中生效。 单击页面上方导航栏中“发布测试”,进入“发布测试”页面。 单击“训练模型”,弹出“训练模型”对话框。 图1 训练模型 勾选“用户常用问法”,设置技能阈值、描述信息。 单击“确定”。在下方版本列表中显示发布的版本信息,状态为“训练中”。 等待约3分钟训练结束,版本状态变为“训练成功”,单击右侧操作列的“线上发布”按钮,即可将当前版本发布到线上。 父主题: 基于 函数工作流 服务创建“查天气”技能
  • 编辑意图 当您创建好一个意图,您需要设置用户问法、槽位信息等,使机器人可以理解用户的这个意图,并做出回复。 在“意图列表”中,单击意图名称,进入意图编辑页面。 “意图名称”、“描述”信息可以修改,“意图标识”不支持修改。 添加槽位。 触发意图的关键信息即为槽位。比如,用户咨询“查询7月15日北京的天气”,其中“北京”为“地点”槽位,“7月15日”为“时间”槽位。用户问题中可以不包含“时间”槽位,当机器人没有识别到“时间”槽位,默认查询当天的天气。 单击“添加槽位”,弹出“添加槽位”对话框,参考图2填写参数,单击“确定”。 图2 添加“时间”槽位 图3 添加“地点”槽位 设置用户问法。 当用户与机器人进行对话时,如果用户问题与设置的用户问法具有相同的语义,则可以触发该意图。 在输入框中输入常用问法,单击“添加”,下方显示添加的问法。 图4 添加用户问法 在添加的用户问法语料中,添加滑词,标注槽位。 鼠标左键滑动选中关键词,显示“选择槽位”悬浮框,悬浮窗中会显示槽位管理中配置的所有槽位,单击需要标注的槽位。 图5 标注槽位 设置机器人回复,选择“调用函数回复”,在下拉框中选择函数“query_weather”。标注完成后单击“保存”,保存设置信息。 您需要提前在函数工作流中创建函数,可参考创建query_weather函数操作。创建后,可下拉进行选择。调用函数时会将槽位收集的结果作为参数引入,用户可以在函数中使用槽位信息。通过函数回复可以调用其他已有的内容或让机器人做复杂的逻辑处理。 图6 机器人回复
  • 创建“查天气”技能 首先,您需要给机器人创建一个名为“查天气”的技能。 进入 对话机器人服务 管理控制台,在左侧菜单栏中选择“ 智能问答机器人 ”,然后单击已创建机器人的ID或者“机器人管理”按钮。 在“ 问答机器人 ”页面,左侧导航栏选择“技能管理”,单击“添加技能”。 在添加技能对话框中选择“自定义技能”,单击“下一步”。输入技能名称“查天气”,单击“确定”。 图1 自定义技能名称 父主题: 基于函数工作流服务创建“查天气”技能
  • 调整阈值 训练好的模型可以通过调整阈值,影响机器人直接回答的准确率。阈值越高,机器人越严谨,对用户问的泛化能力越弱,识别准确率越高;阈值越低,机器人越开放,对用户问的泛化能力越强,识别准确率越低。 针对历史版本的模型,可以根据当前模型调节直接返回答案的阈值。 在“模型管理”页面,在模型列表的操作列单击“调整阈值”。 图6 调整阈值 如下图所示,您可以根据实际需求,选择合适的阈值,然后单击“确定”。 用户问法与标准问的相似度大于直接回答阈值时,直接返回相应答案。 用户问法与标准问的相似度大于推荐问阈值时(小于直接回答阈值),返回相似度较高的标准问给用户再次确定用户意图。 用户问法与标准问的相似度小于推荐问阈值时,返回识别失败回复话术。 图7 设置阈值
  • 调整阈值效果示例 阈值调整前,推荐问阈值为0.6,直接回答阈值为0.8,输入用户问“我可以去哪办理”,机器人返回相似度得分大于0.8的标准问给用户,并推荐相似度得分大于0.6的标准问: 图8 阈值调整前 单击“查看JSON”,查看具体的相似度得分。 图9 查看相似度得分 阈值调整后,推荐问阈值为0.7,直接回答阈值为0.9,输入用户问“我可以去哪办理”,语料库中没有与用户问相似度得分高于0.9的标准问,机器人返回相似度得分高于0.7的标准问: 图10 阈值调整后 单击“查看JSON”,查看具体的相似度得分。 图11 查看相似度得分
  • 其他操作 批量操作 在“问答管理”页面,勾选单个或多个问题名称,单击“批量操作”,您可以批量变更类别或者批量删除语料。 图4 批量操作 编辑 针对已有语料,当业务发生变更时,需要对已有的语料进行编辑。支持对语料的问题类别、问题、答案进行修改。 在“问答管理”页面,单击操作列的“编辑”,进行语料修改。 图5 编辑语料 在编辑知识页面,您可以根据实际情况修改问题类别、问题、扩展问、问题规则、答案。 信息修改完成后,单击“确定”保存。 删除 当业务发生变更时,某些语料已失效。您可以删除语料,以释放资源。语料删除后无法恢复,请谨慎操作。 在“问答管理”页面,单击操作列的“删除”,删除单条语料。 图6 删除语料 在删除问答语料弹窗中确认是否执行删除操作,确认删除单击“确定”。 查找 按日期查找 在“问答管理”页面上方,单击按钮,选择开始日期和结束日期,然后单击“确定”,筛选出符合条件的语料。 图7 按日期查找语料 按关键字查找 在“问答管理”页面上方输入框中输入关键字,单击按钮,筛选出符合条件的语料。 图8 按关键字查找语料 刷新 在“问答管理”页面右上角,单击刷新问题列表。 导出 在“问答管理”页面右上角,单击导出问答对。导出成功后,单击,可以查看导出来的文件。目前支持导出的格式为xslx。
  • 编辑意图 当您创建好一个意图,您需要设置用户问法、槽位信息、机器人回复等,使机器人可以理解用户的这个意图,并做出回复。 在“配置意图”页面,单击意图名称,进入“编辑意图”页面。 设置意图基本信息。 可以修改“意图名称”、“描述”信息,“意图标识”不支持修改。 设置用户问法。 用户问法即用户在让机器人执行该意图时,经常使用的问法。可以添加语料,也可以添加一些规则来增强机器人识别能力。 用户问法语料 通过添加用户常用问法,训练模型泛化语料,从而让机器人理解用户的意图。 在输入框中输入常用问法,单击“添加”,下方显示添加的问法信息。也可以单击“批量添加用户问法语料”,根据示例批量添加语料,然后单击“确定”。 图2 添加用户问法 您可以选择在配置意图时添加问法语料,也可以在创建训练集时添加训练语料,请参见创建训练集章节操作。 用户问法模板 通过添加关键字词,匹配用户问法,从而让机器人理解用户的意图。 单击“添加模板”,弹出“添加模板”对话框。 图3 添加模板 在输入框中输入模板内容。 其中“[]”用于分隔不同词语;“|”用于分隔多个同义词;“[W:1-10]”用于通配占位,数字代表字符个数区间,支持0-99之间的数字。规则中可添加已创建的槽位,或预置的常用词组。从而可以更多的匹配到用户问中相关的信息。 例如:“[W:1-10][查][北京|南京]的天气”表示查询北京或者南京的天气,可匹配“帮我查北京的天气”。 选择模板的匹配规则。 包含:表示用户问法要包含符合模板格式的内容。 完全匹配:表示用户问必须和用户问法模板一模一样。 添加槽位。 触发意图的关键信息即为槽位。比如“查询北京的天气”语料,为“北京”关联名为“城市”的槽位。每个槽位都需要对应词典才可以使用。每个槽位必须对应1个或多个词典,这样机器人才能从用户问中提取槽位信息。 单击“添加槽位”,弹出“添加槽位”对话框。 图4 添加槽位 根据如下参数添加槽位信息。 表1 添加槽位页面参数说明 名称 说明 关联槽位 不同意图间可复用同一槽位,可达到槽位值传递的效果。如不需要,可选择不关联。 例如,查温度意图中添加了地点槽位A,查气象意图中同样添加了地点槽位B并关联了查温度中的地点槽位A。这样当用户查完温度后,再查气象时,无需再说明地点信息。机器人会默认查气象的地点为查温度时所使用的地点。 槽位标识 表示槽位的唯一ID,用于关联槽位。 当“关联槽位”参数设置为“不关联”,则需要用户自定义槽位标识,用于区分槽位。 槽位名称 槽位的名称。 是否必须 是:表示机器人如果要完成当前意图任务,则必须获得该信息,如果用户未能提供,机器人会通过添加的追问话术进行追问。可以选择不同追问轮数,配置不同话术进行追问。 否:表示机器人即便无法获得该信息,也可以完成当前意图任务。可以设置默认值,如果用户未填充该槽位,会默认使用该默认值。 词典选择 选择现有词典 在可选择词典中,单击需要的词典,添加至右侧已选择词典。 对已选择的自定义词典可勾选答案候选,勾选后,机器人在追问用户时,会将所选词典中的词条取10个作为候选答案展示给用户,供用户选择。 通过“刷新”按钮,刷新可选词典框。 通过“新建”按钮,跳转到新建词典页面。 在添加的用户问法语料中,添加滑词,标注槽位。 您需要先添加槽位,再标注槽位。添加槽位操作可参考添加槽位。 鼠标左键滑动选中关键词,显示“选择槽位”悬浮框,悬浮窗中会显示槽位管理中配置的所有槽位,单击需要标注的槽位即可。 图5 标注槽位 如果需要取消槽位,鼠标左键单击问法中标记的滑词,显示悬浮框,单击右上角的删除按钮即可。 设置机器人回复。 图6 机器人回复 文本回复 机器人在识别到用户的意图并完成槽位收集后,进行文本类型的回复。 您可以选择在文本回复中插入槽位的取值,机器人则会使用该槽位被填充的值进行回复。 引用知识库回复 机器人在识别到用户的意图并完成槽位收集后,引用添加的问答进行回复。 您需要事先在知识库中创建问答,具体请参见管理问答语料。创建后,可通过搜索框搜索问题关键字,并选择需要引用的问题。如果该问题有多个答案,可选择默认答案即配置的第一个答案或随机答案进行回复,也可指定某个答案进行回复。 调用函数回复 机器人在识别到用户的意图并完成槽位收集后,调用函数进行回复。 您需要事先在函数工作流中创建函数。创建后,可下拉进行选择。调用函数时会将槽位收集的结果作为参数引入,用户可以在函数中使用槽位信息。通过函数回复可以调用其他已有的内容或让机器人做复杂的逻辑处理。 设置意图跳转。 如果需要机器人在执行当前意图任务时,主动转移到其他意图可通过配置意图跳转规则实现。比如,在机器人在执行查询空闲会议室意图时,主动跳转到预定会议室意图。 图7 意图跳转 单击“新增意图跳转”,显示跳转规则设置。 选择需要主动跳转的目标意图。 设置跳转的条件,包括槽位检测和函数返回值检测。 槽位检测:可根据槽位取值的具体情况作为跳转条件。 函数返回值检测:如果您选择了调用函数回复,则可以选择该条件,即可以根据函数返回值的具体情况作为跳转条件。多个条件间是“与”关系。多个规则组间是“或”关系。 单击“保存”,保存设置信息。
  • 创建意图 在“技能管理”页面,单击技能名称进入“配置意图”页面。 在“配置意图”页面,单击“创建”,弹出“创建意图”对话框。 图1 创建意图 根据实际需要,输入“意图标识”、“意图名称”和“描述”信息。 意图标识:只支持由大小写字母、数字、及部分符号(“_”)组成,输入长度为1~63字符。必须以字母开头,创建后不支持修改。 意图名称:只支持由大小写字母、数字、汉字以及部分符号(“_”、“-”、“#”)组成,输入长度为1~63字符,名称创建后可修改。 描述:最多不能超过255个字符。 单击“确认并继续设置”,进入“编辑意图”页面,具体操作请参见编辑意图。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 用于获取操作API的权限。 获取Token 接口响应消息头中X-Subject-Token的值即为Token。 Content-Type 是 String 消息体的类型(格式),参数值为“application/json”。 表3 请求Body参数 参数 是否必选 参数类型 说明 session_id 是 String 会话ID,由任意字符串组成,由用户自定义产生,用来区分不同的会话。 具体获取方式请参见开启会话章节。 user_id 否 String 用户ID,用来区分唯一用户信息。 question 是 String 用户问题。 extends 否 Extends object 扩展参数项。 threshold_enable 否 Boolean true:启动内部阈值,返回经过阈值处理之后的答案。 false:不启用内部阈值,返回原答案。 chat_enable 否 Boolean 默认true true:使用内部闲聊语料进行兜底。 false:不使用闲聊兜底。 operate_type 否 Integer 调用接口时候传入,用以标记的问答的行为,默认为0,最终会展示在问答日志里。 0 用户输入 1 单击热点问题 3 单击推荐问题 4 单击问题提示 表4 Extends 参数 是否必选 参数类型 描述 domains 否 Array of strings 领域列表,多个领域用分号隔开。如果设置了领域且领域不为空,就从这些领域中匹配答案,否则就从该用户的全部知识库匹配答案。 当前最多支持10个领域。 top 否 Integer 返回答案数量,默认为5,取值范围1~10。
  • 响应消息 状态码: 200 表5 响应Body参数 参数 参数类型 描述 request_id String 请求ID。 调用失败时无此字段。 question String 问题。 调用失败时无此字段。 answers Array of Answers objects 最相似的问题集。调用失败时无此字段。 extends Extends object 扩展参数项。调用失败时无此字段。 表6 Answers 参数 参数类型 描述 qa_pair_id String 问答对ID。 st_question String 标准问题。 ex_questions Array of ExQuestions objects 扩展问。 answer String 答案。 score Float 相似度得分,精确到小数点后3位。 domain String 问题类别。 表7 ExQuestions 参数 参数类型 描述 content String 扩展问题。 表8 Extends 参数 是否必选 参数类型 描述 domains 否 Array of strings 领域列表,多个领域用分号隔开。如果设置了领域且领域不为空,就从这些领域中匹配答案,否则就从该用户的全部知识库匹配答案。 当前最多支持10个领域。 top 否 Integer 返回答案数量,默认为5,取值范围1~10。 状态码: 400 表9 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 请求示例 输入问题“桌面云无法登录”,返回最匹配的top5个知识点 POST https://{endpoint}/v1/1604d8170cd84440a81281e5a3a04f8b/qabots/303a0a00-c88a-43e3-aa2f-d5b8b9832b02/requests Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "user_id": "z00123456", "session_id": "xxxxxxxxxxxxxxxxxx", "operate_type":3, "question": "桌面云无法登录", "extends":{ "domains":["桌面云"], "top":5 }, "threshold_enable":false, "chat_enable":true }
  • URI POST https://{endpoint}/v1/{project_id}/qabots/{qabot_id}/requests 表1 路径参数 参数 是否必选 参数类型 描述 endpoint 是 String 终端节点,即调用API的请求地址。 不同服务不同区域的endpoint不同,您可以从终端节点中获取。 例如,CBS服务在“华北-北京四”区域的“endpoint”为“cbs-ext.cn-north-4.myhuaweicloud.com”。 project_id 是 String 项目ID,用于资源隔离。请参见获取项目ID。 qabot_id 是 String qabot编号,UUID格式,如:303a0a00-c88a-43e3-aa2f-d5b8b9832b02。 进入问答机器人的Console界面,在“机器人名称/ID”列显示对应的qabot_id。
  • 调用API获取项目ID 项目ID还可以通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为 IAM 的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,例如, 对话机器人 服务部署的区域为“cn-north-4”,响应消息体中查找“name”为“cn-north-4”,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 错误码说明 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 表1 错误码 状态码 错误码 错误信息 处理措施 401 CBS.0000 用户无公测权限。 请根据界面提示,申请公测权限。 401 CBS.0011 认证失败。 检查Token是否正确,使用正确的Token重新尝试。 401 CBS.0012 认证信息缺失。 补全正确的认证信息后重新尝试。 401 CBS.0013 认证信息获取失败。 检查Token是否正确,使用正确的Token重新尝试。 400 CBS.0021 请求参数异常。 检查请求参数字段名,修改正确后重新尝试。 400 CBS.0022 请求参数内容错误。 检查请求参数内容,修改正确后重新尝试。 500 CBS.9999 db error。 服务后台错误,请联系专业工程师。 500 CBS.9998 iam error。 服务后台错误,请联系专业工程师。 500 CBS.9997 lab内部有core异常。 服务后台错误,请联系专业工程师。 400 CBS.1114 服务未开通。 按根据界面提示开通或购买服务。 400 CBS.1124 服务开通失败。 检查是否符合服务开通条件,然后重新尝试。 500 CBS.1134 请求下发失败。 服务后台错误,请联系专业工程师。 500 CBS.0031 内部服务异常。 服务后台错误,请联系专业工程师。 500 CBS.0032 ES资源不存在。 服务后台错误,请联系专业工程师。 400 CBS.1214 查询的数据集资源不存在。 检查数据集id是否正确,使用正确的id重新尝试。 400 CBS.1611 OBS访问失败。 确认OBS认证信息是否正确,使用正确的认证信息重新尝试。 400 CBS.1612 OBS资源不存在。 确认OBS资源是否存在,然后重新尝试。 400 CBS.1613 文件格式异常。 确认文件格式符合要求后重新尝试。 400 CBS.2114 查询的qabot资源不存在。 检查qabot id是否正确,使用正确的id重新尝试。 400 CBS.2122 qabot创建参数错误。 检查qabot参数,使用正确的参数重新尝试。 400 CBS.2125 机器人个数超过限制。 检查已创建的机器人个数是否已超过3个,再重新尝试。 400 CBS.2145 lab相关的知识库、词典、模型等资源没有删除。 检查lab内的知识库、词典、模型等资源是否已被删除,再重新尝试。 400 CBS.2154 待重启的qabot资源不存在。 检查qabot id是否正确,使用正确的id重新尝试。 400 CBS.2202 知识库的导入参数错误。 检查知识库的导入参数,使用正确的参数重新尝试。 400 CBS.2203 待导入知识库的文件格式异常。 检查文件格式,修改正确后重新尝试。 400 CBS.2205 待导入知识库的qa对个数超过限制。 检查待导入的qa对个数是否已超过100万条,再重新尝试。 400 CBS.2611 OBS访问失败。 确认该账号有无访问OBS权限,再重新尝试。 400 CBS.2624 桶资源不存在。 确认桶资源是否存在,然后重新尝试。 400 CBS.2641 uri中的path参数异常。 检查uri参数中的path字段名,修改正确后重新尝试。 400 CBS.2312 body参数错误。 检查body中的参数,使用正确的参数重新尝试。 400 CBS.2322 问答请求参数错误。 检查body中的参数,使用正确的参数重新尝试。 400 CBS.2334 待评价的问答资源不存在。 检查请求id是否正确,使用正确的id重新尝试。 400 CBS.2344 待转成人工的问答资源不存在。 检查请求id是否正确,使用正确的id重新尝试。 400 CBS.2412 待检测文本序列参数错误。 检查body中的参数,使用正确的参数重新尝试。 400 CBS.2413 待检测文本序列格式异常。 检查文本序列的格式,修改正确后重新尝试。 400 CBS.0001 用户请求参数错误 请根据错误提示检查请求参数并修改。 401 CBS.0002 认证失败 检查token是否正确,使用正确token重新尝试。 400 CBS.0003 无法找到请求资源 请根据错误提示,检查请求的资源id是否填写正确。
  • 基本概念 账号 用户注册华为云时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用用户进行日常管理工作。 用户 用户是服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 华为云区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 父主题: 使用前必读