接口简介
AI舌诊高级版接口主要通过拍摄舌头图片进行识别,返回十种舌像出现的概率值,加上身体可能出现的证型和对应的调理方法。
接口地址
访问地址:https://www.bjbayes.com/admin/api/tongue_analysis_advance
请求方式:POST
请求格式:application/x-www-form-urlencode
* 所有的请求和响应数据编码皆为utf-8格式,URL里的所有参数名和参数值请做URL编码
请求参数
| 字段 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
| appid | String | 是 | 开放平台创建的appid |
| imgpath | String | 是 | 传入进行识别的网络图片地址 |
| timestamp | String | 是 | 请求端口的时间,时间格式yyyyMMddHHmmss |
| version | String | 是 | api版本,默认为1.0 |
| sign | String | 是 | 签名。先把timestamp用MD5进行加密加上appid对应的key,然后再次用MD5再次进行加密生成签名,所有的MD5加密为大写。 |
响应参数
| 字段 | 类型 | 说明 |
|---|---|---|
| msg | String | 响应信息,成功为ok,错误为对应的错误信息 |
| code | Int | 响应码,200-成功 201-没有可用次数 400-参数缺失或错误 500-异常 |
| data | json | 识别结果数据 |
返回结果示例:
{
"msg":"成功",
"code":200,
"data":{
"cutTongue":"http://tonguecut.oss-cn-beijing.aliyuncs.com/6c12e3d6-1669-11eb-ac43-f990dea5f70f.jpg",
"tizhi":{
"xueyu":0.024614405,
"shire":0.025916621,
"tebing":0.09500812247087398,
"yangxu":0.5017460499999999,
"yinxu":0.0260680735,
"tanshi":0.48473511015,
"pinghe":0.019101860029586897,
"qiyu":0.08836177221440236,
"qixu":0.6264306500000001
},
"tiaoli":{
"tizhi_name":"气虚体质",
"changjianbiaoxian":"平素语音低弱,气短懒言,容易疲乏,精神不振,常自汗出,动则尤甚,肌肉松软不实。性格内向,不喜冒险。",
"jingshentiaoyang":"气虚质之人可常常品茶会友,吟诗作画,垂钓养鸟,培养耐力、毅力和爱心,使人精神上愉悦和享受,增强心肺功能,促进全身气血和调,益气增寿。",
"fabingqingxiang":"不耐受风、寒、暑、湿邪,易患感冒、各脏器功能不足如心悸、慢性胃炎、慢性支气管炎等病;病后康复缓慢。",
"yuletiaoshe":"调养重在初春、初秋,春季需要“春捂”,不仅利于阳气的生发,而且能抵御寒冷刺激,促进机体免外邪刺激,倒春寒期间不宜进补;秋季虚“防燥”,干燥时需解暑润津,气温低时要注意防寒保暖,且不能过度进补,可先吃清淡、易消化的食物,温养脾胃,减轻脾胃的负担;冬季可适量进补。",
"sijiyangsheng":"选用较柔缓的方式进行锻炼,如广播体操、太极拳、散步、慢跑、按摩四肢或胸腹等。气功方面,可练“六字诀”中的“吹”功。由于体质虚弱,故应防止过度运动劳累。",
"tiyuduanlian":"动静结合、量力而行。可通过运动保持情绪的健康稳定,如器械训练、打球、爬山、跑步、散步、太极拳、健美操等。",
"qijutiaoshe":"注意保暖,不要大汗当风,以防感受风寒;劳则气耗,注意不可过于劳作,以免更伤正气。",
"yinyuetiaoli":"适合多收听宫音、商音、徵音。如:《阳春白雪》《紫竹调》《十面埋伏》、《流水》、《阳春》、《长清》、《鹤鸣九皋》、《文王操》等。",
"jingluobaojian":"常按足三里穴、气海穴、关元穴促进气血生成,提高人体正气。",
"yongyaijinji":"慎少苦寒攻伐之品",
"yaowuyangsheng":"可适量服用玉屏风散提升正气。",
"shiliao":[
"黄芪童子鸡。将童子鸡1只洗净,用纱布袋包好生黄芪9克,取一根细线,一端扎紧袋口,置于锅内,另一端则绑在锅柄上。在锅中加入葱姜蒜盐酒等调料,用文火慢炖1小时,食肉喝汤。有补中益气,增强机体抗病能力的作用,适用于体质虚弱、易患风寒感冒者。",
"山药粥。将山药30g及粳米180g一起加入锅中,适量清水煮粥,煮熟即可。具有补中益气、固肺涩精的作用。",
"合适的食物。粳米、小米、黄米、大麦、莜麦、黄豆、白扁豆、豇豆、蚕豆、豌豆、土豆、白薯、山药、胡萝卜、香菇、鲫鱼、鹌鹑、鹅肉、鸽蛋、鸽肉、羊心、羊肚、莲子、菱角、猴头菇、蘑菇、芡实、红薯、栗子、人参、黄鳝、虾等。",
"少吃的食物。荞麦、柚子、生萝卜、柑橘、槟榔、空心菜等。"
],
"second_tizhi_name":"阳虚体质"
},
"char":[
{
"type":"深白苔",
"probability":"0.96793604"
},
{
"type":"薄苔",
"probability":"0.9984659"
},
{
"type":"有齿痕",
"probability":"0.5031761"
},
{
"type":"无点刺",
"probability":"0.7591451"
},
{
"type":"裂纹少",
"probability":"0.45037863"
},
{
"type":"腻苔",
"probability":"0.8273132"
},
{
"type":"胖大舌",
"probability":"0.6586307"
},
{
"type":"润苔",
"probability":"0.70896816"
},
{
"type":"淡红舌",
"probability":"0.5942306"
},
{
"type":"舌苔不剥",
"probability":"0.9999211"
}
],
"zhengxing":[
{
"zhengxing_name":"湿热熏蒸",
"jieshi":"湿热上乘,是由于脾胃运化功能减弱,造成身体水湿代谢障碍,体内湿浊郁而化热上蒸造成头昏,恶心,头重如裹,口干口渴等症状",
"shiyishiwu":"红花、山楂、金针菇、草菇、平菇、西米、糯米、黑木耳、甘蔗、酸梅汤、葡萄、百合、水煮花生等",
"jinjishiwu":"吸烟、饮酒、忌生冷寒凉、油炸食品、腌制品、咖啡等刺激性食物、茶叶、酱油、蟹蚌、辣椒、胡椒、花椒等",
"shiyiyundong":"八段锦、五禽戏、太极拳、易筋经、慢跑、室外有氧运动",
"jinjiyundong":"激烈运动",
"shiyiyaoshan":"红豆绿豆粥",
"shiyiyinyue":" 广陵散(戴紫茹)"
},
{
"zhengxing_name":"热盛伤阴",
"jieshi":"是感受四时温热病邪所引起的急性热病,其发病迅速,热象偏重,故最易化燥伤阴",
"shiyishiwu":"枸杞子、党参、山药、龙眼肉、胡萝卜、莲藕、猪骨、红枣、猪肝、橄榄、青菜、粟子、牛肉、鸡肉、豇豆、小白菜等",
"jinjishiwu":"吸烟、饮酒、忌生冷寒凉、油炸食品、腌制品、咖啡等刺激性食物等",
"shiyiyundong":"慢跑、散步、八段锦、五禽戏、太极拳、易筋经、室外有氧运动",
"jinjiyundong":"激烈运动",
"shiyiyaoshan":"竹叶石膏粥",
"shiyiyinyue":"阳春白雪传奇乐坊 "
},
{
"zhengxing_name":"真阴不足",
"jieshi":"阴虚只是引起虚火上炎原因之一,就是说肾水不足,阴包不住阳,虚阳上逆为害",
"shiyishiwu":"铃薯、洋葱、平菇、藕、粟子、山药、牛肉、鸡肉、豇豆、小白菜、西红柿、苹果、香蕉、葡萄、牛肉、羊肉等",
"jinjishiwu":"吸烟、饮酒、忌生冷寒凉、油炸食品、腌制品、咖啡等刺激性食物、辣椒等",
"shiyiyundong":"八段锦、五禽戏、太极拳、易筋经、室外有氧运动",
"jinjiyundong":"激烈运动",
"shiyiyaoshan":"天花粉粥",
"shiyiyinyue":"阳春白雪传奇乐坊 "
},
{
"zhengxing_name":"脾虚或气虚",
"jieshi":"脾虚指脾胃虚弱。气虚的范围较广,包括心气虚,肺气虚,脾气虚,肝气虚,肾气虚。具体地要根据实时症状辩证病症",
"shiyishiwu":"核桃仁、榴莲、冬瓜、黑芝麻、 羊肾、牛骨髓、猪腰子、驴肉、乌骨鸡、鸭肉、泥鳅、鱼肚鱼翅、鳗鱼",
"jinjishiwu":"辣椒、荔枝、巧克力,香蕉、柑橘、土豆、西红柿、南瓜、茶叶、酱油,鱼虾蟹蚌、啤酒、戒烟戒酒",
"shiyiyundong":"散步,八段锦,五禽戏,太极拳,易筋经,吐呐法",
"jinjiyundong":"激烈运动",
"shiyiyaoshan":"蚌肉炖老鸭",
"shiyiyinyue":"十面埋伏传奇乐坊"
},
{
"zhengxing_name":"寒症或者寒湿症",
"jieshi":"寒证分外肝风寒和内寒(是脏腑阳气不足,主要是肾阳不足所致)。寒湿证,中医认为寒湿包括外感寒湿和内生寒湿两个方面。外感寒湿:外感寒湿邪气,气血运行受阻。内生寒湿:寒湿内困而损伤脾阳,或脾肾阳虚而寒湿内停",
"shiyishiwu":"马蹄、橄榄、石榴、青菜、芹菜、菠菜、柑橘、乌梅、柠檬、鱼肉等",
"jinjishiwu":"吸烟、饮酒、忌生冷寒凉、油炸食品、腌制品、咖啡等刺激性食物、茶叶、酱油、蟹蚌、辣椒、胡椒、花椒等",
"shiyiyundong":"慢跑、散步、八段锦、五禽戏、太极拳、易筋经、室外有氧运动",
"jinjiyundong":"激烈运动",
"shiyiyaoshan":"生姜羊肉汤",
"shiyiyinyue":"紫竹调(纯乐古筝)"
}
],
"message":"调用成功"
}
}
返回参数说明
| 返回参数 | 说明 |
|---|---|
| cutTongue | 切割后的舌头图片url路径 |
| tizhi | 九种体质对应的概率 |
| xueyu | 血瘀体质对应的概率 |
| shire | 湿热体质对应的概率 |
| tebing | 特禀体质对应的概率 |
| yangxu | 阳虚体质对应的概率 |
| yinxu | 阴虚体质对应的概率 |
| tanshi | 痰湿体质对应的概率 |
| pinghe | 平和体质对应的概率 |
| qiyu | 气郁体质对应的概率 |
| qixu | 气虚体质对应的概率 |
| tiaoli | 概率最高的体质对应的调理建议 |
| tizhi_name | 体质名称 |
| changjianbiaoxian | 常见表现 |
| jingshentiaoyang | 精神调养 |
| fabingqingxiang | 发病倾向 |
| yuletiaoshe | 娱乐调摄 |
| sijiyangsheng | 四季养生 |
| tiyuduanlian | 体育锻炼 |
| qijutiaoshe | 起居调摄 |
| yinyuetiaoli | 音乐调理 |
| jingluobaojian | 经络保健 |
| yongyaojinji | 用药禁忌 |
| shiliao | 两种具体的药膳、适合吃的食物和禁忌食物 |
| zhengxing | 可能的证型和对应的调理方法 |
| zhengxing_name | 证型名称 |
| jieshi | 证型具体的解释 |
| shiyishiwu | 适宜食物 |
| jinjishiwu | 禁忌食物 |
| shiyiyundong | 适宜运动 |
| jinjiyundong | 禁忌运动 |
| shiyiyaoshan | 适宜药膳 |
| shiyiyinyue | 适宜音乐 |
| message | 返回的各种情况,具体说明如下 |
| message参数 | 说明 |
|---|---|
| 图片路径有误 | 原始图片url路径有误 |
| 图片质量过低 | 拍摄舌头图片模糊或无舌头图片 |
| 服务器繁忙 | 服务器并发过高 |
| 切割图片失败 | 舌头图片不完整 |
| 无对应证型 | 有舌头和体质相关结果,没有对应的证型结果 |
| 调用成功 | 正常返回所有结果 |
java调用代码示例
import com.alibaba.fastjson.JSON;
import com.util.HttpClient;
import java.io.IOException;
import java.security.MessageDigest;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
public class DemoObj {
public static String MD5(String data) throws Exception {
System.out.println(data);
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] array = md.digest(data.getBytes("UTF-8"));
StringBuilder sb = new StringBuilder();
for (byte item : array) {
sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
}
System.out.println(sb.toString().toUpperCase());
return sb.toString().toUpperCase();
}
public static void main(String[] args) {
DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String timestamp=df.format(new Date());
Map body = new HashMap<>();
body.put("appid", "你的APPID");
System.out.println(timestamp);
body.put("timestamp", timestamp);
body.put("version", "1.0");
body.put("imgpath", "舌头图片地址");
try {
body.put("sign", MD5(MD5(timestamp)+"你的APPID对应的key"));
} catch (Exception e) {
e.printStackTrace();
}
try {
String s = new HttpClient().doPostMap("https://www.bjbayes.com/admin/api/tongue_analysis_advance", body);
System.out.println(s);
Map maps = (Map) JSON.parse(s);
for (Object map : maps.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" " + ((Map.Entry)map).getValue());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
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['appid']="你的APPID"
tures['version']='1.0'
tures['imgpath']='https://wxr-tongue.oss-cn-beijing.aliyuncs.com/images/tongue/IMG_20200913_134618.jpg'
tures['sign']=Md5(Md5(restime)+"你的APPID对应的key")
url = "https://www.bjbayes.com/admin/api/tongue_analysis_advance"
response = requests.post(url, params=tures)
# print(response.text)
print(type(response.text))
load=json.loads(response.text)
print(load)
C#调用代码示例
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Security.Cryptography;
using System.Text;
namespace APITest
{
class Program
{
static void Main(string[] args)
{
Dictionary myDictionary = new Dictionary();
DateTime dt = DateTime.Now;
string ds = dt.ToString("yyyyMMddHHmmss");
myDictionary.Add("timestamp",ds);
myDictionary.Add("appid", "你的APPID");
myDictionary.Add("version","1.0");
myDictionary.Add("imgpath", "待测图片的云服务地址");
myDictionary.Add("sign",GetMD5(GetMD5(ds)+ "你的APPID对应的key"));
string finalresult = Post("https://www.bjbayes.com/admin/api/tongue_analysis_advance",myDictionary);
Object jo = JsonConvert.DeserializeObject(finalresult); //此处结果为最后的调用结果
Console.WriteLine(jo);
Console.ReadKey();
}
//构造MD5
public static string GetMD5(string sDataIn)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] bytValue, bytHash;
bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn);
bytHash = md5.ComputeHash(bytValue);
md5.Clear();
string sTemp = "";
for (int i = 0; i < bytHash.Length; i++)
{
sTemp += bytHash[i].ToString("X").PadLeft(2, '0');
}
return sTemp.ToUpper();
}
///
/// 指定Post地址使用Get 方式获取全部字符串
///
/// 请求后台地址
///
public static string Post(string url, Dictionary dic)
{
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
#region 添加Post 参数
StringBuilder builder = new StringBuilder();
int i = 0;
foreach (var item in dic)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
#endregion
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
return result;
}
}
}
javascript调用代码示例
$.ajax({
type: "POST",
url: "https://www.bjbayes.com/admin/api/tongue_analysis_advance",
data: {
timestamp:restime,
#restime时间格式为YYmmddHHMMSS
appid='你的APPID',
version='1.0',
imgpath='https://wxr-tongue.oss-cn-beijing.aliyuncs.com/images/tongue/IMG_20200913_134618.jpg',
sign=Md5(Md5(restime)+'你的APPID对应的key')
},
success: function(msg) {
console.log('返回的数据:'+msg);
}
});