概念

Query接口用于处理自然语言返回结构化数据与该操作的动作和参数。

API说明

query

说明

机器人问答接口

URL

POST  http://www.yige.ai/v1/query

参数

名称 数据类型 说明 是否必填
token String 客户端访问秘钥
query String 待处理的文本内容,如果设置了自定义分词,请以空格分隔
is_segmented Int 是否已经自定义分词,0为未分词,1为已分词,默认为0
is_replace_parameter Int 是否替换机器人答复中的变量,0为不替换,1为替换,默认为1
session_id String 一个字符串token,最多36个字符,用来识别客户端和服务端每个会话参数
user_state String,json 用户自定义状态,例如 {parameters: [{type: "yige.date",name: "t1",value: "2016-09-09",original: "2016-09-09"}],name: "test",life_count: 5}
reset_state Int 如果为1,则当前会话所有状态将被重置。默认为0

CURL示例

简单示例

curl -d \
"token=你的客户端token&query=明天上午10点,4个人从安贞门到首都国际机场&session_id=D389A6616BD7227C0D92F3CCC1A3867C" "http://www.yige.ai/v1/query"

完整参数示例

curl -d \
'token=你的客户端token&query=明天上午10点,4 个人 从 安贞门 到 首都国际机场&session_id=D389A6616BD7227C0D92F3CCC1A3867C&is_segmented=1&user_state={parameters: [{type: "yige.date",name: "t1",value: "2016-09-09",original: "2016-09-09"}],name: "test",life_count: 5}' 'http://www.yige.ai/v1/query'

PHP 示例

简单示例

$data = array(
    'token' => '你的客户端token',
    'query' => '明天上午10点,4个人从安贞门到首都国际机场',
    'session_id' => 'D389A6616BD7227C0D92F3CCC1A3867C'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.yige.ai/v1/query');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);

echo $response;

完整参数示例

// 用户自定义状态
$user_state = array(
    'parameters' => array(
        array(
            'name'=>'t1',
            'type'=>'yige.date',
            'value'=>'2016-09-09'
        ),
    ),
    'name' => 'test',
    'life_count' => 5
);

$data = array(
    'token' => 'A3A6CD55A6B5BE016D7E6DAA741E6B5F',
    'query' => '明天上午 10点,5 个人,从 北京 到 上海',
    'session_id' => 'D389A6616B7227C0D92F3C1A3867C',
    'is_segmented' => 1,
    'user_state' => json_encode($user_state)
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.yige.ai/v1/query');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);

echo $response;

返回值

{
    "id": "5F693366-FE26-12B4-EF97-C01FB7939D5C", // 对话的唯一标识符
    "session_id": "14370",  // 用户自定义的会话ID
    "time": "2016-09-13 15:21:54",  // 接口请求的日期和时间
    "query": "明天上午10点,5个人从北京到上海",  // 需要查询的语句
    "emotion": { // 情感分析值
        "positive": 0.75784867078625, // 正向值
        "negative": 0.24215132921375 // 负向值
    }, 
    "segmented_query": [ // 查询语句的分词结果
        "明天上午10点", 
        ",", 
        "5", 
        "个人", 
        "从", 
        "北京", 
        "到", 
        "上海"
    ], 
    "intent_id": "002521EA-A676-17A7-A36A-EBB47629CEEC", // 匹配到的场景ID 
    "intent_name": "订车", // 匹配到的场景名称
    "confidence": 0.87747506825858, // 匹配度,0~1之前,值越大匹配度越高
    "action": { // 需要执行的动作
        "name": "order_car", // 动作的名称
        "complete": true, // 强制参数是否收集完成
        "parameters": [ // 执行动作所需的参数
            {
                "type": "yige.time", // 参数的类型
                "name": "time", // 参数名称
                "value": "2016-09-14 10:00:00", // 参数值
                "original": "明天上午10点" // 参数的原始值
            }, 
            {
                "type": "yige.quantity_number", 
                "name": "quantity_number", 
                "value": {
                    "amount": "5",
                    "unit": null
                }, 
                "original": "5"
            }, 
            {
                "type": "yige.address", 
                "name": "address", 
                "value": "北京", 
                "original": "北京"
            }, 
            {
                "type": "yige.address", 
                "name": "address1", 
                "value": "上海", 
                "original": "上海"
            }
        ]
    }, 
    "state": [ // 状态的输出所包含的参数列表
        {
            "parameters": [
                {
                    "type": "yige.time", 
                    "name": "time", 
                    "value": "2016-09-14 10:00:00", 
                    "original": "明天上午10点"
                }, 
                {
                    "type": "yige.quantity_number", 
                    "name": "quantity_number", 
                    "value": {
                        "amount": "5", 
                        "unit": null
                    }, 
                    "original": "5"
                }, 
                {
                    "type": "yige.address", 
                    "name": "address", 
                    "value": "北京", 
                    "original": "北京"
                }, 
                {
                    "type": "yige.address", 
                    "name": "address1", 
                    "value": "上海", 
                    "original": "上海"
                }
            ], 
            "name": "out", // 状态名称
            "life_count": 2 // 状态可传递的次数
        }
    ], 
    "answer": "好的,明天上午10点,从北京到上海,同行5人", // 机器人答复
    "parameter_recognize": [ // 原句参数识别结果
        {
            "name": "time", 
            "type": "yige.time", 
            "text": "明天上午10点", 
            "new_value": "2016-09-14 10:00:00", // 新惧的值
            "required": true, // 是否必填参数
            "old_value": "" // 原收集的值
        }, 
        {
            "text": ","
        }, 
        {
            "name": "quantity_number", 
            "type": "yige.quantity_number", 
            "text": "5", 
            "new_value": {
                "amount": "5", 
                "unit": null
            }, 
            "required": true, 
            "old_value": ""
        }, 
        {
            "text": "个人从"
        }, 
        {
            "name": "address", 
            "type": "yige.address", 
            "text": "北京", 
            "new_value": "北京", 
            "required": true, 
            "old_value": ""
        }, 
        {
            "text": "到"
        }, 
        {
            "name": "address1", 
            "type": "yige.address", 
            "text": "上海", 
            "new_value": "上海", 
            "required": true, 
            "old_value": ""
        }
    ], 
    "status": { // 本次请求的响应状态
        "code": 200, // 200表示成功,其它值均表示异常
        "error_msg": "success" // 异常信息
    }
}

错误码

错误码 错误码返回 错误码返回说明
200 场景识别成功 场景识别成功
201 闲聊回复成功 闲聊回复成功
501 Query不存在或为空 Query不存在或为空
502 token错误 token错误
503 session_id不存在或为空 session_id不存在或为空
504 系统繁忙稍候再试 系统繁忙稍候再试
506 没有匹配到场景 没有匹配到场景
507 服务器内部错误 服务器内部错误,请及时反馈给平台
510 user_state错误 user_state格式不符合要求

results matching ""

    No results matching ""