接入知识图谱
更新时间:2020-04-16
前言
开发者还可以使用Taskflow接入知识图谱。目前需要开发者在资源调用节点使用编程模式处理,后续我们会推出可视化版本。
调用函数
svc_hooks.call_kg(kg_id, kg_query)
函数入参
-
kg_id:知识图谱的id。
- 示例:K2608,平台中在知识图谱卡片中显示,位置如下图所示。
-
kg_query:知识图谱的查询语句。
- 示例:g.has('name',MATCH,'百度').limit(10).with('*')
- 参考文档
函数返回值
-
返回值格式为json类型。将返回值赋值给全局变量后,即可通过Python字典的操作语法来提取数据了。
- 返回示例:
{"message":"Success","code":0,"result":[{"_type":"vertex","_id":5704253544,"name":["百度"],"公司地址":["北京上地十街"],"创始人":["李彦宏"],"type_edge_number":[1],"data_version":["106112562"],"edge_number":[1],"sid":["bf93c93f981108e2f9d5246cf2aabd58106112562"],"创立时间":["1999"],"@fromfile":["企业知识图谱12k条.xlsx.html"],"type":["公司机构"]},{"_type":"vertex","_id":5620367466,"name":["百度"],"公司地址":["北京上地十街"],"创始人":["李彦宏"],"type_edge_number":[1],"data_version":["106112562"],"edge_number":[1],"sid":["42566823ed4a3f0755834162249dbbb7106112562"],"创立时间":["1999"],"@fromfile":["企业知识图谱4.xlsx.html"],"type":["公司机构"]}],"_extra":{"entity-num":2,"return-num":2}}
完整编程示例
- 通过知识图谱查询百度公司所在的地区,并将完整结果赋值到全局变量kg_res中,将所在地区赋值到全局变量location中。
- 这里要注意的是,目前Taskflow支持python 2.7.3的语法,当dictionary中key为中文时,需要在前面添加u进行转义,否则结果识别会出错。
def process():
kg_id = 'K2608'
kg_query = 'g.has(\'name\',MATCH,\'百度\').limit(10).with(\'*\')'
svc_vars['kg_res'] = svc_hooks.call_kg(kg_id, kg_query) //
svc_vars['location'] = svc_vars['kg_res']['result'][0][u'所属地区']
使用知识图谱的数据
- 取到知识图谱的返回值并赋值给全局变量后,可以在后续的编程操作中使用该变量。
- 也可以在对话答复节点中动态引用该变量。具体操作见对话答复配置