请确认下,是不是BUG?
zhengxijiang opened this issue · 1 comments
我把test_ianswer.py里的json数据
{
'question': "看看理财产品", # 用户问题
'content': "我行的各种理财产品请参考下图,您可以点击图标查看详情,也可以语音或手动选择购买。",
'context': "理财产品",
'url': "",
'behavior': 5376, # 0x1500
'parameter': '{"id": 1, "level": 3, "pos": 0.5}',
'name': "理财产品", # 标准问题
'tid': "0",
'txt': "",
'img': '[{"content": "乾元共享型理财产品", "iurl": "C:/nlu/data/img/1.png"}, {"content": "乾元周周利开放式保本理财产品", "iurl": "C:/nlu/data/img/2.png"}, {"content": "乾元私享型理财产品", "iurl": "C:/nlu/data/img/3.png"}, {"content": "乾元满溢120天开放式理财产品", "iurl": "C:/nlu/data/img/4.png"}]',
'button': "0|手机银行办理|呼叫大堂经理|理财产品取号|乾元共享型理财产品",
'valid': 1 # valid=0 代表 error_page
}
放到chat.xls知识库里,然后导入到neo4j数据库,在测试的时候发现代码报异常,
File "C:\Users\zxj\PycharmProjects\chat-master\chat\qa.py", line 242, in update_result
result["behavior"] = int(node["behavior"], 16)
TypeError: int() can't convert non-string with explicit base
提示node["behavior"]是non-string,将result["behavior"] = int(node["behavior"], 16) 改为
result["behavior"] = int(str(int(node["behavior"])), 16)
再次运行正常:
question=看看理财产品
userid=
{'question': '看看理财产品', 'content': '', 'context': '理财产品', 'url': '[{"co
ntent": "乾元共享型理财产品", "iurl": "C:/nlu/data/img/1.png"}, {"content": "乾
元周周利开放式保本理财产品", "iurl": "C:/nlu/data/img/2.png"}, {"content": "乾元
私享型理财产品", "iurl": "C:/nlu/data/img/3.png"}, {"content": "乾元满溢120天开
放式理财产品", "iurl": "C:/nlu/data/img/4.png"}]', 'behavior': 21366, 'parameter
': '{"id": 1, "level": 3, "pos": 0.5}', 'picurl': '1526959967</Msg
Type>0<Title></Title><
Description>
'}
您好!
关于 'behavior': 5376, # 0x1500
1.behavior 是自定义的命令参数,可以通过这个参数指定在激活对应的问答时触发的聊天机器人行为,例如唱歌等。在 chat.xls 表格里只有 behavior 填写 0x1500 的才表示场景节点,不填或者填写其他自定义命令的都是普通问答。5376=int(‘0x1500’, 16) 是答案中的behavior,已经经过转化了。
2.test_ianswer.py 是测试 ianswer.py 模块对答案的 xml 封装。ianswer 是满足场景对某些答案格式的特殊需求。一般情况下只要使用 qa 获得答案,对于之后答案怎么处理,可以根据自己的需求来自行处理。