圖靈SDK的簡單實用
介紹
我們先看看官網的介紹:官網鏈接
特點
- 智能度高:對話和語義準確度受到用戶及行業認可
- 場景豐富:能夠應用在網站、軟件及智能硬件各個領域裏
- 技能全面:圖靈機器人提供了涵蓋幾乎所有生活領域的技能服務
- 知識庫強大:基於語義技術且支持批量上傳的知識庫功能
- 響應快速:毫秒級響應速度,輕鬆應對巨量請求
- 接入方便:只需簡單的註冊激活便可讓自己的產品化身爲智能機器人
使用場景
- 虛擬機器人
- 智能客服
- 智能手錶
- 智能家居
- 智能車載
比如:虛擬機器人 HTC的語音助手(小Hi)
使用
說了那麼多,接下來我們也實現一個虛擬機器人(聊天機器人):我們輸入一句話,會自動回覆我們。
官方文檔
步驟
- 第一步:進入官網->註冊登錄->按照提示完成認證
- 第二步:選擇個人中心->我的機器人->創建機器人
- 第三步:選擇自定義
- 第四步:填寫信息
- 第五步:下載demo和文檔
實現步驟
下面開始實現(簡單點),Demo就一個輸入框,一個按鈕,一個文本
- 新建工程
佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.rair.demo.MainActivity">
<EditText
android:hint="請輸入"
android:id="@+id/et_request"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:text="請求"
android:id="@+id/btn_request"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_result"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
導入下載的jar包只需要三個,倒入Gson包(不然會報錯,找不到Gson類)
初始化SDK,最好放在Application中初始化
演示實在Activity中初始化
/**
* 初始化圖靈
*/
private void initTL() {
SDKInitBuilder sdkInitBuilder = new SDKInitBuilder(this)
.setTuringKey(TURING_KEY)
.setUniqueId(UNIQUE_ID)
.setSecret(SECRET);
SDKInit.init(sdkInitBuilder, new InitListener() {
/**
* 初始化成功後再實例化TuringApiManager,否則很多功能不能使用
*/
@Override
public void onComplete() {
apiManager = new TuringApiManager(getApplicationContext());
Toast.makeText(getApplicationContext(), "初始化成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onFail(String s) {
Toast.makeText(getApplicationContext(), "發生意外", Toast.LENGTH_SHORT).show();
}
});
}
添加權限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
- 請求數據
按鈕點擊事件(獲取輸入文本並請求)
@Override
public void onClick(View v) {
final String request = etRequest.getText().toString();
if (TextUtils.isEmpty(request)) {
Toast.makeText(this, "你沒有輸入內容", Toast.LENGTH_SHORT).show();
return;
}
if (apiManager != null) {
apiManager.requestTuringAPI(request);
}
apiManager.setHttpListener(new HttpConnectionListener() {
@Override
public void onError(ErrorMessage errorMessage) {
}
@Override
public void onSuccess(RequestResult requestResult) {
//成功回調
Result result = new Gson().fromJson(requestResult.getContent().toString(), Result.class);
String text = result.getText();
tvResult.setText(text);
}
});
}
Gson解析需要一個JavaBean對象
public class Result {
private int code;
private String text;
private String url;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
code 狀態碼
text 文本
url url鏈接
- 完成,我們來運行一下
一個簡單的聊天機器人就好了。
一個小程序
我們可以自由發揮添加很多功能
菜譜查詢:
點擊立即查看:
點擊條目後:
還有例如航班查詢:
天氣查詢:
也可以動動小腦經,利用圖靈的智慧,結合android的輔助服務,自己研究一個QQ聊天機器人
總結:本應該總結一下,不過我想不到了O(∩_∩)O哈哈~,還是把上面Demo代碼貼上
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText etRequest;
private Button btnRequest;
private TextView tvResult;
//appkey
private static final String TURING_KEY = "自己申請";
//隨便寫一個
private static final String UNIQUE_ID = "645207307";
//祕鑰
private static final String SECRET = "xxxxxxxxxxxxx保密";
private static final String TAG = "Rair";
private TuringApiManager apiManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etRequest = (EditText) findViewById(R.id.et_request);
btnRequest = (Button) findViewById(R.id.btn_request);
tvResult = (TextView) findViewById(R.id.tv_result);
btnRequest.setOnClickListener(this);
initTL();
}
/**
* 初始化圖靈
*/
private void initTL() {
SDKInitBuilder sdkInitBuilder = new SDKInitBuilder(this)
.setTuringKey(TURING_KEY)
.setUniqueId(UNIQUE_ID)
.setSecret(SECRET);
SDKInit.init(sdkInitBuilder, new InitListener() {
/**
* 初始化成功後再實例化TuringApiManager,否則很多功能不能使用
*/
@Override
public void onComplete() {
apiManager = new TuringApiManager(getApplicationContext());
Toast.makeText(getApplicationContext(), "初始化成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onFail(String s) {
Toast.makeText(getApplicationContext(), "發生意外", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onClick(View v) {
final String request = etRequest.getText().toString();
if (TextUtils.isEmpty(request)) {
Toast.makeText(this, "你沒有輸入內容", Toast.LENGTH_SHORT).show();
return;
}
if (apiManager != null) {
apiManager.requestTuringAPI(request);
}
apiManager.setHttpListener(new HttpConnectionListener() {
@Override
public void onError(ErrorMessage errorMessage) {
}
@Override
public void onSuccess(RequestResult requestResult) {
//成功回調
Result result = new Gson().fromJson(requestResult.getContent().toString(), Result.class);
String text = result.getText();
tvResult.setText(text);
}
});
}
}