1. 程式人生 > >微信小程式+OLAMI自然語言API介面製作智慧查詢工具--快遞、聊天、日曆等

微信小程式+OLAMI自然語言API介面製作智慧查詢工具--快遞、聊天、日曆等

     微信小程式最近比較熱門,再加上自然語義理解也越來越被人關注,於是我想趕趕潮流,做一個小程式試試。想來想去快遞查詢應該是一種比較普遍的需求。

     如果你也在通過自然語言介面做點什麼,希望我的這篇部落格能幫到你。或者你也可以直接下載程式碼試一試。

      用微信掃描下面的二維碼可以直接測試小程式

    

 也可以通過關注下面的公眾號,點解工具使用小程式

       

----------程式碼下載:-------------

技術交流QQ群:


----------------功能介紹: 我的小程式名字叫“智慧生活寶”------------------------

1. 通過自然語言對話查詢

     現在在微信裡,如果你參加一個什麼活動,一般都是在輸入框裡寫上關鍵字或者數字,這樣才能獲取你所需要的服務。而通過自然語言介面,可以讓使用者像跟人對話一樣和你的小程式對話。比如:

    我要查快遞,幫我查一下快遞,查快遞122343,甚至直接輸入快遞運單號,小程式就能做出相應的迴應。

2. 多功能查詢

   目前支援快遞查詢,聊天,日曆查詢,菜譜查詢,講笑話,講故事,計算,算24點功能。

原本我只是準備支援快遞查詢功能,後來發現OLAMI開放平臺有許多內建的模組,於是也順便添加了一下。

----------------功能展示:------------------------------------------------------------------------

1. 快遞查詢頁面如下圖所示,只要在下方的輸入框中輸入查詢句子,就會在text控制元件中返回結果。

也可以點選“例句”按鈕和“更換例句”按鈕體驗一下。

   

2.  點選例句後的效果圖,觸控例句就會在text控制元件中看到效果。


3.  輸入語句: “查詢中通快遞765325527325”


4.  點選更換例句按鈕可以更換例句



5.   其他模組體驗

     點選左下角的切換按鈕,會發現右下角的查快遞變成了“聊天”

   6.  點選“例句”按鈕,這時候例句裡就是其他模組的例句了。


7.  同樣可以通過“更換例句”按鈕進行例句更換


8.  查日期


9. 講笑話


10.  查菜譜


----------------開發步驟----------------------------------------

1.  微信小程式相關

     首先要申請一個微信小程式公眾號,注意不是微信公眾號,然後仔細閱讀小程式的框架和功能介紹。有些JS的功能小程式裡是不能用的。我之前也沒有做過JS,但上起手來感覺還是很快的,幾乎沒有太多阻礙。網上有很多教程,我就不多說了。

2. 快遞查詢的API介面

     注意尋找合適的API介面時,要選用支援https的訪問介面,微信小程式目前僅支援https的訪問。

 我選用的是快遞鳥快遞API裡面的即使查詢API,因為免費嘛,呵呵。而且每天可以訪問3000次,足夠了。你需要自己註冊,獲取自己的API key和商戶ID。

注意:註冊之後,需要在自己的賬號介面申請對應的API接口才能使用,免費的也要申請。如下圖所示:


3.  尤拉蜜(OLAMI)人工智慧開發平臺

     這個非常重要,決定了你能支援多少種模組,多少種句子。畢竟這種介面看起來還是很複雜的,總結一下我的心得:

 *  寫語法

    在使用自然語言語義API之前,首先得寫語法,仔細閱讀語法文件,這個很重要。當然你也可以登入進去,看看平臺內建的語法是否符合你的要求,如果只是為了測試,完全可以先匯入一個內建的模組試試。點選下圖中的“進入NLI系統”。


進入NLI系統之後,點選“匯入”按鈕,既可以看到內建模組,選中新增即可,如下圖所示。每個模組的作用可以在NLI 自然語言語義互動系統 / 內建模組列表看到詳細描述。

下圖中是我的NLI系統,裡面有我自己寫的快遞模組"expressage"和添加了內建模組"music".


2...建立應用,配置模組

    寫好語法併發布之後後,就可以建立自己的應用了,並在應用裡新增模組即可。我在配置模組的過程中,發現OLAMI有內建的模組可以使用,於是我建立了兩個應用,一個叫查詢工具,用來專門查詢快遞;另一個叫工具,選了內建的模組。

    為什麼我沒有將這些應用放在一起呢?因為我的快遞模組語法中有一個會抓整個句子,導致內建模組無法正常工作。

    你如果想驗證自己的功能是否可用,可以點“測試”按鈕測試一下看看。

快遞應用配置:

其他查詢應用配置(這個語法完全不用自己寫,還有對應的輸出結果,很好用):

    

   應用建立好之後,你就可以檢視OLAMI分配給你的Key資訊,這可是訪問API介面的必備資訊。

     

    3.  訪問API

           如果你在你的應用中測試結果很滿意,也就是你要捕獲的句子都支援,那麼就可以嘗試呼叫API了。然後分析API的結果,做出對應的迴應。

比如我的快遞查詢APP的語法通過modifier支援的四種功能,如下表所示:

modifier含義
modifier


含義

例句
query
輸入的句子只是說要查快遞,沒有提供快遞公司名稱和運單號
我要查快遞
查一下快
幫我查查快遞唄
query_num
輸入的句子中提供了運單號 12112311111
查一下運單號是123423的快遞
query_name 輸入的句子中提供了快遞公司名稱 我想查圓通快
看一下申通快遞
query_name_num 輸入的句子中提供了運單編號和快遞公司名稱 查申通快遞1122333

我的語法中僅涉及了兩個關鍵資訊,即兩個slot,“expnumber”抓取快遞單號,'expname'用來抓取快遞公司的名稱。

因此當OLAMI 的API介面返回語法資訊之後,我只需要根據modifier的值就可以做出對應的操作,而使用slot的值去快遞鳥的API介面查詢快遞資訊。

我的快遞APP功能邏輯如下:

* 如果僅提供運單號,則先用運單號查詢快遞公司編號,如果快遞公司編號有一個,則直接用運單號和公司編號查物流資訊。

  如果有多個,則請使用者選擇快遞公司。

* 如果提供運單號和快遞公司,則直接呼叫運單號+快遞code介面查詢。

* 如果僅提供快遞公司名稱,則記錄並查詢對應快遞公司code,並請使用者提供運單編號。

其他的查詢功能,因為用的是內建模組,直接就有回覆,不需要我再去呼叫其他介面,直接顯示即可,很有意思。

----------程式碼下載:-------------

技術交流:QQ群656580961

相關推薦

程式+OLAMI自然語言API介面製作智慧查詢工具--快遞聊天日曆

     微信小程式最近比較熱門,再加上自然語義理解也越來越被人關注,於是我想趕趕潮流,做一個小程式試試。想來想去快遞查詢應該是一種比較普遍的需求。      如果你也在通過自然語言介面做點什麼,希望

程式呼叫qq音樂API介面

2018年11月14日 15:23:10 LC_cat 閱讀數:8 標籤: 小程式

程式學習:location API介面

微信小程式的位置介面共有兩個: 1、wx.getLocation(OBJECT)獲取當前的地理位置、速度。 2、wx.openLocation(OBJECT) 使用微信內建地圖檢視位置 然後,根據object引數說明,結合module模組化重寫了下兩個介面在暴露出來引用,讓

程式:高德API-PoI地址搜尋

在開始開發前有幾步必要步驟: 1.進入高德地圖API官網,登陸,開發支援-微信小程式SDK,控制檯,應用管理,建立開發需要的key。注意:服務平臺,必須是微信小程式。key用於什麼開發就建立什麼平臺Key。 2.下載 amap-wx.js開發包,https://lbs.amap

程式:高德API之定位。

在開始開發前有幾步必要步驟: 1.進入高德地圖API官網,登陸,開發支援-微信小程式SDK,控制檯,應用管理,建立開發需要的key。注意:服務平臺,必須是微信小程式。key用於什麼開發就建立什麼平臺Key。 2.下載 amap-wx.js開發包,https://lbs.amap

程式連線圖靈API實現智慧聊天(超級簡單)

小程式的demo.wxml <view class='top'>{{tittle}}</view> <view class='que' > <block wx:for="{{syas}}" wx:for-item="it

程式基於高德api地理/逆地理編碼獲取地址

1.先使用微信自帶方法wx.getLocation去獲取經緯度。 wx.getLocation({ type: 'wgs84', //預設為 wgs84 返回 gps 座標,gcj02 返回可用於 wx.openLocation 的座標  suc

程式使用百度api獲取天氣資訊

2> 第二步:配置你的request合法域名 配置域名請到微信公眾平臺的後臺裡設定 3> 第三步:下載百度地圖的api ,連結:http://download.csdn.net/detail/michael_ouyang/9754015

程式---高德地圖API

本文章介紹微信小程式呼叫高德地圖API的過程,使用高德定位功能做演示。 微信小程式目前支援百度地圖、高德地圖、騰訊地圖。用法可以說是基本完全一樣,本文章以高德為例,簡單說一下他們的區別,高德地圖精度應該是最準確的,畢竟本來就是做地圖出生的。百度地圖的精度目前較高德而言,還是要稍稍欠缺一

程式圖片四個API用法

小程式的圖片API主要是 wx.chooseImage 選擇圖片 wx.previewImage 預覽圖片 wx.getImageInfo 獲取圖片的資訊 wx.saveImageToPhotosAlbum 儲存圖片 以下通過一個案例是四種API

程式檢視層_獲取介面上的節點資訊

獲取介面上的節點資訊 WXML節點資訊 節點資訊查詢 API 可以用於獲取節點屬性、樣式、在介面上的位置等資訊。 最常見的用法是使用這個介面來查詢某個節點的當前位置,以及介面的滾動位置。

解決程式使用wxcharts在螢幕不固定問題-開發工具裡也顯示好了佈局,為啥到真機就是亂的

解決微信小程式使用wxcharts在螢幕不固定問題-開發工具裡也顯示好了佈局,為啥到真機就是亂的 .chart{ width: 100%; text-align: center; } .canvas{ /* position: absolute; top: 10%; */ width: 100%; heig

程式學習筆記(一)之框架及工具

文章目錄 一、app.json的配置 1. 決定頁面檔案路徑 2. 配置視窗表現 3. 配置tab標籤導航 4. 設定網路超時時間 5. 配置debug模式 二、App()函式使用

程式控制硬體①】 全網首發,藉助 emq 訊息伺服器帶你如何搭建程式的mqtt伺服器,輕鬆控制智慧硬體!

一、前言; 從去年開始自學前端,到今年的伺服器的學習,也算是自己的一大進步了!這幾天開始搭建小程式的伺服器,琢磨了三天的Nginx中間訊息外掛,期間也是不睡午覺!也許入門Nginx,和大家一樣期

程式生成二維碼介面呼叫

小程式生成二維碼這個介面可以在小程式裡面做, 也可以在java後臺做, 此篇部落格記錄的是在java後臺請求微信的介面生成; 場景: 如果要生成帶引數二維碼拿出去做裂變推廣, 生成的二維碼數量多. 此時不可能一個個通過草料或者阿拉丁來做, 只能請求官方的介面生成; 準備工作: a

程式之獲取使用者資訊介面優化調整

突然收到這個訊息的我是懵逼的,因為這意味著我要改需求! 新的處理方式就是 我的做法是做一個緩衝載入頁,然後通過wx.getUserInfo獲取使用者資訊,如果已經授權過了,那麼是可以獲取資訊的

程式踩坑—使用者登入介面

最近做的一個專案有涉及到使用者登入。微信小程式的使用者登入在我看來有兩種,一種是需要用微信提供的使用者身份標識,簡單地說就是小程式的登入者就是使用這個小程式的微信使用者,還有一種是小程式和伺服器之間有自己的一套使用者唯一標識,類似於員工id這種,這種就不需要獲取微信的登陸憑證

程式API-裝置-手機聯絡人

wx.addPhoneContact(OBJECT) 基礎庫 1.2.0 開始支援,低版本需做相容處理 呼叫後,使用者可以選擇將該表單以“新增聯絡人”或“新增到已有聯絡人”的方式,寫入手機系統通訊錄,完成手機通訊錄聯絡人和聯絡方式的增加。 OBJECT引數說明:

程式API-裝置- 網路狀態

wx.getNetworkType(OBJECT) 獲取網路型別。 OBJECT引數說明: 引數 型別 必填 說明 success Function 是 介面呼叫成功

程式API-裝置-系統資訊

wx.getSystemInfo(OBJECT) 獲取系統資訊。 OBJECT引數說明: 引數 型別 必填 說明 success Function 是 介面呼叫成功的回撥