3.2 语义理解api文档
# 3.2 语义理解api文档
</br>
## 3.2.1 SemanticUnderstand 语义理解
* 概要
灵聚人工大脑的语义理解模块
* getInstance 全局的单一实例
| **函数原型** | static boost::shared_ptr\<SemanticUnderstand\> getInstance() |
|--------------------|--------------------------------------------------------------|
| **返回** | |
| SemanticUnderstand | 全局的单一实例 |
* init 初始化灵聚大脑语义分析
| **函数原型** | void init(std::string key, std::string city, std::string lat,std::string lng, int timeoutSeconds) |
|----------------|---------------------------------------------------------------------------------------------------|
| **参数** | **说明** |
| key | 请向灵聚公司申请产品对应的唯一key值 |
| city | 当前设备所在城市,(可以为空),用于跟位置相关的问答。例如天气,附近小吃等。 |
| lat | 当前设备所在的经度(可以为空) |
| lng | 当前设备所在的纬度(可以为空) |
| timeoutSeconds | 每次解析语义允许的最大超时时间 |
| **异常** | 已经初始化后再次调用抛出 |
| **备注** | 只允许初始化一次,建议放在程序的入口处 |
* getAnswer 请求语义分析
| **函数原型** | SemanticResult getAnswer(std::string question) |
|-----------------------------------------------|------------------------------------------------|
| **参数** | **说明** |
| question | 待请求分析的问题 |
| **返回** | |
| SemanticResult | 语义结果 |
| **异常** | 还没有初始化或者question参数为空字符串抛出 |
| **备注** | 线程安全的,同一时间内,只有一条线程运行 |
</br>
## 3.2.2 SemanticResult语义理解结果
* getEnum 语义理解的状态码
| **函数原型** | enum ResultEnum getEnum() |
|-----------------------------------------------|---------------------------|
| **返回** | |
| ResultEnum| 处理结果状态码 |
* getStr语义理解的回答
| **函数原型** | std::string getStr() |
|--------------|-----------------------------------------------------------------------|
| **返回** | |
| std::string | 语义理解的回答,只有getEnum()的状态是resultEnumSuccess,该值才会存在。 |
* ResultEnum处理结果状态码的枚举
| **枚举常量** | **简介** |
|-------------------------|------------------------|
| resultEnumSuccess | 请求结果成功 |
| resultEnumServiceBusy | 服务器繁忙中或处理超时 |
| resultEnumInternetError | 本地网络异常 |
| resultEnumOtherError | 其他罕见错误 |