ãã®èšäºã¯ãã¢ã¹ã¯ã¯ã§éå¬ãããJPoint 2017ã«ã³ãã¡ã¬ã³ã¹ã§ã®Baruchã®ã¹ããŒãã«åºã¥ããŠããŸãã
ãã«ã¯ã¯ãJFrogã§éçºè é¢ä¿ã«åŸäºããŠããŸãã ãŸããGroovyãDevOpsãIOTãããã³ããŒã ãªãŒãã¡ãŒã·ã§ã³ã®æ奜家ã§ããããŸãã
ã¢ã¬ã¯ãµãšã¯äœã§ããããªãç§ãã¡ã®ç掻ã®äžã«ããã®ã§ããïŒ
ãã®èšäºã§ã¯ãAlexaãšè©±ãããŸãã ããã¯ã¢ããŸã³ã®è£œåã§ã-é³å£°ã¢ã·ã¹ã¿ã³ããSiriãCortanaïŒèª°ãããããåé€ã§ããªãã£ãå Žåã¯ç¥ã¯çŠæ¢ïŒãGoogle Homeãªã©ãšåãã§ãã Alexaã¯ä»æ¥ã®ããŒã±ãããªãŒããŒã§ããçç±ã¯æããã§ããããã®çç±ã«ã€ããŠèª¬æããŸãã
Alexaããã€ã¹ã«ã¯3ã€ã®ã¿ã€ãããããŸãã
Amazon Tapãšè©±ãããŸãã 以åã¯ã圌女ã¯ååã«å¿çããæ¹æ³ãç¥ããªãã£ãããããã¿ã³ãã¯ãªãã¯ããå¿ èŠããããŸããããããã£ãŠãååã¯Tapã§ãã çŸåšã圌女ã¯ãã§ã«ååã«å¿çããŠããŸãããååã¯æ®ããŸãã å®å šãªAlexaã¯å€§ãããã¹ããŒã«ãŒãåªããŠããŸãã 匱ãã¹ããŒã«ãŒãåããããã¡ã³ãã ã¹ãã£ãã¯ãããããŸããããã¯ãä»ã®ã¬ã·ãŒããŒãã¹ããŒã«ãŒãªã©ã«æ¥ç¶ããããã«èšèšãããŠããŸãã ãããã¯ãã¹ãŠéåžžã«æé ãªäŸ¡æ Œã§ã170ã130ãããã³50ãã«ããããŸãã ç§ã¯ç§ã®å®¶ã«åèš9人ããŸãã ãªãããããã¹ãŠå¿ èŠãªã®ããä»ãã話ããŸãã
Alexaã¯ä»ãè°è«ã®äœå°ã®ãªãåžå ŽãªãŒããŒã§ãããšè¿°ã¹ãŸããã 圌女ã¯ããªãŒãã³ã¹ã¯ãªããAPI Alexa Skillsã®ãããã§ãªãŒããŒã§ãã ã€ãæè¿ãã¡ã€ã³ããŒã¹ã®ã¹ãã«æ°ã¯1äžã«éãããšèšãããŸããã ãããã®ã»ãšãã©ã¯æãã§ãããå€ãã®æçšãªã¹ãã«ã®ãããã§ããã®æçšæ§ãšäººæ°ã«ãããŠAlexaã«äŒŒããã®ã¯ãããŸããã 圌ãã1äžãèšé²ããæ¹æ³ã¯éåžžã«ç解ãããããã®ã§ãã ããã€ãã®è¡ãå€æŽããŠã¹ãã«ãäœæã§ãããã³ãã¬ãŒãããããŸãã ãããå ¬éããŠãTã·ã£ããæã«å ¥ããŠãã ãã-ãããŠä»ã圌ãã¯1äžææã£ãŠããŸãã ããããä»æ¥ã¯ãã£ãšé¢çœãã¹ãã«ãæžãæ¹æ³ãåŠã³ãŸã-ãããŠãããªãã¯ãããéåžžã«ç°¡åã§ããããšãç解ããã§ãããã
ãªãããã«èå³ããããç§ã®å Žæã«ããã¢ã¬ãã¯ã¹è»ãã©ã®ããã«äœ¿çšããŸããïŒ
ç§ã¯ç«ã¡äžãã£ãŠããŸã圌女ã«ã¢ã©ãŒã ããªãã«ããããã«é Œã¿ãŸãïŒãã¢ã¬ã¯ãµãã¢ã©ãŒã ããªãã«ãããïŒã ããããã©ããããããç§ã¯å°æã«è¡ããæãããã€ããããã«é ŒãïŒãã¢ã¬ã¯ãµãæã®æãããã€ãããïŒã ç§ã¯åœŒå¥³ã«æšæ¶ããŸãïŒã¢ã¬ã¯ãµããã¯ããããããŸãïŒã ã¡ãªã¿ã«ã圌女ã¯ããã¯ããããããŸããã«èå³æ·±ãããšã§å¿ããŸããããšãã°ãæšå¹Žãã¬ãŒã·ã¢ã§å€§ããªãããèŠã€ãã£ããšå ±åããŠããŸãã æãã³ãŒããŒã®äžã§åœ¹ç«ã€æ å ±ã
次ã«ããã¥ãŒã¹ã«ã€ããŠå°ããŸãïŒãã¢ã¬ã¯ãµãç§ã®ãã¥ãŒã¹ãã©ãã·ã¥ã¯äœã§ããïŒãïŒããããŠåœŒå¥³ã¯ç§ã«ããŸããŸãªãªãœãŒã¹ãããã¥ãŒã¹ãèªã¿ãŸãã ãã®åŸãç§ã¯èªåã®ã«ã¬ã³ããŒã«äœãããããå°ããŸããïŒ ïŒãã¢ã¬ã¯ãµãç§ã®è°é¡ã¯äœã§ããïŒãïŒã ãã®ãããã§ãç§ã¯ç§ã®äžæ¥ãã©ã®ããã«èŠããããç¥ã£ãŠããŸãã ãããããç§ã¯ã©ã®ããã«ä»äºã«è¡ãã®ãã亀éæžæ»ãªã©ããããå°ããŸãïŒãã¢ã¬ã¯ãµãéå€ã¯ã©ãã§ããïŒãïŒã ããã¯ããŒã æåã®äœ¿çšã§ãããã«ã¹ã¿ã ã¹ãã«ã¯ãŸã£ãããããŸããããããã¯ãã¹ãŠçµã¿èŸŒãŸããŠããŸãã
ããããããã«å€ãã®ã¯ãŒã«ãªã¢ããªã±ãŒã·ã§ã³ããããŸãã
- ã¹ããŒãããŒã ã¯æãã¯ãŒã«ãªãªãã·ã§ã³ã§ãã ãããããã§ã«èŠãããã«ãç§ã¯ã¢ã¬ãã¯ã¹ãéããŠã©ã€ããã€ããŸããã ããããããã¯è»œãã ãã§ãªããããã¯ãã«ã¡ã©ãçé£èŠå ±åšãããããçš®é¡ã®ã»ã³ãµãŒãªã©ãã¹ããŒãããŒã ã«æ¥ç¶ãããã¹ãŠã®ãã®ã§ãã
- é³æ¥œã Alexaã¯ã倧奜ããªé³æ¥œãåçã§ããŸãã ãã¡ãããªãŒãã£ãªããã¯ã§ãã 倧人ã«ã¯ãµã€ãæéããªãã®ã§ãããæ¯åã¯ã¢ã¬ãã¯ã¹ãéããŠããšã話ãèããŠããŸãã
- 質å/åçã ããã¯éåžžããŠã£ãããã£ã¢ã§æ€çŽ¢ããããã®ã§ãã
- ãã¥ãŒã¹/倩æ°-ç§ã¯ãã§ã«ããã«ã€ããŠè©±ããŸããã
- é£ã¹ç©ã泚æãã-ãã¡ããããœãã¡ããç«ã¡äžãããã«ããã¶ã寿åžãªã©ã泚æã§ããããšãéåžžã«éèŠã§ãã
ããããããªãã¯ãã¡ãããã¢ã¬ãã¯ã¹ã«ã€ããŠã®æ¶è²»è ã®ã¹ããŒããèãããã§ã¯ãªããæªæ¥ã®é³å£°ã€ã³ã¿ãŒãã§ãŒã¹ã«ã€ããŠèãããã«ãªããŸããã ä»æ¥ãããã¯èªå€§åºåã§ãããäžè¬ã«ããŸã£ããäºæ³å€ã§ãã ãããããã®èªå€§åºåã¯éåžžã«éèŠã§ãããªããªããé³å£°ã€ã³ã¿ãŒãã§ã€ã¹ã¯ç§ãã¡ãåŸ ã¡æãã§ãããã®ã ããã§ãã é³å£°ã€ã³ã¿ãŒãã§ã€ã¹ãæ©èœããã®ãåŸ ã£ãŠè²ã¡ãŸããã ãããŠä»ãããã¯ç§ãã¡ã®ç®ã®åã§èµ·ãã£ãŠããŸãã
ã¢ããªã¹ãã«ãããšãéå»30ãæã®éã«é³å£°ã€ã³ã¿ãŒãã§ãŒã¹ã®åéã§é²æ©ããã£ãããããã¯éå»30幎ã§ã¯çºçããŠããªãã£ãã äžçªäžã®è¡ã¯ãããæç¹ã§é³å£°ã€ã³ã¿ãŒãã§ãŒã¹ãã°ã©ãã£ã«ã«ãªã€ã³ã¿ãŒãã§ãŒã¹ã«çœ®ãæãã£ãããšã§ãã ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãé³å£°ã€ã³ã¿ãŒãã§ã€ã¹ãååã«éçºãããŠããªãããã«ååšããæŸèæã§ãã£ããããããã¯è«ççã§ãã
ãã¡ããã衚瀺ããæ¹ãè¯ããã®ããããŸãããããã§ããç»é¢ããè¡ãããšã®å€ãã¯é³å£°ã§è¡ãããšãã§ããå®éã«è¡ãå¿ èŠããããŸãã
ãã®APIã¯ãé³å£°èªèãšã¢ã¬ãã¯ã¹ãæã€ç¹å®ã®äººå·¥ç¥èœã®äžã«ããããã®æ¥çã®ççºçãªçºå±ãšå€ãã®äººã ãå€ãã®æçšãªã¹ãã«ãæžãèœåãä¿èšŒãããã®ã§ãã
ä»æ¥ã¯2ã€ã®ã¹ãã«ããããŸãã æåã«ã¢ããªã±ãŒã·ã§ã³IntelliJ IDEAãéããŸããããã¡ããã¯ãŒã«ã§ãããããŸã䟿å©ã§ã¯ãããŸããïŒã¢ããªã±ãŒã·ã§ã³ãé³å£°ã§éãããã³ã§ã³ãŒããæžãããšã¯ããŸãæå³ããªãã®ã§ïŒã 2ã€ç®ã¯Jenkinsã«ã€ããŠã§ãããã¯ããã«åœ¹ç«ã€ã¯ãã§ãã
Alexaã®ã©ã€ãã£ã³ã°ã¹ãã«
ã¹ãã«ãæžãããšã¯ç°¡åã§ã3ã€ã®æ®µéã§æ§æãããŠããŸãã
- ã€ã³ã¿ã©ã¯ãã£ãã¢ãã«-åãé³å£°APIãå®çŸ©ããŸãã
- ç§ãã¡ã«æ¥ãã³ãã³ãã®ãã³ãã©ãŒãæžããŸãã
- Amazonã§ã¬ãã¥ãŒã«åæ ŒããŸãïŒãã®æ®µéã¯èæ
®ããŸããïŒã
ã€ã³ã¿ã©ã¯ãã£ããªé³å£°ã¢ãã«ïŒããã¯äœã§ããããªãã§ããïŒ
ããã¯éåžžã«åçŽãªã¢ã€ãã¢ã«åºã¥ããŠããŸãã
ããã¹ãããå€æ°ãæœåºããŠãã³ãã©ãŒã«æž¡ãããšãã§ããŸãïŒããšãã°ãã¹ãããã§ããIDEAãéãããã«èŠæ±ããŸãããRiderãŸãã¯Sea Lionãéãããã«èŠæ±ããããšãã§ããŸãïŒã
JSONãšããã³ãã³ããåŒã³åºãããããã®ã³ãã³ããã©ã®ããã«èãããããããã¹ãã§ç€ºããŸãã ãããŠãããã§éæ³ãèµ·ãããŸãããªããªãåãããšãç°ãªãæ¹æ³ã§èšãããšãã§ããããã§ãã ãããŠããã®äººå·¥ç¥èœïŒAlexaãæäŸããé³å£°èªèïŒã¯ãç§ãæå®ããããŒã ã ãã§ãªãããã¹ãŠã®é¡äŒŒããŒã ã®æå³ãéžæã§ããŸãã ããã«ãåæ¢ãéå§ããã«ããã¯ããããããªã©ã®çµã¿èŸŒã¿ã³ãã³ãã®ã»ããããããŸããããããã«ã€ããŠã¯äŸãæžãå¿ èŠã¯ãããŸããã
以äžã«ãã©ã®ãµã³ãã«ãå¿ èŠãã瀺ãJSON IntentSchemaã瀺ããŸãã ããã¯ãJetBrains ToolboxããããŒã«ãéãäŸã§ãã
{ "intents": [ { "intent": "OpenIntent", "slots" : [ { "name" : "Tool", "type" : "LIST_OF_TOOLS" } ] }, { "intent": "AMAZON.HelpIntent" } ] }
ããããã®ããã«ãOpenIntentãšããã€ã³ãã³ãããããããŒã«ã¹ãããã1ã€ãããŸãã ãã®ãã©ã¡ãŒã¿ãŒã¯ããŒã«ã®ãªã¹ãã§ãã ããã«ããã«ãããããŸãã
ã¹ãããã¿ã€ã
ã¹ãããã®ã¿ã€ãã¯æ¬¡ã®ãšããã§ãã
- AMAZON.DATEãDURATIONãFOUR_DIGIT_NUMBERãNUMBERãTIMEãªã©ã®ãã«ãã€ã³ã
- Alexaãæ¢ã«ç¥ã£ãŠãããã¹ãŠã®æ
å ±ã®å€ããããšãã°ã俳åªãè©äŸ¡ããšãŒããããšã¢ã¡ãªã«ã®éœåžã®ãªã¹ããæå人ã®ãªã¹ããæ ç»ã飲ã¿ç©ãªã©ãã¹ãã«ãæžãããšãã§ããŸãã ïŒAMAZON.ACTORãAGREATERATINGãAIRLINEãEUROPE_CITYãUS_CITYãPERSONãMOVIEãDRINKïŒã ããããšãã¹ãŠã®å¯èœãªãªãã·ã§ã³ã«é¢ããæ
å ±ã¯ããã§ã«Alexaã«ä¿åããã³ä¿åãããŠããŸãã
- ã«ã¹ã¿ã ã¿ã€ãã
ãããã¯åæåã§ã¯ãªãããšãå¿ããªãã§ãã ããã ã€ãŸãããã®ãªã¹ãã¯åªå é äœãšããŠã®ã¿æ©èœããŸãã Alexaãä»ã®åèªãèªèãããšãããã¯ç§ã®ã¹ãã«ã«è»¢éãããŸãã
ããããŸãã«ããŒã«ã®ãªã¹ãã§ã-ç§ã圌女ã«äžãããªãã·ã§ã³ã§ãã
ããã§ã®ã¹ãã«ã¯ãAlexaãèªç¶ãªåèªã§åäœãããšããçç±ã ãã§ãJetBrains補åã®ã¹ãã«ãšã¯ç°ãªããŸãã ãããã£ãŠãIntelliJ IDEAãäžèšã§æžããšã圌女ã¯ãããäœã§ããããèªèã§ããŸããã
ããŒã ã®ãã¬ãŒãºã®äŸ
ãã®ããŒã«ã®çºèŠã䞻匵ããããã«äººã ãã©ã®ããã«é©çšã§ãããã®äŸã¯ããã«ãããŸãïŒ
OpenIntent open {Tool} OpenIntent start {Tool} OpenIntent startup {Tool} OpenIntent {Tool}
ä»ã®ãªãã·ã§ã³ããããŸãã Alexaã¯ãã®ã»ãããèŠããšããããã®åèªã®å矩èªããã®æå³ã«è©²åœããããšãç¥ã£ãŠããŸãã
ã³ãã³ããã³ãã©ãŒ
é³å£°ã€ã³ã¿ãŒãã§ã€ã¹ã«ã€ããŠèª¬æããåŸãã³ãã³ããã³ãã©ãŒãäœæããŸããã ããã¯éåžžã«ç°¡åã«æ©èœããŸããAlexaã¯ã話ããŠããé³å£°ãJSON圢åŒã®RESTãªã¯ãšã¹ãã«å€æããŸãã
ãªã¯ãšã¹ãã¯ãAWS Lambda FunctionãŸãã¯ä»»æã®HTTPãµãŒããŒã«éä¿¡ã§ããŸãã Lambdaé¢æ°ã®å©ç¹ã¯ãä»»æã®HTTPãµãŒããŒãå¿ èŠãšããªãããšã§ãã ãµãŒãã¹ãäžããããšãªããã³ãã©ãŒãäœæã§ãããµãŒãã¹ãšããŠã®ãã©ãããã©ãŒã ããããŸãã
AWS Lambdaé¢æ°ã®å©ç¹ïŒ
- ãµãŒããŒã¬ã¹cumputeãµãŒããŒ-åç¬ã§åäœããŸã
- ããŒãªãã¬ãŒã·ã§ã³ïŒ
- Node.jsã¯æããšã¬ã¬ã³ããªå®è£
ã§ãã Javascripté¢æ°ãäœæãããã®ãµãŒãã¹ããã«ãããšãããã§æ©èœããŸãã
- PythonãµããŒãïŒããã€ãã®æ©èœãåããã¹ã¯ãªãããäœæããŠããŸãããããã¯ãã¹ãŠããŸãæ©èœããŸãïŒ
- Java 8ã
Java 8ã¯ã¯ããã«è€éã§ãã Javaã§ã¯ãèšè¿°ããŠåŒã³åºãããšãã§ããæäžäœã®é¢æ°ã¯ãããŸããããããã¯ãã¹ãŠã¯ã©ã¹ã§ã©ããããå¿ èŠããããŸãã å人ã®Sergei Yegorovã¯ãLambdaã䜿çšããŠãã人ãã¡ãšçã足ãèžã¿ãGroovyãLambdaã§çŸåšã§ã¯ãªãïŒjarãã¡ã€ã«ãäœæããŠåãæ¹æ³ã§äœ¿çšããå ŽåïŒäœ¿çšã§ããããã«åãçµãã§ããŸãã Groovyã¹ã¯ãªãããåŒã³åºãããã³ãŒã«ããã¯ã䜿çšããŠã¹ã¯ãªãããäœæã§ããå Žåã
ã¹ããŒãã¬ãã
Alexaã®Javaãªã¯ãšã¹ããåŠçããã¯ã©ã¹ã¯SpeechletãšåŒã°ããŸãã ã¹ããŒãã¬ãããèŠããšãã¢ãã¬ããããããã¬ãããããã³ãµãŒãã¬ããã«ã€ããŠèŠããŠããŸãã ãããŠãããªãã¯ãã§ã«äœãæåŸ ããŠããã®ããç¥ã£ãŠããŸã-å¶åŸ¡ãããå®è¡ãµã€ã¯ã«ãã€ãŸãã倧ãŸãã«èšãã°ãéçºè ãšããŠã®ãå€ãã®ç掻ã®ããŸããŸãªãã§ãŒãºããã®å Žåã¯ãããã¬ããã§å®è£ ããå¿ èŠã®ããçš®é¡ã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ãã
ãããŠãããã¯Speechletã€ã³ã¿ãŒãã§ã€ã¹ã§ãããå®è£ ããå¿ èŠããã4ã€ã®ã¡ãœããããããããééããŠããŸããã
public interface Speechlet { void onSessionStarted(SessionStartedRequest request, Session session); SpeechletResponse onLaunch(LaunchRequest request, Session session); SpeechletResponse onIntent(IntentRequest request, Session session); void onSessionEnded(SessionEndedRequest request, Session session); }
æåã
nSessionStarted
ã¯Alexaãç«ã¡äžããã圌女ãããã
nSessionStarted
ãæã£ãŠããããšã«æ°ã¥ãããšãã§ãã
onLaunch
ã¯ãã¹ãã«ã®ååã§ã³ãã³ããåŒã³åºããšãã§ãã
onIntent
人ãç§ãã¡ã«è©±ãããããšãã
onIntent
ã®åœ¢ã§åœŒãèšã£ãããšãšåœŒãåŒãã ã³ãã³ããååŸãããšãã
onSessionEnded
ã¯ãéåžžã®ã¯ãªããããäœæãããšãã§ãã
äžè¬çã«ãããã¯ä»ã®ã幎ããšéåžžã«äŒŒãŠãããä»åºŠã¯ã³ãŒãå ã®ãã¹ãŠãã©ã®ããã«èŠããããèŠãŠãããŸãã
Speechletãæžãå Žæ
Amazonã§äœæ¥ããå¿ èŠããã2ã€ã®å ŽæããããŸãã
- Alexa Skill Kitãæ°ããã¹ãã«ïŒã€ã³ã¿ã©ã¯ãã£ãã¢ãã«ãã¡ã¿ããŒã¿ãååããªã¯ãšã¹ããè¡ããããšãã®è¡ãå
ïŒãèšè¿°ããŸãã
- LambdaããŸãã¯ãªã¯ãšã¹ããã³ãã©ã§ããã¹ããŒãã¬ãããããä»ã®ãµãŒãã¹ã ã€ãŸãã倧ãŸãã«èšãã°ã次ã®ãããªçµæãåŸãããŸãã
ãã¢ã¬ã¯ãµããžã§ã³ãã³ã¹ã«ç§ã®ãã«ãã¯ã©ãã§ããïŒããšèšããŠãŒã¶ãŒãããŸãã ããã¯ããã€ã¹ããã®å Žåã¯Amazon Tapã«éãããŸãã ãã®åŸããã¹ãŠãåãã¹ãã«ã䜿çšããŠãé³å£°ãJSONã«å€æããLambdaé¢æ°ã«ã¢ã¯ã»ã¹ããJenkins APIããã«ããŸãã
ã³ãŒãäŸïŒJbToolBoxActivator Speechlet
ãããã³ãŒããèŠãŠã¿ãŸããã
ïŒ https://github.com/jbaruch/jb-toolbox-alexa-skill/blob/master/src/main/groovy/ru/jug/jpoint2017/alexa/jbtoolboxactivator/JbToolBoxActivatorSpeechlet.groovy ïŒ
ãã¡ãããããã¹ãã£ãã¯ã§ãã ãã«ããã¹ããæ¢å®ã®è³ªåãªã©ãå®æ°ã«å ¥ããŸãã HTTP BUILDERããããŸããããã¯Amazon Lambdaã«å¯ŸããŠå®è¡ããããµãŒãã¹ã§ãã ãããã£ãŠã圌ã¯ã€ã³ã¿ãŒãããäžã§äœããåŒãåºãå¿ èŠããããŸãã ããã¯å®éã«ã¯Groovyã§ããããã€ã©ãŒãã¬ãŒããè¿œå ãããšJavaãã§ããŸãã
nSessionStarted
ãHTTPã¯ã©ã€ã¢ã³ããæ§æãããã®ãããªãã¹ããšããŒãã§ããŒã«ããã¯ã¹ãããã¯ãããšèšããŸãã 次ã«ããã¡ã€ã«ããããµããŒããããŠããããŒã«ã®ãªã¹ããèªã¿åããŸããããããã確èªããŸããïŒlist of tools.txtïŒã
onLaunch
ãã
onLaunch
ãçºè¡ã
HelpResponse
ã ããªããèãããã®ãã®-ç§ã¯åãããŒã«ãéãããšãã§ããŸãã
onIntent
èå³æ·±ãããšã¯
onIntent
ã§
onIntent
ãŸãã ã€ã³ãã³ãã®ååã§åãæ¿ããŸãã ããã¯ãç§ãã¡ãæã£ãŠãããã¹ãŠã®ããŒã ã®ãã¡ãç§ãã¡ã«æ¥ããã®ã§ãã ãã®å ŽåãèŠããŠããã°ã2ã€ã®æå³ããããŸããã 1ã€ã¯éããŠããããããã«ã¹ã¿ã ã¡ãŒã¿ãŒã§ããããã1ã€ã¯ãã«ãã§ãã ãŸããåæ¢ããã£ã³ã»ã«ãããã³ãã®ä»ã®ããšããããŸãã
ãããŠãæãèå³æ·±ãã®ã¯
openIntent
ã§ãã åãã¹ããããåãåºããããããããŒã«ãåãåºãïŒIDEAãªã©ããããŸãïŒãHTTPãã«ããŒã䜿çšããŠURIãšãã®ããŒã«ã«æ¥ç¶ããŸãã ã€ãŸãããã®åœ¢åŒãç解ããŠããJetBrains Toolbox APIãåç §ããŠããŸãã
ãããã£ãŠãçããè¿ããŸãã çãã¯ã
Opening $toolName
ããŸãã¯ããŒã«ããªã¹ãã«ãªãå Žåã§ãïŒ ç³ãèš³ãããŸããããããŒã«ããã¯ã¹ã«$ toolNameãšããååã®ããŒã«ãèŠã€ãããŸããã ããããªã
ãã«ãã¯ãã«ããã¹ããããšããŠæ©èœããã«ã³ã»ã«ã¯
Goodbye
ãŸãã æã£ãŠããªãã€ã³ãã³ããå°çããå Žåãç¡å¹ãªã€ã³ãã³ããã¹ããŒããŸãã
ãã¹ãŠãéåžžã«ã·ã³ãã«ã§ããç§ã¯ããªãããããã©ãã»ã©ã·ã³ãã«ã§ããããèŠãããšãã§ããããã«ããšãŠãã·ã³ãã«ã«æžããŸããã
onSessionEnded
ç§ã«ã¯äœããããŸããã ããã«ã¯ãæãçŽç²ãªåœ¢åŒã§ãã€ã©ãŒãã¬ãŒãã10è¡ã®ã³ãŒãã§3ã€ã®ãªããžã§ã¯ããäœæãã
newAskResponse
ã¡ãœããããããŸãã1ã€ã®ãªããžã§ã¯ãã¯ãçè«çã«ã¯ä»ã®2ã€ã®ããã¹ãã翻蚳ããå¿ èŠããã2ã€ã®ãªããžã§ã¯ãã翻蚳ããå¿ èŠããããŸãã äžè¬ã«ã圌ãè¡ãããšã¯ãSpeechletResponseãªããžã§ã¯ããäœæããããšã ãã§ãããã®ãªããžã§ã¯ãã«ã¯ãOutputSpeechããã¹ããšrepromptTextããããŸãã ãªã10è¡ã®ã³ãŒããå¿ èŠãªã®ã§ããïŒ ãŸããããã¯æŽå²çã«èµ·ãããŸãããããã«ã€ããŠå°ãã話ãããŸãã ãã®å®åæ以å€ã®ãã¹ãŠãæ確ã§ã·ã³ãã«ã§ããããšãé¡ã£ãŠããŸãã
ã³ãŒãäŸïŒJenkins Speechlet
å¥ã®ã¹ãã«ãèŠãŠã¿ãŸãããã ãããŠä»åºŠã¯ãã³ãŒãããã¹ãã«ãŸã§ã®å¥ã®æ¹æ³ãèŠãŠã¿ãŸããããæåŸã«å®è¡ãè©Šã¿ãŸãã Jenkinsã®ã¹ããŒãã¬ããã¯æ¬¡ã®ãšããã§ããJenkinsãå¶åŸ¡ããã¹ãã«ãã³ãã©ãŒïŒ
ãã¹ãŠãéåžžã«ããå§ãŸããŸãïŒ
nSessionStarted
ãåæåããJENKINS_HOSTã®Rest APIãä»ããŠJenkinsã«ã¢ã¯ã»ã¹ããç¹å®ã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã§ãã°ã€ã³ããŸãã ããã¯ããã¡ãããç°å¢å€æ°ãä»ããŠéåžžã«æ£ãããããŸããã Alexaã«ã¯ãã¹ãã«ã§ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããç»é²ã§ããã·ã¹ãã ããããŸããã€ãŸãããã®ã¹ãã«ãããŒã«ã«ã®Alexaã«ã€ã³ã¹ããŒã«ãããšããã°ã€ã³ã§ãããŠã£ã³ããŠãéããŸãã ããããç°¡åã«ããããã«ãããã§ã¯ç°å¢å€æ°ãããŠãŒã¶ãŒåãšãã¹ã¯ãŒããååŸããŸãã
onLaunch
ã§åãããã¹ãã
onLaunch
ããŸãïŒãæšæ¶ã巚倧ãªé¡ããžã§ã³ãã³ã¹ãã³ã³ãããŒã«ããŸãã-ãããŠãããã§èå³æ·±ã
onIntent
ã
ããã§ã¯ãããã«å¿ããŠãããå€ãã®æå³ããããŸããã¢ãã«-https://github.com/jbaruch/jenkins-alexa-skill/blob/master/src/main/resources/speechAssets/IntentSchema.jsonãèŠãã®ãçã«ããªã£ãŠããŸãã
æããã«ãæåŸã®ãã«ãã«é¢ããæ å ±ãè¿ã
GetCodeCoverage
ãã³ãŒãã«ãã¬ããžæ å ±ãè¿ã
FailBuildIntent
ãããã³
FailBuildIntent
ããããŸãã ããã«ããã«ããåæ¢ããã£ã³ã»ã«ãããã«ã¯ã¯ããããããªã©ãçµã¿èŸŒã¿ã®ãã®ããããããããŸãã å®éããããã®yesãšnoã§äœãããããèŠãŠã¿ãŸãããã
å§ããŸãããã æå³ãäŒãããããããååã§ããŒã¿ãååŸããŸãã æåŸã®ãã«ããèŠæ±ãããå ŽåãJenkins APIã«ç§»åãããããããã«ãã®ååãšè²ïŒèµ€ãŸãã¯é-åæ ŒãŸãã¯äžåæ ŒïŒãå«ããã«ãã®ãªã¹ããååŸããŸãã æåŸã«ããã®ååã®ãã«ããæåããã倱æãããã確èªããŸãã
GetCodeCoverage
åã³ãJenkins APIãjacocoãšåŒã°ãããã©ã°ã€ã³ã䜿çšããŸãã ãã®äžã«ã¯ãä»ã®åªãããã©ã°ã€ã³ãšåæ§ã«ãå€ãã®ãã©ã¡ãŒã¿ãŒããããŸãã lineCoverageã1ã€ååŸããããã€ãã®æ å ±ãååŸããŸãã
FailBuild
ã¯ãåä¿¡ãã«ãã倱æã«å€ããèŠæ±ã§ãã ç§ã¯ããã«ããã«åæããããããŸããã Alexaã¯ãã°ãã°ç¡é§ã«å¿çããããã誀ã£ãŠãã«ããå転ããå¯èœæ§ããããŸãã ãããŠã圌女ã«ç¢ºèªãæ±ããŸãã å¥ã®ãªã¯ãšã¹ããéä¿¡ããŠããããã§ãã«ããåãããããããã¯æ¬åœã«ããªããèããŠãããã®ã§ããïŒã ã»ãã·ã§ã³ãè¡ããŸãã ããã¯ãç°ãªãåŒã³åºãã«ãã£ãŠä¿æãããŠãããã®ãšãŸã£ããåãã§ãããèŠæ±ããã倱æã«ãã©ã°ãèšå®ããŸãã
ãããŠãåãyes-noããããŸãã ã¯ããšçããå Žåã¯ã質åããããã©ããã確èªããå¿ èŠããããŸãã ãããŠã質åããã£ãå Žåã¯ãä»åãJenkins APIã§äœããã®çš®é¡ã®æçš¿ãªã¯ãšã¹ããäœæããä»äºãåããŸãã ãããŠãä»äºãæ¬åœã«èµ€ããªã£ãããç§ãã¡ã¯ä»äºã«å€±æãããšèšããããã§ãªããã°ãäœãèµ·ãããªãã£ãã ããŠãåæ¢-ãããªããèšã£ãŠçµäºããŸãã
ãã®ãããªèå³æ·±ãæ©èœãããã³ããã®ã³ãŒãã¯1ããŒãžã§ãã ã³ãŒããè€éã«ããããšããŸããããå®éã«ã¯éåžžã«åçŽãªã®ã§ãè€éã«ãããã®ã¯äœããããŸããã
ãã®åŸãããããã¹ãŠgradleã§åéããŸããGradleã¯ããã§æãç°¡åã§ãã ããã«ã¯ããããã®äŸåé¢ä¿ããããŸããèªç¶ã«å¿ èŠãªgroovyãšããã®APIã®3ã€ã®äŸåé¢ä¿ãloggerãcommons-ioãcommons-langã§ãã ããã ãã§ãïŒ testCompile-åœç¶ããã®ããžãã¹ã®ããã®ãã¹ãããããŸãã 次ã«ãjarãã¡ã€ã³ãã£ã¬ã¯ããªã«ããZIPããã«ãããŸãã ããã«ããã¹ãŠã®äŸåé¢ä¿ãå«ãlibãã£ã¬ã¯ããªããããŸãã æ¬åœã«ç°¡åãªãšããã¯ãããŸããã
Alexa Skill Kitã䜿çšãã
次ã«ããã®ãã«ãã§äœãããããèŠãŠã¿ãŸãããã æ¬åœã«æ²ããå Žæã¯2ã€ãããŸãã æåã¯Alexa Skill Kitã§ãç§ãæžãããã¹ãŠã®ã¹ãã«ãæã£ãŠããŸãã Jenkins SkillãèŠãŠã¿ãŸãããã
å ã»ã©èšã£ãããã«ãããã«ã¯ã¡ã¿ããŒã¿ããããŸããååãšåŒã³åºãåã¯ããã¢ã¬ã¯ãµããžã§ã³ãã³ã¹ã«ããããããã«é Œãã§ãã ããããšèšããšãããŸãã«èšèïŒãžã§ã³ãã³ã¹ïŒã§ãã
次ã«ããªãŒãã£ãªãã¬ãŒã€ãŒãå¿ èŠãã©ãããæå®ã§ããŸãïŒããšãã°ãé³æ¥œã®åçããã¥ãŒã¹ã®åçãªã©ããµãŠã³ããã¹ããªãŒãã³ã°ãããå ŽåïŒ
ããã«ãã€ã³ã¿ã©ã¯ãã£ãã¢ãã«-ã€ã³ãã³ããèšè¿°ããåãJSONããããŸãã
ããã«ã¯ã¹ãããã¯ãããŸããããJetBrainsã«ã¯ã«ã¹ã¿ã ã¹ããããããããã®ã¹ãããã«ã¯ç§ã®æå³ã«åã£ãå€ãšäŸããããŸãã
æ§æã¿ã-ç§ãåŒã¶ãã®ïŒLambdaãŸãã¯HTTPSã
åãã¢ã«ãŠã³ããªã³ã¯ããããŸã-ã¹ãã«ãèšå®ãããšãã«ãã°ã€ã³ããæ©äŒãäžããŸããïŒçè«çã«ã¯ããããJenkinsã§è¡ãã®ãè¯ãã§ãããïŒã
ãããŠãããããçš®é¡ã®è³Œå ¥ã®ããã®ãããªãèš±å¯ããããŸãããç§ãã¡ã¯ããã«ããŸãèå³ããããŸããã
[ãã¹ã]ã¿ã-ããã§ãç§ã話ããã圌女ãäœãããããæžãããšãã§ããŸãã
次ã¯[å ¬éæ å ±]ã¿ãã§ãã ãã®ã¹ãã«ã¯ãAmazonã§ããããçš®é¡ã®ãã§ãã¯ã«åæ ŒããŸãã ç§ã¯åœŒãã«ãããäœã§ããããã©ã®ããã«ãã¹ããããŠããããªã©ãäŒããªããã°ãªããŸããã
AWS Lambdaã䜿çšãã
ã¹ãã«ã䜿çšãã2çªç®ã®éšåã¯ãAWS Lambdaã§ãã ãããã®3ã€ã®ã¹ãã«ä»¥å€ã«äœããããŸããã
ãžã§ã³ãã³ã¹ãèŠãŠã¿ãŸãããã ããã§ãGradleãäœæãããŸãã«ãã®jarãåããŸãã å€æ°ïŒãã¹ãããã¹ã¯ãŒãããŠãŒã¶ãŒïŒããããŸãã
æ§æã§ã¯ãå¿ èŠãªã©ã³ã¿ã€ã ãèšè¿°ããŸãã å ã»ã©èšã£ãããã«ãNodeãPythonãJavaããµããŒããããŠããŸãã ãããŠæè¿ãCïŒã«ãã£ãŠãµããŒããããããã«ãªããŸããã 次ã¯ãã³ãã©ãŒã§ãã ãããç§ã®ã¹ããŒãã¬ããã®å éšã§ãã ç§ã®åœ¹å²ã¯lambda_basic_executionãšåŒã°ããŸãã ãããŠãç§ã¯èª¬æããããŸãã ããã ãã§ã
ããªã¬ãŒã¯Alexaããæ¥ãŸãã Alexa KitãšåŒã°ããç¹å¥ãªçš®é¡ã®ããªã¬ãŒããããŸãã ããã¯ãåŒã³åºããããããè¡ãããããšãæå³ããŸãã
ããã§ãã©ã®JSON AlexãLambdaã«éä¿¡ããããç¥ã£ãŠãããã©ããããã¹ãããããšãã§ããŸãã ããã§ãã¹ããããšããã®Jenkinsã衚瀺ãããŸãã ãããŠããã®ãžã§ã³ãã³ã¹ãèŠãŠã¿ãŸãããã ãªã¯ãšã¹ããéä¿¡ããŸããïŒãã«ãã¯ã©ãã§ããã
ã€ã³ãã³ããéä¿¡ããŸãããã€ã³ãã³ãã¯ã©ã¹ããã«ããšåŒã°ããAlexaã¯ç§ãæããã®ãå®çŸããŸããã
ãã¹ãŠJSONã§ã©ãããããŠãããLambdaã§ãã¹ãã§ããŸãã ç§ã¯èšãããšãã§ããŸãïŒç§ã¯ãã®JSONãéä¿¡ããŠããŸãã ãããŠãç§ããããèšããšããç§ã¯ãã®äœåãããã¹ãããããšãã§ããŸããã
ã¯ãããã®é³å£°èªèã®ãšã³ãããŒãšã³ããã¹ãïŒJSONã®ããã¹ããLambdaã§ã次ã«æ»ãïŒããããŸãããŸãã¯ãå¿ èŠãªJSONãããã£ãŠããå ŽåãLambdaã¬ãã«ã§ã®ã¿ãã¹ãã§ããŸãã
Jenkins Speechletãã¢ã³ã¹ãã¬ãŒã·ã§ã³
äžè¬ã«ããã¹ãŠããã§ã«éå§ãããšãã§ãã Jenkinsãããã以åã®ã¹ãã«ã®ãã«ãããããŸãã
次ã«ããã®çš®ã®ã·ã¹ãã ãšã®å¯Ÿè©±ããããŸãã
ãã«ã¯ïŒã¢ã¬ã¯ãµããªãŒãã³ãžã§ã³ãã³ã¹
AlexaïŒãã®ã¹ãã«ã䜿çšãããšããã«ããµãŒããŒãå¶åŸ¡ã§ããŸã
ãã«ã¯ïŒã¢ã¬ã¯ãµããžã§ã³ãã³ã¹ã«èããŠãã ãããç§ã®ãã«ãã¯ã©ãã§ããïŒ
AlexaïŒæåŸã«ãã«ãããjb-toolbox-alexa-skillãæž¡ãããŸãã 次ã«äœããããã§ããïŒ
ãã«ã¯ïŒã³ãŒãã«ãã¬ããžãšã¯äœã§ããïŒ
AlexaïŒæåŸã®jb-toolbox-alexa-skillãã«ãã®ã³ãŒãã«ãã¬ããžã¯30ïŒ ã§ãã 次ã«äœããããã§ããïŒ
ãã«ã¯ïŒãã«ãã«å€±æããŸãã
AlexaïŒæåããææ°ã®ãã«ãã«å€±æããããšãç解ããŠããŸãã ããããã§ããïŒ
ãã«ã¯ïŒã¯ã
AlexaïŒãã«ãã¹ããŒã¿ã¹ã倱æã«å€æŽããŸããã ããããšããããããªãã
ããã¯éåžžã«ã¯ãŒã«ã§éåžžã«ã·ã³ãã«ã§ããã®ãããªç°¡åãªã¬ãã«ãæ¥ããŠããŸãã
Alexaããžã¥ã¢ã«ã³ã³ãããªã³
é³å£°ã€ã³ã¿ãŒãã§ã€ã¹ã«å ããŠãAlexaã«ã¯èŠèŠçãªä»²éãããŸãã ããã¯ããã¹ãŠã®ããã€ã¹ãã€ã³ã¿ãŒããããªã©ãã»ããã¢ããããããšã«å ããŠãã«ãŒããããã¢ããªã±ãŒã·ã§ã³ã§ãã ããã¯ãé³å£°ã€ã³ã¿ãŒãã§ã€ã¹ã«ãšã£ãŠè£å©çãªæ å ±ã®ã¹ããªãŒã ã§ãã äžè¬çã«ãããã¯ãã¹ãŠãé³å£°ã§èšãããšãã§ããããã§ã¯ãªããããé©åãªã¢ã€ãã¢ã§ãã ããšãã°ã
code coverage
èŠæ±ããã°ããã§ãã¡ããªãã¯ããããå Žå-å®éãjacocoã¯6ã€ã®ã¡ããªãã¯ãè¿ããŸãïŒãã©ã³ãå®è¡ãã¡ãœãããã³ãŒãè¡ãªã©ã®ã«ãã¬ããžã§ãã åœç¶ãã¢ããªã±ãŒã·ã§ã³ã§ãããèŠèŠçã«è¡šç€ºããããšã¯çã«ããªã£ãŠããŸãã ããã¯1è¡ã§å®è¡ã§ããŸã-ãããã¹ããã¢ããªã±ãŒã·ã§ã³ã«éä¿¡ããšããã³ãã³ãããããŸãã ãããŠãããã«è¡šç€ºããããã¬ãŒã³ããã¹ããç»åããŸãã¯htmlãéä¿¡ã§ããŸãã ããšãã°ã倩æ°ã«ã€ããŠå°ãããšãã¢ã·ã¹ã¿ã³ããçãçããè¿ããŸãã ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãäžé±éã®å€©æ°ãèŠãããšãã§ããŸãã ç§ã¯ãŸããç§ã®å®¶ãããã¯ãããŠãããæ¯åãçŸåšèµ€ãããã®ããšã話ãå§ããŠããããšã確èªããŸããã ããã¯æ¬¡ã®ãããªãã®ã§ãã
Alexaã®æ¬ é¥ïŒæ¶ç©ºã®çŸå®
ããã§ã¯ãæ³åäžã®ãã®ãšçŸå®çãªãã®ã®2çš®é¡ã®æ¬ é¥ã«ã€ããŠè©±ããŸãããã æåã®-æ³åäžã®-é³å£°èªèã«é¢é£ä»ããããŠããŸãã ãŠãŒã¶ãŒã¯ã¢ã¯ã»ã³ããä»ããŠè©±ãããšããã¯ã£ãããšçºé³ããªãããšããããŸãã ç§ã¯åœŒãããããã©ã®ããã«è¡ãã®ãåãããŸããããã¢ã¬ã¯ãµã¯ç§ã®å°ããªæ¯åã§ããå®å šã«ç解ããŠããŸãã劻ãšç§ã¯ãã€ã圌ãç解ããŠããããã§ã¯ãããŸããã
2çªç®ã«çãããæ¬ é¥ã¯ã次ã®å³ã«ç€ºãããŠããŸãã
å®éããã®åé¡ã¯ã»ãã¥ãªãã£æ©èœã䜿çšããŠéåžžã«ç°¡åã«è§£æ±ºã§ããŸããAlexaã¯ãäºåã«å®çŸ©ãããPINã³ãŒããçºé³ãããŸã§ãã¹ãã¢ã§æ³šæãããããã¢ãéãããããããšã¯ãããŸããã
ããããããã圌ãã¯åžžã«ç§ãã¡ã®è©±ãèããŠããŸãããšãããããªåŽé¢ããŸã ãããŸãã ãªããŒã¹ãšã³ãžãã¢ãªã³ã°ãè¡ãããã®ã¯ãã£ãšåã®ããšã§ã誰ããè³ãåŸããŠããããšãããç¥ã£ãŠããŸãã 圌ããåžžã«è³ã«ããã®ã¯ããªã¬ãŒã¯ãŒãã ãã§ãã ããã¯ãç§ã圌女ã«é»è©±ãããšãã§ãã ããªã¬ãŒã¯ãŒãã¯ã©ã³ãã ã«è©±ããããã®åŸ10ç§ä»¥å ã«çºèšãèšé²ããããã®èšé²ãã¡ã€ã³ã€ã³ãã³ããã¡ã€ã³ã¹ãã«ã«éä¿¡ãããããšããããŸãã ããã§èªèãããªãå Žåã¯ããŽãç®±ã«æšãŠãããŸãã ãããã£ãŠããã®ãã©ãã€ã¢ã¯ãã¹ãŠäžåœã§ãã
次ã«ãå®éã®æ¬ é¥ã«ã€ããŠèª¬æããŸãã ãããã¯ããã€ãã®ã«ããŽãªã«åé¡ã§ããŸãã
é³å£°ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«ã¯æ¬ ç¹ããããŸãã 圌ãã¯ãäžéšã®äººã ãç©äºãåãèšèãšåŒã¶ãšããäºå®ã«é¢é£ããŠããŸãã Helloweenã®é³æ¥œãèŠæ±ããŠããããŠã£ãŒã³ã®é³æ¥œãååŸããªãã§ãã ããã Alexaã¯ãããŠã£ãŒã³ã®é³æ¥œãšHelloweenãã³ãã®éã§ã¯ãã³ãã奜ãããšãæ¢ã«ç¥ã£ãŠããã¯ããªã®ã§ãé²è¡ç¶æ³ãèãããšãã³ã³ããã¹ãã§ãã®åé¡ã解決ããå¿ èŠããããšæããŸãã ãã¹ãŠã¯ããã«ãªããŸããããããŸã§ã®ãšãããç¹ã«æèãç解ã§ããªãå Žåã¯ããã§ã¯ãããŸããã
ãããŠããäžã€ã®åé¡ã éæšæºã®ååãšååã®ãµããŒãã®æ¬ åŠã«é¢é£ããŠããŸãã Alexaãååã圹è·ãç¥ããªãå Žåã圌女ã¯ãããçºé³ã§ããŸããã
ããã«ãæ¶è²»è åãããã€ã¹ãšããŠã®Alexaèªäœã«ãæ¬ ç¹ããããŸãã
- è€æ°ã®ã³ãã³ããç解ããŠããŸããã Jenkinsã§è¡ã£ãããã«ã次ã®ã³ãã³ããäŒããããã«æ¯å圌女ã®ååãçºé³ããªãã£ããšãã«ãã€ã³ã¿ã©ã¯ãã£ãã¢ãã«ãäœæã§ããŸãã ããããããšãã°ãçŸæç¹ã§ã¯ããã¢ã¬ã¯ãµããã¬ãã®é»æºãå
¥ãããªãã³ã°ã«ãŒã ã®ç
§æã20ïŒ
ã«èšå®ããããšããã³ãã³ããå®è¡ã§ããŸããã ãããŠãå€ãã®ããŒã ãååšããããããåžžã«äœ¿çšããŠããå Žåãããã¯é¢åã§ãã
- ã¯ã©ã¹ã¿ãŒã§ã¯æ©èœããŸããã ç§ã¯èªå®
ã«ãã®ãããªããã€ã¹ã7ã€æã£ãŠãããšããäºå®ã«ããããããããããããèªåèªèº«ãå¯äžã®ãã®ãšèããŠããŸãã ãããã£ãŠã3ã€ã®å Žæã«ç«ã€ãšã3人å
šå¡ãçããŠãããŸãã ãŸãã1ã€ã䜿çšããŠä»ã®é³æ¥œããªã³ã«ããããšã¯ã§ããŸãããè€æ°ã®é³æ¥œãããããšãç¥ããªãããã§ãã ãã®åé¡ã¯æ¢ç¥ã§ããã圌ãã¯ããã«åãçµãã§ãããããã«è§£æ±ºãããããšãé¡ã£ãŠããŸãã
- 圌女ãã©ãã«ããã®ããç§ãã©ãã«ããã®ãããããªãã ãã®ãããAlexaã¯Turn on the lightsã³ãã³ãã«å¿çã§ããŸããã ãå¯å®€ã®æãããã€ããããšèšããããåŸãªãã®ã¯éŠ¬é¹¿ããŠããã
- ã¢ããªã±ãŒã·ã§ã³èªäœã¯html5ã§äœæãããŠãããäœéã§æ²ãã£ãŠããŸãããä¿®æ£ãããŠããŸãã
- è±åœè±èªãã¢ã¡ãªã«è±èªããã€ãèªã®3ã€ã®èšèªããç解ã§ããŸããã ãããã£ãŠããã·ã¢èªã§ã¯ãŸã æããããŠããŸããã
Alexa Skillãäœæããããšãããšãæã倧ããªåä»ãªæ¬ é¥ãçŸããŸããããšãã°ãç§ãã¡ããã£ãã°ããã§ãã Java APIã¯æªå€¢ã§ãããé³å£°ã¢ãã«ãæåã§ããŒãžã«ã³ããŒããå¿ èŠããããŸããããã¯ããã¥ã¡ã³ãã«ãèšèŒãããŠããŸãã ããã«ãããŒãã¹ãã©ããã¯ãããŸãããMavenã¢ãŒãã¿ã€ããLazybonesãã³ãã¬ãŒãããããŸããã
ããŒã«ã«ãã¹ãã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãããŸãããã€ãŸããã³ãŒãã®1è¡ãå€æŽããå Žåãã¹ãã«ãµã€ãã«ç§»åããããã¹ããšãªã¢jsonã®ãã³ãå€æŽããŠãããLambdaã«ç§»åããŠæ°ããjarãããŒãããå¿ èŠããããŸãïŒãŸããLambdaã«RestããããšããŸãããïŒ APIã圌女ã¯éçºè åãã«æžããã®ã§ãããã§ç¶ç¶çã«ãããã€ã§ããŸãã ããããã¹ãã«ãããåŽã§ã¯ãå€æŽãããå Žåã¯ããµãŒããŒã§ã®ã¿ããããã¹ãŠãããŠã³ããŒãããŠãã¹ãããå¿ èŠããããŸãã ããŒã«ã«ã«ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ããããŸãããããã¯ãã¡ãããéåžžã«å€§ããªãã€ãã¹ã§ãã
ãããã«
以äžã§ãã , , Github â jb-toolbox-alexa-skill jenkins-alexa-skill . : , .
,
. , - (, )?
- , Alexa , (, , ).
, . Alexa?
Alexa - , . -. voice recognition, , .
Alexa Google Home?
Google Home Alexa, . â , Google Home . , . Google Home â . Alexa , .
Alexa. ?
â . , . , , â .
. , - (, )?
- , Alexa , (, , ).
, . Alexa?
Alexa - , . -. voice recognition, , .
Alexa Google Home?
Google Home Alexa, . â , Google Home . , . Google Home â . Alexa , .
Alexa. ?
â . , . , , â .
, . Java , , JPoint 2018 :
- : , ( , JetBrains)
- ( , JFrog , Naya Technologies)
- Extreme scaling with Alibaba JDK (Sanhong Li, Alibaba)