圖靈SDK的簡單實用

圖靈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);
            }
        });
    }
}

到此Over了,O(∩_∩)O~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章