正確完成Alexa技能開發 基本設定

2021-10-05 21:20:14 字數 1822 閱讀 7309

正確設定alexa技能不僅可以節省大量時間,還可以使您更靈活,更不易出錯。 在本文中,我們將完全基於**設定一項新技能,以便您在本地儲存庫中擁有從開發人員控制台到lambda函式的所有功能。

我們將設定的示例技能將是瑣碎的「 hello world」技能,因​​為本文僅關注設定而不是技能本身。 本文還將假定您已經了解了進行技能訓練所需的基本部分。

在github上檢視已完成專案的倉庫
開發者控制台用於管理所有技能資訊,例如呼叫名稱,技能儲存描述的意圖。 但是,在開發人員控制台中管理所有這些資訊有一些缺點:

為了解決這些問題,我們將使用ask cli 。 ask cli為我們提供了將所有資訊儲存在json檔案中並通過命令進行部署的功能。 因此,我們將所有內容(**和技能資訊)放在乙個地方並進行了版本化。 因此,讓我們設定專案:

安裝並登入 ask cli。 還要按此處所述設定您的aws憑證(您不必做配置檔案之類的東西,只需進行快速設定即可)

通過詢問新的--skill-name basic-setup-cat-facts來建立新技能。 這將在我們的本地計算機上建立乙個包含所有必需檔案的新資料夾。 然後移到建立的資料夾中。

現在有3個檔案儲存了技能資訊和配置:

當我們使用無伺服器框架進行**部署時,我們將不得不稍稍更改配置並重新排序一些檔案,以使其使用起來更加方便:

開啟skill.json檔案並刪除「 apis」物件。 然後轉到.ask / config檔案,並將「 uri」變數的值更改為arn:change_later。 這將阻止ask cli部署我們的技能。

將index.js檔案從/ lambda / custom移至/ src資料夾,並將package.json和package-lock.json移至專案根資料夾。 然後刪除/ lambda資料夾。

現在,我們可以執行ask deploy將模型和技能資訊推送到開發人員儀表板。

當您使用技能生成器進行更改時,當前的ask cli不支援更新模型json。

它只能轉殖整個專案並覆蓋當前專案。

在使用技能構建器進行某些操作後,一種變通方法是將專案轉殖到新資料夾中,然後將模型json複製並貼上到當前專案中。

為了定義和部署我們的技能功能和基礎架構,我們將使用無伺服器框架。 無伺服器是部署和操作無伺服器體系結構的市場領導者。 ask cli的直接優勢在於,我們不僅可以部署**,還可以定義aws基礎架構。 例如,這允許新增資料庫,s3或稍後我們可能會在我們的技能中使用的其他內容。 因此,讓我們開始部署我們的功能:

無伺服器安裝

為該技能建立無伺服器配置。 這是在serverless.yml檔案中完成的:

3.使用無伺服器部署來部署功能

4.部署完成後,您可以顯示arn(aws上的唯一技能限定詞)以及無伺服器資訊--verbose。 複製arn並將其替換為.ask / config檔案中的arn:change_later值。 這會將開發人員儀表板上的技能配置與您的lambda函式相關聯

5.通過請求部署更新技能配置

技能設定現已完成。 您現在可以去技能商店並啟用自己的技能。

通過此設定,我們現在能夠更改技能配置,lambda函式並使用乙個命令來部署更新。 同樣,所有內容均已版本化,並位於乙個專案資料夾中。

此外,我們可以做一些改進,並將ask cli和lessserver軟體包作為dev依賴項儲存到我們的package.json中。 因此,所有工具都隨專案一起提供。 我們還將所有使用的命令放在其中。 這樣,我們只需要記住一些簡單的命令即可。 如果要詳細檢視所有內容,請簽出儲存庫:

feedm3 /學習alexa技能的基本設定

快樂的技能發展:)

from:

快速了解dueros技能開發

相當於應用商場裡的乙個應用,在dueros系統裡稱為技能,可以被使用者通過對話的方式喚醒和使用 能觸發意圖功能的句子,當使用者說的話完全匹配常用表達的時候,就會觸發意圖,要觸發意圖,需要先進入技能,然後說出常用表達裡的句子。這就像乙個個 函式方法 相當於常用表達裡的放置引數的插槽,如果常用表達裡的某...

亞馬遜向所有Alexa開發者開放技能購買

亞馬遜今天向所有alexa開發人員提供技能採購,以及亞馬遜支付技能。這意味著開發人員可以通過基於alexa的裝置 如亞馬遜的echo揚聲器 在其語音應用中獲得收入。例如,開發人員可能會收取額外的包以支援其語音遊戲,或者提供其他優質內容來擴充套件免費語音應用體驗。該功能之前於2017年11月發布,但僅...

開發應對mysql效能基本技能

聯合索引的最左原則 建立a,b,c三個欄位的聯合索引意味著有a,a,b,a,b,c三個索引 看看mysql所有的演算法就明白了 這個時候看下建立的索引是否被包含在內 對於一些區分性很差的字段不要新增所有,比如性別,年齡,新增所有效果不大,而且浪費儲存空間 對於已有表,特別是大表 資料量比較大的表 新...