贝叶斯中医人工智能领军品牌

接口简介

AI面诊接口主要通过拍摄面部图片进行识别,返回两颊、鼻子、眼睛、嘴唇的类型和对应的概率值,面诊的证型结论和对应的食疗方案

接口地址

访问地址:https://www.bjbayes.com/admin/api/face_analysis_v2

请求方式: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 识别结果数据

data参数

字段 说明
nose 酒糟鼻,取值鼻头正常、有酒糟鼻症状及各自对应概率
hair 发际线,取值发际线正常、发际线靠后及各自对应概率
faceColor 面色,取值黑色、白色、黄色、红色、青色及各自对应概率
leftBanDian 左脸斑点,取值左脸无斑点、左脸有斑点及各自对应概率
leftCuoChuang 左脸痤疮,取值左脸无痤疮、左脸有痤疮及各自对应概率
rightBanDian 右脸斑点,取值右脸无斑点、右脸有斑点及各自对应概率
rightCuoChuang 右脸痤疮,取值右脸无痤疮、右脸有痤疮及各自对应概率
lipColor 唇色,取值淡白、淡红、黑紫、深红及各自对应概率
lipWater 唇部干裂,取值水润、干裂及各自对应概率
cropFaceUrl 裁剪的人脸url地址

message参数

字段内容 说明
调用成功 正常返回所有结果
图片读取失败 图像格式有误或其他原因导致无法打开
未检测到人脸 图片中未检测到人脸
检测到多个人脸 图片中包含多个人脸
检测到多个人脸 图片中包含多个人脸
人脸尺寸过小 人脸尺寸过小或者人脸越界
未摘下眼镜 未摘下眼镜
图片下载失败 原始图片url路径有误
服务器繁忙 服务器并发过高

返回结果示例:

{
    "msg":"成功",
    "code":200,
    "data":{
        "message":"调用成功",
        "nose":{
            "鼻头正常":0.99979204,
            "有酒糟鼻症状":0.00020798302
        },
        "hair":{
            "发际线正常":0.9778505,
            "发际线靠后":0.022149438
        },
        "faceColor":{
            "黑色":0.41139233210500004,
            "白色":0.00448131606555,
            "黄色":0.005320582335,
            "红色":0.49493583250000006,
            "青色":0.00022487049200000002
        },
        "leftBanDian":{
            "左脸无斑点":0.0038473506,
            "左脸有斑点":0.9961526
        },
        "leftCuoChuang":{
            "左脸无痤疮":0.90414184,
            "左脸有痤疮":0.09585814
        },
        "rightBanDian":{
            "右脸无斑点":0.045944422,
            "右脸有斑点":0.95405555
        },
        "rightCuoChuang":{
            "右脸无痤疮":0.99999785,
            "右脸有痤疮":2.204213
        },
        "lipColor":{
            "淡白":0.00017499177,
            "淡红":0.9997421,
            "黑紫":0.000003683799,
            "深红":0.00039005504
        },
        "lipWater":{
            "水润":0.9998386,
            "干裂":0.00016144048
        },
        "cropFaceUrl":"xxx"
    }
}        

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/face_analysis_v2", 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/face_analysis_v2"
    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/face_analysis_v2",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/face_analysis_v2",
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);
	}
});