# 配置信息
例如:
APPID: xxxxxxxxxxxxxxx
TOKEN: xxxxxxxxxxxxxxx
EncodingAESKey: xxxxxxxxxxxxxxx
# 接口信息
从文本中识别阿拉伯数字、中文数字,以及时间和日期推断
# 数字日期时间识别接口(只签名不加密):
https://chatbot.weixin.qq.com/openapi/nlp/ner/TOKEN
接口类型:
POST请求
# 参数说明:
字段 | 类型 | 默认值 | 描述 |
---|---|---|---|
query | string | 使用JWT签名后的数据 |
query签名说明:
字段 | 类型 | 默认值 | 描述 |
---|---|---|---|
uid | string | 自动生成的随机标识 | 用户标识的唯一ID,比如:openid |
data | Object | {q: "输入文本"} |
使用JSON Web Token的 HS256
算法对参数进行encode, 放入到query参数中
比如参数为
{
uid: "xjlsj33lasfaf", //能标识用户的唯一用户id,可以是openid
data: {
q: "帮我订两张后天上午的火车票"
}
}
使用 jwt 和 EncodingAESKey
对数据对象进行encode得到加密字符串
const signedData = jwths256.encode(EncodingAESKey, {
uid: "xjlsj33lasfaf", //能标识用户的唯一用户id,可以是openid
data: {
q: "帮我订两张后天上午的火车票"
}
}
)
# 调用开放平台语义接口
curl -XPOST -d "query=signedData" https://chatbot.weixin.qq.com/openapi/nlp/ner/TOKEN
Tips: 在 jsonwebtoken.io 网站上可以参考如下步骤手动生成signedData
# 返回结果
[
{
"type": "number",
"span": [
3,
4
],
"text": "两",
"norm": "2"
},
{
"type": "datetime_interval",
"span": [
5,
9
],
"text": "后天上午",
"norm": "2019-10-30 08:00:00~2019-10-30 11:59:59"
}
]
实体类型 | 说明 |
---|---|
number | 阿拉伯数字和中文数字表达式的识别和推断,例如 -5、1.3%、一百八十六点一 |
datetime | 支持时间识别和时间推断,例如 今天下午3点半、2小时后、上上周五 |
# 日期时间(datetime)
日期时间结果包含4种不同类型,说明如下
# 1. datetime_point(具体时间点)
如: 设置今天下午三点半的闹钟
{"type": "datetime_point", "span": [2, 9], "text": "今天下午三点半", "norm": "2019-08-19 15:30:00"}
norm字段说明:
- 日期时间格式为
Y-m-d H:M:S
,例如1900-01-01 00:00:00
- 如果只有时间,没有日期,则默认日期为当天
- 如果只有日期,没有具体时间点,则默认时间为
00:00:00
# 2. datetime_interval(时间区间)
如: 上午8点到9点
{"type": "datetime_interval", "span": [0, 7], "text": "上午8点到9点", "norm": "2019-08-19 08:00:00~2019-08-19 09:00:00"}
- norm字段为字符串,包含两个具体时间点,通过
~
连接,格式同datetime_point(具体时间点)
# 3. datetime_duration(一段时间)
如: 3分15秒
{"type": "datetime_duration", "range": [0, 5], "text": "3分15秒", "norm": {"second": 15, "minute": 3}}
- norm字段为json,可能包含字段为
second
,minute
,hour
,week
,day
,month
,year
# 4. datetime_repeat(周期时间点)
如: 每年9月30号
{"type": "datetime_repeat", "range": [0, 7], "text": "每天下午三点半", "norm": {"hour": 15, "minute": 30, "repeat": "every_day"}}
norm字段为json,说明:
- 必然包含字段为
repeat
,表示周期类型,取值为every_n
,every_day
,every_month
,every_year
,every_n_day
,every_n_month
,every_n_year
- 可能包含字段为
second
,minute
,hour
,day
,month
,year