### 3.4.2 计算器 #### (1)功能说明 支持加减乘除混合运算、模运算、分数、小数、π、根号、幂运算等复杂运算,返回计算结果。 #### (2) 接口说明 **请求方法** * POST **请求地址** * http://api.ruyi.ai/v1/message **请求参数说明** |参数名 |参数类型 | 是否必须 |参数说明 | :-----| :---| :---:|:----- |q |String| 是| 自然语言表达,例如“1+1等于多少”,"π是多少"等 |app_key| String|是 |应用开发者秘钥,注册开发者后台账号,建立虚拟助理后获得 |user_id |String| 是 |用户唯一标识,便于支持个性化语义解析。建议开发者使用 UUID 字符,且不同用户必须用不同的 user_id,防止意图串。 #### (3) 返回说明 **返回参数说明** |名称 |类型| 说明 |:---|:---|:--- |code |Integer | 返回代码 |msg | String |返回代码描述 |parameters|JSON Object |解析到的实体以及服务说明 |action|String|服务的接口名称 |name| String|匹配的意图名称 |result | JSON Object| 接口返回内容 |outputs| Array| 服务输出结果,微信端使用 type 类型为 wechat 开头的内容;硬件端收到所有内容,依据需求解析使用 **返回代码说明** |返回代码 |错误类型|说明 |:---|:---|:--- |0/200 |成功 |请求成功 |400 |无效请求 |某些必需参数缺失或参数值错误,详见msg字段 |401 |未授权 |授权失败,app_key 缺失或错误 |403 |请求被禁止|有效请求,但服务拒绝响应,请联系contact@ruyi.ai |408 |请求超时 |请求响应超时,一般响应时间设置为2000ms以内 |429 |短时间内大量访问 |短时间内请求数过多 |500 |内部错误 |服务处理异常 |503 |服务不可用|服务异常或正在维护 #### (4)请求示例 **请求范例** _π是多少_ _四乘五减三然后乘二_ _一加三再乘五减六_ _根号9等于_ _负六的平方_ _十万分之一加万分之一_ _圆周率是多少_ _2除以0_ _2 的1万次方_ **请求示例** * http://api.ruyi.ai/ruyi-api/v1/message?app_key=APP_KEY&user_id=user0&q=1加1等于几 返回结果 ```json { "code": 0, "msg": "ok", "result": { "_text": "1加1等于几", "msg_id": "1f86c462-4d6a-4e96-8400-3a5471c6d524", "intents": [ { "parameters": { "value": "1+1=2", "service": "calculator", "result": "等于几" }, "action": "calculate", "name": "计算器(识别表达式直接返回结果)", "result": { "text": "我使劲算,用力算,算出来啦,等于2", "type": "dialog" }, "outputs": [ { "type": "wechat.text", "property": { "text": "动动脑,想一想,算出来等于2" } }, { "type": "dialog", "property": { "text": "数一数,算一算,答案出来啦,就是2", "emotion": "calm" } } ], "score": "1.0", "scoreColor": "c4", "is_match": 1, "id": "a28b7dbf-32ed-490a-9f98-7fd3d7965dc1" } ], "meta_process_milliseconds": 46 } } ``` **详细参数说明** |名称|类型|说明| |:---|:---|:--- |service | String |服务名称 |value|String |表达式和结果 |text|String|返回文本