随着国家健康战略“大健康”概念的提出,中医大健康事业的发展如火如荼。最近公司让我们开发一款智能舌诊APP,拍舌头图片,直接出诊断结果和报告。前端和后端还好,如何实现舌头智能分析那部分呢,这可愁坏了头秃的程序员。抱着侥幸的心理去度娘找了一番,居然还真有公司有这样的接口,对比了一番,发现北京贝叶斯健康科技的舌诊接口效果最好,速度快,准确率高,实测准确率在90%以上,下面我介绍一下如何使用他们的接口。
首先,注册一个账号并登录,注册地址如下:
http://www.bayescience.com/bes-project/login.html
可以看到登录以后左侧有API服务,如下图所示
他们家的舌诊接口分为两种,一种是给出体质健康状态,另一种是给出证型结论。如下图所示。
点击“API文档”,进入接口使用介绍页面。
首先是证型接口,证型辨识接口主要通过拍摄舌头图片进行识别,返回十种舌像出现的概率值,加上身体可能出现的证型,加上对应的调理方法。
首先要购买对应的接口,点击加入购物车,购买相应的次数。购买完之后,在我的账户,我的服务里面可以看到接口的剩余次数,总次数,购买次数。
接下来要创建APIKey,点击左侧的密钥管理,如下图所示。
创建完APIKey之后,在密钥管理这里可以看到自己的应用ID和密钥
应用ID就是APPID,点击重置密钥可以看到ID对应的密钥。
官网提供了java和python调用代码,接下来我使用python进行接口调用。
代码如下
import hashlib # 导入time模块 import time import requests import json def Md5(res): print(res) md = hashlib.md5() # 构造一个md5 md.update(res.encode(encoding='utf-8')) # 加密 print(md.hexdigest().upper()) return md.hexdigest().upper() def testapi(): tures = {} restime = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time())) # restime="20190829114035" # 传入参数 tures['timestamp'] = restime tures['app_id'] = "401518a5f65041cc" tures['version'] = '1.0' tures['method'] = 'jiuti' tures['imgpath'] = 'https://bys-tonguepicture.oss-cn-beijing.aliyuncs.com/1563412989396.jpg' tures['sign'] = Md5(Md5(restime) + "f72486593c724adab6adef620711231f") url = "http://www.bayescience.com/api/analysis" response = requests.post(url, params=tures) # print(response.text) print(type(response.text)) load = json.loads(response.text) print(load) testapi()
注意,此处需要根据自己的实际情况更换tures['app_id'] tures['method'] tures['sign'],app_id就是自己的应用ID,method分为三种,一种是体质辨识:jiuti,结果共有9种体质,第二种是证型辨识接tongueAnalysis,一共有150种证型,第三种是接口会同时返回体质和证型结论:9tiAnalysis,sign里面要替换为自己的密钥,点击“重置密钥”即可查看APPID对应的密钥。
我的调用结果如下:
可以看到,结果里面有切割出来的舌头图片,9种体质对应的概率值,概率值最大的体质名称,常见表现,精神调养,发病倾向,娱乐调摄,四季养生,体育锻炼,起居调摄,音乐调理,经络保健,用药禁忌,两种具体的药膳、适合吃的食物和禁忌食物,体质接口返回的内容还是很丰富的,至于证型接口,大家可以自行去尝试。他们官方的技术支持态度蛮好,中间有些地方也是他们帮着一起调的,留个联系方式,大家在调用过程中遇到困难,可以联系官方微信:15501156627.或者扫以下二维码添加