簡體   English   中英

如何集成Lambda,Alexa和我的代碼(Python-Tweepy)?

[英]How to integrate Lambda, Alexa, and my code (Python - Tweepy)?

我正在嘗試通過與Alexa進行交流。 我想將代碼放在AWS Lambda上,並通過Alexa觸發該功能。

我已經有一個可以成功鳴叫某些字符串的Python代碼。 而且我還設法創建了一個zip文件並將其部署在Lambda上(代碼取決於“ tweepy”軟件包)。 但是,我無法通過Alexa觸發功能,我知道我需要使用處理程序和ASK-SDK(Alexa Service Kit),但是在這一階段我有點迷失了。 任何人都可以給我一個關於處理程序如何工作的想法,並幫助我了解全局嗎?

Alexa ASK_SDK偽代碼:這是新ASK_SDK的偽代碼,它是ALEXA_SDK的前身。 另請注意,我在NodeJS中工作,但結構可能相同

  • 帶回調的外部函數-Lambda函數處理程序
    • CanHandle函數
      • 包含確定此處理程序是否正確的邏輯。 HandlerInput變量包含請求數據,因此您可以檢查intent ==“特定意圖”,然后返回true。 否則返回false。 或者,您可以采取更具體的方式。 (通過意圖觸發處理程序是非常基本的。您可以更進一步,並根據意圖和狀態觸發處理程序。
    • 處理功能
      • 哪個“ canHandle”函數返回true,這就是將要運行的代碼。 處理程序具有一些可以執行的功能。 它可以讀取會話屬性,根據調用的意圖更改會話屬性,制定字符串響應,讀取和寫入更持久的屬性存儲(如dynamodb),以及創建並觸發alexa響應。

handerInput包含您需要的一切。 我強烈建議您使用調試器在Pycharm中運行測試代碼,然后檢查handlerInput變量。

響應構建器也非常重要,它使您可以添加語音,跟進提示,卡片,獲取插槽值等handler_input.response_builder

檢查示例https://github.com/alexa/skill-sample-python-helloworld-classes/blob/master/lambda/py/hello_world.py

class HelloWorldIntentHandler(AbstractRequestHandler):
    """Handler for Hello World Intent."""
    def can_handle(self, handler_input):
        # type: (HandlerInput) -> bool
        return ask_utils.is_intent_name("HelloWorldIntent")(handler_input)

    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        speak_output = "Hello Python World from Classes!"

        return (
            handler_input.response_builder
                .speak(speak_output)
                # .ask("add a reprompt if you want to keep the session open for the user to respond")
                .response
        )

對於有關捕獲用戶輸入的推文的問題,請使用AMAZON.SearchQuery插槽類型。 您可能會遇到關於可以收集多少文本以及捕獲質量的限制,但是SearchQuery插槽是您開始的地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM