微信小程式+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 |
含義 |
例句 |
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 是 介面呼叫成功的回撥