調æ»ã®ããã®äž»èŠãªæ¯èŒãã©ãããã©ãŒã ãšããŠã®ãã€ã¯ããœããã®éžæã¯å¶ç¶ã§ã¯ãããŸããã å瀟ã¯ãã€ã³ããªãžã§ã³ããããã®ä¿é²ãšéçºã®åéã§å€ãã®ä»äºãããŠããŸãã ãã®æ¹åã®äž»ãªã¹ãããã®1ã€ã¯ãç¹å®ã®ãã©ãããã©ãŒã ããªãŒãã³ãœãŒã¹ã«çµã³ä»ããããŠããªãç¬èªã®Microsoft Bot Frameworkããããäœæããããã®Build 2016å±ç€ºäŒã§çºè¡šããç¡æã®ãã¬ãŒã ã¯ãŒã¯ãšèããããšãã§ããŸãã
ã¯ããã«
äžè¬ã«ããã£ãããããã¯ããŠãŒã¶ãŒãããã¹ããŸãã¯é³å£°ã䜿çšããŠç解ã§ããèšèªã§ããŠãŒã¶ãŒãšã®ææ矩ãªå¯Ÿè©±ãã·ãã¥ã¬ãŒãã§ããããã°ã©ã ã§ãã ãã®ãããªãã€ã¢ãã°ã®ç®çã¯ãååãšããŠãã³ãã³ããšãŠãŒã¶ãŒèŠæ±ã®ãããã«ããå®è¡ã§ãã åºæ¬çã«æ ¹æ¬çã«æ°ãããã®ã§ã¯ãªãã«ããããããããã£ãããããã¯äœããã®ããŠããŠãšããŠåžå Žã«äœçœ®ä»ããããŠããŸãã ãã®æåŸã®åœ¹å²ã¯ããŠãŒã¶ãŒã«ãšã£ãŠã¹ããŒãã§ãå€ãã®å Žåãããããã®ãªãã¢ã·ã¹ã¿ã³ããªã©ã®ããããäžå¿ã«äœæãããç¹å®ã®æèŠã«ãã£ãŠæããããããã§ã¯ãããŸããã
ãã£ãããããã¯ãã¡ãã»ã³ãžã£ãŒã®ä»ã®ãŠãŒã¶ãŒãšã³ãã¥ãã±ãŒã·ã§ã³ããšã£ãããæ°é®®ãªãžã§ãŒã¯ãã²ãŒã ã楜ããã ãããã®ã«é£œããããŸããã æ°é®®ãªå€©æ°äºå ±ãéä¿¡ããŸãã ãã¶ã®æ³šæãæäŒããŸãã ããªãã®äœéãšè¡å§ã«ã€ããŠã®ã¡ãã»ãŒãžã«å¿ããŠãå¥åº·çãªé£äºã«é¢ããã¢ããã€ã¹ãäžãã ãªãŒã¬ã«ãµãŒãã¹ã®ãŠã§ããµã€ãã§ããªããšã®å¯Ÿè©±ãå·§ã¿ã«è¡ããçã®å¯Ÿè«è ãæš¡å£ããŸã; å¿å°ãã声ã§åœŒãã¯ããªãã®æ°åã«ã€ããŠå°ããçãã®åæã«åºã¥ããŠãã¹ããŒããã©ã³ã§æ¥œæ²ãæŸãããšãã§ããŸã; é»åã¡ãŒã«ã§ãµãŒãã¹ã®ãµããŒãã¹ãã·ã£ãªã¹ãã®åœ¹å²ã«èªä¿¡ãæã£ãŠå¯ŸåŠããã ããã¯ãã€ã³ããªãžã§ã³ãããããå®éã«äœ¿çšããäŸã®ã»ãã®äžéšã§ãã åæ§ã«éèŠãªäŒæ¥ã¿ã¹ã¯ã解決ããäŒæ¥ãããã®å¥ã®ã°ã«ãŒãããããŸãã
ãã¹ãŠã®æ°ãããã¯ãããžãŒãšåæ§ã«ããã£ãããããã¯ããµã€ããã¢ããªã±ãŒã·ã§ã³ãããã·ã¥éç¥ãªã©ããã身è¿ãªéä¿¡æ¹æ³ãšãšã³ããŠãŒã¶ãŒãžã®æ å ±éä¿¡ã®è«ççãªéçºã§ãã åæã«ããã®ãã¯ãããžãŒã¯é åçã§ãããŸã第äžã«ããšã³ããŠãŒã¶ãŒãæçµãã©ãããã©ãŒã ãžã®çµ±åã䜿ãããããã€ã³ããªãžã§ã³ã¹ã䜿ããããã«çŠç¹ãåœãŠãŠããŸãã
倧èŠæš¡ãªITãã¬ãŒã€ãŒïŒäž»ã«ãªã³ã©ã€ã³éä¿¡åžå ŽïŒã¯ããœãªã¥ãŒã·ã§ã³ã§ãã£ãããããã䜿çšããããšã®æœåšçããã³å¯èœãªå©ç¹ãé·ãéè©äŸ¡ããŠããŸããã äœããã®åœ¢ã®ãããã¯ããã¹ãŠã®äžè¬çãªã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒãã€ã³ã¿ãŒããããã©ãããã©ãŒã ãã¢ãã€ã«ããã€ã¹ã§ç©æ¥µçã«äœ¿çšãããŠããŸãã
ãã€ã¯ããœããã¯ãäžåºŠã«è€æ°ã®æ¹åã§äœæ¥ãè¡ã£ããããå芳ããŸããã§ãããã¢ãã€ã«ããã€ã¹Cortanaã®ã¢ã·ã¹ã¿ã³ãã æåããããã§ã¯ãããŸããããTwitterã§ãããã¬ãŒã«ã®Tayã䜿ã£ãå®éšã¯ééããªãèå³æ·±ããã®ã§ãã ãããã¬ãŒã«XiaoiceïŒXiaoisïŒã«ããäžåœã§ã®ããæåããå®éšã Skypeã®ãããã æåŸã«ãããŸããŸãªãã©ãããã©ãŒã çšã®ã«ã¹ã¿ã ããããäœæããã³çµ±åããããã®Microsoft Bot Frameworkã
ã¡ãã£ãšããæŽå²
æåã®ãã£ããããã°ã©ã ã¯ã1964幎ã«ããµãã¥ãŒã»ããå·¥ç§å€§åŠã®ãžã§ã»ããŠã£ãŒã³ããŠã ææã«ãã£ãŠéçºãããELIZAãšèããããŠããŸãã ãã®ããã°ã©ã ã¯ããŠãŒã¶ãŒã®å¿ççæ³å£«ãšã®ããåããæš¡å£ããããšããä»äºã®é©ãã¹ãä¿¡é Œæ§ãšãããã«ã€ããŠè©±ãããã§ããïŒããªã©ã®ãã¬ãŒãºã«ãã£ãŠæ£è ãèœèãããŸãã
ãã®åŸããã®ãããªä»®æ³å¯Ÿè«è ãäœæããããã«ããã«å€ãã®è©Šã¿ãè¡ãããŸãããããããã¯ãã¹ãŠéåžžã«åçŽã§ããã人ã¯èªåãæ©æ¢°ãæ±ã£ãŠããããšãç°¡åã«èªèã§ããŸããã
ããã£ãããããããšããçšèªã®äœ¿çšã¯ãéçºè ã®ãã€ã±ã«ã»ã¢ãŒã«ãã£ã³ã°ã«èµ·å ããŸãããã€ã±ã«ã»ã¢ãŒã«ãã£ã³ã°ã¯ã1994幎ã«ã³ãã¥ãã±ãŒã·ã§ã³çšããã°ã©ã Juliaãéçºãããã£ããããããšåŒã³ãŸããã ãã®ããã°ã©ã ã¯ç°¡åã§ããããããã§ãå€ããå°ãªããææ矩ãªå¯Ÿè©±ãç¶æããããšãã§ããèªå·±åŠç¿ã®æ©èœããµããŒãããŸããã
1990幎代åŸåãã2000幎代åé ã«ãåçŽãªãã£ãããããããIRCãIMããã°ã©ã ãªã©ã§ç©æ¥µçã«äœ¿çšããããŠãŒã¶ãŒã®äŒè©±ã«å€æ§æ§ãå ãããã£ããã«ãŒã ãã¢ãã¬ãŒãããŸããã ãããŠããã¡ãããäžçäžã®AIæ奜家ãç 究è ã¯ããŠãŒã¶ãŒãšã®æ¬æ Œçãªå¯Ÿè©±ãè¡ãããã®çã«ãã¹ããŒããªãããã°ã©ã ãäœæããããšããè©Šã¿ãæŸæ£ããŸããã§ããã
ããããã¹ãŠãšæè¡ã®èªç¶ãªçºå±ã¯ãã€ã³ããªãžã§ã³ããªãã£ãããããã®äœæã«å€§ããªé²æ©ããããããŸããã ãããŸã§ã«ããã¥ãŒãªã³ã°ãã¹ãã«åæ Œãããã£ããããã°ã©ã ãæ¢ã«äœæãããŠããŸãã 2014幎6æ8æ¥ãã€ã®ãªã¹ã®ã¬ãã£ã³ã°å€§åŠãäž»å¬ããã€ãã³ãã§ããµã³ã¯ãããã«ãã«ã¯ã§éçºãããããã°ã©ã ã¯ãå®åšã®äººç©ãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãæš¡å£ããããšã«æåããäžéšã®è©Šéšå®ã誀解ãããŸããã
ãŸããIBM Watsonã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒã«åºã¥ããŠãDeepQAã¯çä¿¡ã³ãã³ããèªç¶èšèªã§åŠçã§ããŸãã ããã«äœ¿çšãããNuance Communicationsãã¯ãããžãŒã¯ãAppleããã®äŒç€Ÿã®ããã€ã¹ã§Siriã¢ã·ã¹ã¿ã³ããå®è¡ããéã«ã䜿çšãããŸãã
ææ°ã®ãã£ãããããã¯ããšãªã¶ãªã©ã®å é§çãªããã°ã©ã ã§ã¯éæã§ããªãé«ãã«éããŸããã 圌ãã¯èªç¶èšèªãšé³å£°ã®åæã®åéã§é«åºŠãªéçºã䜿çšããé«åºŠãªAIã¢ã«ãŽãªãºã ãæã¡ãèªå·±åŠç¿ãå¯èœã§ãã
é©çšåé
ãã£ãããããã¯ãã¡ãã»ã³ãžã£ãŒãWebããŒã¿ã«ãã¹ããŒããã©ã³ãªã©ãã»ãŒãã¹ãŠã®ãã©ãããã©ãŒã ã§äœ¿çšã§ããããã«ãªããŸããã ããã«ããããã¯ãã¹ãŠç¹å®ã®ã·ããªãªã§ããŠãŒã¶ãŒã®ç¹å®ã®ããŒãºã«äœ¿çšãããŸãã
ãã£ãããããã䜿çšããããã®äž»ãªã·ããªãªã«åŸã£ãŠã次ã®åå²ãå®è¡ããã®ãæ £äŸã§ãã
- æè¡ãµããŒã;
- æå®ããããã©ã¡ãŒã¿ãŒã«ããæ€çŽ¢ã
- ã³ã³ãã³ãã®æ¶è²»ãšãšã³ã¿ãŒãã€ã¡ã³ãã
- ã·ã§ããã³ã°ã
æè¡ãµããŒãã å€ãã®ãµãŒãã¹äŒç€Ÿã¯ããã¯ãã«ã«ãµããŒããçµç¹ããããã«ããã€ã¹ãã£ãããããã ãã§ãªããé»åã¡ãŒã«ãä»ããããã¹ãããããé·ãé䜿çšããŠããŸããã åæã«ããããã®äŒæ¥ã®äžéšã®å£°æã«ãããšã圌ãã¯ã¹ã¿ããã«ãã顧客ã®ãã¯ãã«ã«ãµããŒãã«ä»¥åã«è²»ãããè³éã®æ倧40ïŒ ãç¯çŽããããšã«æåããŠããŸãã ãã®å Žåã®ãã£ãããããã®äž»ãªå©ç¹ã¯ãå€éã«äŒæ©ããšãããšãªããåæã«å€æ°ã®ã¯ã©ã€ã¢ã³ããšäœæ¥ã§ããããšã§ãã çæã¯éåžžããã®ãããªãããã®ç¥æ§ã®æ¬ åŠã«ãããŸãã å°é£ãªå Žåããªãã¬ãŒã¿ãŒã¯ã¯ã©ã€ã¢ã³ãã®åé¡ã解決ããããã«æ¥ç¶ããå¿ èŠããããŸãã
æå®ããããã©ã¡ãŒã¿ãŒã§æ€çŽ¢ããŸãã ç§ã®æèŠã§ã¯ãã€ã³ã¿ãŒããããæ€çŽ¢ããããã«ãã£ãããããã䜿çšããããšã¯ãåŸæ¥ã®äœæ¥æ¹æ³ãšæ¯èŒããŠãŸã ååã«äŸ¿å©ã§ã¯ãããŸããã ãã¡ãããã¹ããŒããã©ã³ãã¡ãã»ã³ãžã£ãŒã«çµã¿èŸŒãŸãããããã䜿çšããå Žåãå¥ã®ã¢ããªã±ãŒã·ã§ã³ã«åãæ¿ããŠæ€çŽ¢ãéå§ããå¿ èŠã¯ãããŸããã ããããããªãã¯ãŸã äœããã®åœ¢ã§è³ªåãå®åŒåãããããŠãããããçµæãéæããããã«ãããããã®ããã€ãã®è¿œå ã®è³ªåã«çããå¿ èŠããããŸãã ããã«ãã©ã®æ€çŽ¢ãšã³ãžã³ã§ãããã«æå³ã®ããçµæãåŸãããŸãã Ariel Verberã®èšäºã¯ãã®åé¡ã«åœãŠãããŠãããããããšGoogleæ€çŽ¢ãšã³ãžã³ã䜿çšããæ€çŽ¢ã®äœ¿ãããããæ¯èŒããŠããŸãã
ã³ã³ãã³ãã®æ¶è²»ãšãšã³ã¿ãŒãã€ã¡ã³ãã ãã®é åã¯ãã§ã«ãããã«ãã£ãŠããè¯ãéçºãããŠããŸãããããã§ã¯ãæ€çŽ¢ã®å Žåãšåæ§ã«ãåè¿°ã®åé¡ãçºçããå¯èœæ§ããããŸãã ãã ãããµãã¹ã¯ãªãã·ã§ã³ã³ã³ãã³ããããŠã³ããŒããããããã䜿çšããããšã«ãããç¶æ³ã¯å€§å¹ ã«æ¹åãããŸãã ãã®ã³ã³ãã³ãã¯éåžžããã¥ãŒã¹ãšèšäºã§æ§æãããŠããŸãã åæã«ããããã¯å¿ èŠãªã³ã³ãã³ããé ä¿¡ããã ãã§ãªããç®çã®ãããã¯ãé¢é£æ§ãªã©ã«å¿ããŠãã£ã«ã¿ãªã³ã°ããŸãã ãŸãããããã¯ãŠãŒã¶ãŒã®ããŠã³ããŒãå±¥æŽãåæããã³ã³ãã³ããæšå¥šã§ããŸãã å€ãã®å€§èŠæš¡ãªæ å ±ããŒã¿ã«ããã³ãã¥ãŒã¹ã¢ã°ãªã²ãŒã¿ãŒã¯ãç¬èªã®ããããç©æ¥µçã«äœ¿çšããŠãè³æãžã®ã¢ã¯ã»ã¹ãç°¡çŽ åããŸãã ããããçš®é¡ã®ã¢ã·ã¹ã¿ã³ãããããã²ãŒã ããšã³ã¿ãŒãã€ã¡ã³ããã£ãããããããã®é åã«èµ·å ããŸãã Telegramã¡ãã»ã³ãžã£ãŒã§ããããäœæãããæãäžè¬çãªç®çã®1ã€ãããŒãããŠããããšã¯ç§å¯ã§ã¯ãããŸããã
ã·ã§ããã³ã°ã ããããããã£ãããããã®ã¢ããªã±ãŒã·ã§ã³ã§æãèå³æ·±ãåéã¯ãä»®æ³ã¢ã·ã¹ã¿ã³ããšçŸå®äžçã®ãªããžã§ã¯ãããªã³ã¯ããããšãå¯èœã«ããç¹å®ã®ãŠãŒã¶ãŒã«ããããçŠç¹ãåãããå®éã®ã³ãã¥ãã±ãŒã·ã§ã³ãæš¡å£ããããšã§ãç¹å®ã®æ¹æ³ã§ããããçµã³ä»ããããšã§ãã ããããæ®å¿µãªããšã«ããã®ãŠãŒã¹ã±ãŒã¹ã¯çŸåšæãéçºãããŠããŸããã ããã¯ããããã®ã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠçŽæ¥ååãçŽæ¥æ¯æãããšã¯é »ç¹ã«äžå¯èœã§ããããã®ãããªæäœã«ã¯ãã®ã€ã³ã¿ãŒãã§ãŒã¹ãæ ¹æ¬çã«äžé©åã§ããããšã«ãããã®ã§ãã ç¹å®ã®è£œåãéžæããã«ã¯ããã£ããããããåŒãç¶ã圹ç«ã¡ãŸãã ãããã倧èŠæš¡ãªåæããšè€éãªååŒãªãã·ã§ã³ãæ±ãããšã¯åœŒã®åãè¶ ããŠããŸãã ãã®å Žåãä»®æ³ããããã¬ãŒããŒã®ä»äºã¯æ€çŽ¢ãšã³ãžã³æ©èœã«åž°çããŸãã
ãã£ãããããã®éçºã¯çå®ã«ç¶ç¶ããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ã®æ°ããé åãçºçããå€ãã·ããªãªãæ¹åãããŸãã ããšãã°ãåç±³ã®ãã£ãŒã³ãšã€ãžã£ãŒã®éã§äººæ°ã®ããKikã¡ãã»ã³ãžã£ãŒã䜿çšãããšãã¹ããŒããã©ã³ã§QRã³ãŒããã¹ãã£ã³ããããšã§ãã£ããã«ããããè¿œå ã§ããŸãã ããšãã°ãã«ãã§ã®ä»®æ³ãŠã§ã€ã¿ãŒãšãã£ããããŠãå®éã®åºå¡ã«äŒãåã«æ³šæããããšãã§ããŸãã ãããŠäžåœã§ã¯ãWeChatã¡ãã»ã³ãžã£ãŒã§æ¢ã«æ¯æãæ©èœãå®è£ ããŠããŸããçŸåšãã¢ããªã±ãŒã·ã§ã³ã¯ãã£ããããããå«ããªã³ã©ã€ã³ååŒãç©æ¥µçã«éçºããŠããŸãã
ãã£ãããããåžå Ž
ä»æ¥ããã£ãããããã®äœ¿çšã«ããããªãŒããŒã·ããã¯ãã¡ãã»ã³ãžã£ãŒã«ãã£ãŠèªä¿¡ãæã£ãŠä¿æãããŠããŸãã ãŸããããã¯é©ãã¹ãããšã§ã¯ãããŸããããªããªããã€ã³ã¹ã¿ã³ãã¡ãã»ãŒãžã³ã°çšã®ã¢ããªã±ãŒã·ã§ã³ãšãŠãŒã¶ãŒéã®ã³ã³ãã³ãã¯ãã£ãããããã«æé©ãªå Žæã ããã§ãã ã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒã®ç©æ¥µçãªéçºãããã£ãããããã®ã»ãŒæ®éçãªäœ¿çšã«å ·äœçãªæšé²åãäžããŸããã çŸåšãäžçã25å人ã®ã¡ãã»ã³ãžã£ãŒãå°ãªããšã1ã€äœ¿çšããŠãããšããçµ±èšãåŒçšããŠããŸãã ãããŠãã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒã®éã§äººæ°ã®ãããªãŒããŒã¯ãFacebook MessengerãšWhatsAppã§ãã å°é家ã«ãããšãä»åŸ2ã3幎ã§ãäžçã®äœæ°ã®åæ°ä»¥äžãã¡ãã»ã³ãžã£ãŒã®ãŠãŒã¶ãŒã«ãªãã人æ°ã®ãœãŒã·ã£ã«ãããã¯ãŒã¯ãçµãã§ãããã
ã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒã§ã®ãã£ãããããã®äœ¿çšãæ®åãããã1ã€ã®èŠå ã¯ã倧äŒæ¥ã®ãµããŒãã§ãã ã»ãšãã©ã®äŒæ¥ã¯ãè€éãªã€ã³ã¿ãŒãããããŒã¿ã«ãã¢ããªã±ãŒã·ã§ã³ã®éçºãšæ¯èŒããŠãã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒã§ã®è£œåããµãŒãã¹ã®ããŒãœãã©ã€ãºãããããã¢ãŒã·ã§ã³ã®ããã«ãç¹å¥ãªããããäœæããã³çµ±åã§ããããšããã©ãã»ã©åçæ§ãããããåŸã ã«èªèããŠããŸãã ããã«ãã¢ããªã¹ãã«ãããšãäžçã§ã¯æ°ããã¢ããªã±ãŒã·ã§ã³ã«å¯ŸãããŠãŒã¶ãŒã®é¢å¿ãçå®ã«äœäžããŠããŸãã ã»ãšãã©ã¯ããã¹ãæžã¿ã®ã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒããœãŒã·ã£ã«ãããã¯ãŒã¯ãããã³ããã€ã¹ã«ã€ã³ã¹ããŒã«ãããããã°ã©ã ã®ã»ããã䜿çšããããšã«æ £ããŠããŸãã
ãã£ãããããã¯ãæ°ããèŠèŽè ãæ¹ãã€ããŠãµãŒãã¹ãå¹æçã«ä¿é²ããããã«ãäžè¬ãŠãŒã¶ãŒãšãšã³ã¿ãŒãã€ã³ã¡ã³ãã®å·šäººã®äž¡æ¹ã«ãã£ãŠäœæãããŠããŸãã ãã®æ¹åã¯ãã§ã«ããªãæ®åããŠããŸãã ã€ã³ã¿ãŒãããã§ã¯ãããããæ¹åãšè€éãã®ãã£ããããããäœæããã³å®£äŒããããã®å æ¬çãªã¬ã€ãã©ã€ã³ãèŠã€ããããšãã§ããŸãã ãã®ãããã¯ã«é¢ããåªããèšäºã®äŸ ã
ã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒã«ãã£ããããããå°å ¥ããåãã®å é§è ã®1人ã¯ãTelegramã§ããã 2015幎6æãPavel Durovã®äŒç€Ÿã¯ãããAPIãã©ãããã©ãŒã ãæåã«ç«ã¡äžããäŒæ¥ã®1ã€ã§ãããããããããŠã³ããŒãããããã®ã¹ãã¢ã§ããããŸããã çŸåšãTelegramã¡ãã»ã³ãžã£ãŒã«ã¯ãçŽ10äžã®æãå€æ§ãªãããããããŸãã Telegram Bot API 2.0ããããèªå·±äœæããããã®APIã®æ¹è¯çãæ¢ã«å©çšå¯èœã§ãã PHPãPythonãJavaãCïŒãRubyãªã©ãã»ãŒãã¹ãŠã®ããã°ã©ãã³ã°èšèªã䜿çšããŠããããäœæã§ããŸãã ãã®å Žåãããã°ã©ãã³ã°ã¹ãã«ãªãã§ãTelegramçšã®ç¬èªã®ããããäœæã§ããŸãã @BotFatherãµãŒãã¹ã¢ã«ãŠã³ãã䜿çšããŠæ°ããããããç»é²ããäžæã®IDãååŸããã ãã§ååã§ãããã®åŸã@ Paquebotã¢ã«ãŠã³ããä»ããŠããããã@Paquebotã«ãªã³ã¯ããæ°ãããããã®ãã¹ãŠã®ãµãã¹ã¯ã©ã€ããŒãžã®ã¡ãã»ãŒãžéä¿¡ãéå§ã§ããŸãã
ä»ã®ã¡ãã»ã³ãžã£ãŒãããã»ã©é ããŠããŸããã Facebookã¯ã2015幎3æã«ã¡ãã»ã³ãžã£ãŒã§ããããäœæããããã®ãã©ãããã©ãŒã ãçºè¡šããŸããã ããããäœæããæ©äŒã¯ã Messenger PlatformãµãŒãã¹ã®äžéšã«ãªããŸãããããã«ãããFacebookãã£ãããä»ã®ã¢ããªã±ãŒã·ã§ã³ã«çµ±åã§ããŸãã 'ã¡ãã»ãŒãžãéåä¿¡ããããã®APIã¯ååã§ãã ããããããè€éãªããããäœæããå Žåã¯ãããããšã³ãžã³ã䜿çšããŠãã ããããšãFacebookã®å¯ç€Ÿé·ã§ããããããããŒã«ã¹ã¯è¿°ã¹ãŠããŸãã åè¿°ã®ããã«ãããããšã³ãžã³ã䜿çšãããšãç¶æ³ã«å¿ããŠç°ãªãæ¹æ³ã§ãããããæãããããšãã§ããŸãã 競åä»ç€Ÿãšã¯ç°ãªããFacebookã¯ãã§ã«ãŠãŒã¶ãŒãéåžžã®ããã¹ãã§ã¯ãªããç»åããªã³ã¯ããã¿ã³ããã®ä»ã®ããåããå¯èœãªèŠçŽ ãå«ãã€ã³ã¿ã©ã¯ãã£ããªãã«ãŒãããéä¿¡ããããšãèš±å¯ããŠããŸãã ãããããšã®ããåãã«ããããŠãŒã¶ãŒã¯ã¬ã¹ãã©ã³ã®ããŒãã«ãããã«äºçŽããããååã®ã«ã¿ãã°ãããããªãããã€ã§ã奜ããªååãè³Œå ¥ãããã§ããŸãã
ãã£ããããããäœæããããã®ç¬èªã®ãµãŒãã¹ã®éçºãã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒããã³ä»ã®ãã©ãããã©ãŒã ãžã®ãããã®å°å ¥ã¯ãé·å¹Žã«ããã£ãŠåãªãè¯ã圢ã§ã¯ãªããäžå¯æ¬ ãªãã®ã«ãªã£ãŠããŸãã äžçäžã®å€ãã®ãµãŒãã¹ãããããã䜿çšãããšããã¢ã€ãã¢ãç©æ¥µçã«æšé²ããŠããŸãã æ€çŽ¢ãšã³ãžã³ïŒã¢ã¡ãªã«ã®Googleãšãã·ã¢ã®Yandexã ã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒïŒäžåœã®WeChatãæ¥æ¬ç·ãéåœã®ã«ã«ãªããŒã¯ãã«ããã®Kikãªã©
ã¹ããŒããã©ã³ã®ã¡ãŒã«ãŒãããã£ãšåº§ã£ãŠããŸããã§ããã Appleã®é³å£°ã¢ã·ã¹ã¿ã³ãSiriãšMicrosoftã®Cortanaã¯ãé³å£°ã€ã³ã¿ãŒãã§ã€ã¹ãç©æ¥µçã«äœ¿çšããŠãŠãŒã¶ãŒã®èŠæ±ãæºãããŸãã ã¢ã¡ãªã«ã®ã¢ããŸã³ã«ã¯é³å£°ã¢ã·ã¹ã¿ã³ãããããŸãã
å°é家ã«ãããšãè¿ãå°æ¥ããã£ãããããã®æ¢åã®ãã©ãããã©ãŒã ãžã®ãããªãçµ±åãšããã®åéã®åçåã®å¢å ãæåŸ ãããŠããŸãã
ãã€ã¯ããœããã®è²¢ç®
2016幎3æãMicrosoftã®å°é家ã¯ãTayïŒ@TayandYOuïŒãšããååã®ãã£ããããããTwitterã«æçš¿ããŸããã Thayã¯ãKikã¡ãã»ã³ãžã£ãŒãŸãã¯GroupMeãœãŒã·ã£ã«ãããã¯ãŒã¯ã®é£çµ¡å ãªã¹ãã«è¿œå ããããšãã§ããŸãã åœåãéçºè ã¯ããã°ã©ã ãšéä¿¡ãããœãŒã·ã£ã«ãããã¯ãŒã¯ããã®å¿åã®æ å ±ã®å€§èŠæš¡ãªé åã§ããã°ã©ã ãæããŸããã å°äººæ°ã®ã°ã«ãŒãããã¬ãŒãã³ã°ã«åå ããŸããã èè ã«ãããšãçããŠåªãã10代ã®å°å¥³ã®ãµããŸããæš¡å£ããThayã¯ãå ¬éãããåŸããŠãŒã¶ãŒããåŠã³ãªããç¬åŠãç¶ããããšã«ãªã£ãŠããã ãã®ããããŠãŒã¶ãŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãå§ãŸã£ãŠããããã1æ¥è¶³ããã§ãThayã¯ããã¹ãåãŠãã€äž»çŸ©ããããŠäžå¹žãªäººéã«ãªããŸããã ããã°ã©ã ã¯ããããæãããããã¹ãŠãæåè£ã«åŠã³ãŸããã æ®å¿µãªãããèè ã¯ããã°ã©ã ã«åãšæªãåºå¥ããèœåãå ¥ããããšãã§ããŸããã§ããã ãã°ããã®éãMicrosoftã¯ããã€ãã®ç¹ã«äžå¿«ãªçºèšãç·šéããããšã«ãããThayã®è¡åãå¶åŸ¡ããããšããŸããã ãããããã«ãå®éšã¯å®äºãããšå®£èšãããThayã¯åæãããŸããã ãã ãããã®ã€ãã³ãäžããã€ã¯ããœããã¯åªããåºåãæäŸããAIãšãã£ãããããã®äœ¿çšã«å¯Ÿããé¢å¿ãå€§å¹ ã«é«ããŸããã
ãã€ã¯ããœãããé¢äžããå¥ã®åæ§ã®å®éšã¯ãããæåããŸããã äžåœã®ãã€ãã¿ãŒïŒWeiboïŒã®é¡äŒŒçã§ã¯ãXiaoiceãšåŒã°ããèšèªããããçºå£²ãããŸããã ãããã¯ã17æ³ã®10代ã®å°å¥³ã®è¡åãæš¡å£ããæå³ã®ãã察話ãç¶æããåæ ãè¡šæããéåžžã®äººã®ããã«éåžžã«äºæž¬äžå¯èœãªåäœãããããšããããããŸãã ã©ããããXiaoisã«åãçµãã§ãããšããèè ã¯Thayã«å¯Ÿãã以åã®åŠå®çãªçµéšãèæ ®ã«å ¥ããŠããŸããã äœçŸäžäººãã®äžåœã®å代ã®è¥è ãã¡ã¯ã·ã£ãªã€ãšãäœæéãéãããã·ã£ãªã€ããææã§æãããã®ããå°å¥³ããšåŒãã§ããŸãã
3æ30æ¥ã Build 2016å±ç€ºäŒã§ãMicrosoftã¯ãSkypeãSlackãFacebook MessengerãKikãOffice 365ã¡ãŒã«ããã®ä»ã®äžè¬çãªãµãŒãã¹çšã®ããã¹ãããªãŒãã£ãªããããªããããäœæããMicrosoft Bot Frameworkãçºè¡šããŸããã ãã©ãããã©ãŒã ã¯ã3ã€ã®äž»èŠéšåã§æ§æãããŠããŸãã
- ããããã«ããŒSDKïŒãã£ããããããäœæããã³ãã¹ãããããã®äžé£ã®ãªãŒãã³ãœãŒã¹ããŒã«ïŒNode.jsã.NETããŸãã¯RESTãéçºã«äœ¿çšã§ããŸãïŒã
- ããããã¬ãŒã ã¯ãŒã¯éçºè ããŒã¿ã«ïŒãããã®ç»é²ã人æ°ãã£ã³ãã«ãžã®æ¥ç¶ããã¥ãŒãã³ã°ãšãã¹ããå ¬éã®ããã®ãµãŒãã¹ã
- ããããã£ã¬ã¯ããªïŒããããã¬ãŒã ã¯ãŒã¯ã䜿çšããŠäœæãããéçºè ããŒã¿ã«ã«ç»é²ããããããã®ã«ã¿ãã°ããããã®ããŠã³ããŒããšç¢ºèªããšã¯ã¹ããªãšã³ã¹ã®å ±æã®ããã«èšèšãããŠããŸãã
ããããã¬ãŒã ã¯ãŒã¯ã®äž»ãªå©ç¹ã«ã¯ãç¹å®ã®ãã©ãããã©ãŒã ãžã®ãã€ã³ãã®æ¬ åŠããªãŒãã³ãœãŒã¹SDKã®å¯çšæ§ããããã®é«åºŠãªãããã°ããã³ãã¹ãããŒã«ããã«ãã€ã³éä¿¡ããã³Webã¢ããªã±ãŒã·ã§ã³ã®ç®¡çã30以äžã®èšèªãžã®èªå翻蚳ã®ãµããŒããããã³ã³ãã¥ããã£ã®ååšãå«ãŸããŸãã åæã«ãMicrosoft Bot Frameworkã¯ç©æ¥µçã«éçºãç¶ããŠããŸãã
ãŸããBuild 2016å±ç€ºäŒã§ã¯ãWindowsãAndroidãiPhoneãiPadã®ãããããµããŒãããSkypeã®æ°ããããŒãžã§ã³ã®ãªãªãŒã¹ãããã³Skype Botãã©ãããã©ãŒã ã®SDKãšAPIã®ãªãŒãã³ãçºè¡šãããŸããã SkypeãSlackããŸãã¯Telegramã®é£çµ¡å ãªã¹ãã«ããããè¿œå ããã«ã¯ã ããããã£ã¬ã¯ããªã䜿çšã§ããŸãã iOSããã³Androidçšã®æ°ããããŒãžã§ã³ã®Skypeã§ã¯ããããã®æ€çŽ¢ã¯ã¢ããªã±ãŒã·ã§ã³ã«çŽæ¥å®è£ ãããŸãã
Microsoftã¯ãããã»ã©é ããªãå°æ¥ã«ãé³å£°é話ãŸãã¯ãããªé話ïŒSkype Video BotsïŒãä»ããŠèªç¶èšèªã§ãã£ããããããšãã£ããã§ããããã«ãªããšè¿°ã¹ãŠããŸãã åæã«ããã£ãããããã¯é«åºŠãªAIãåããäžçš®ã®3Dã¢ãã«ã«ãªããŸãã ãã€ã¯ããœããã¯ããããã䜿çšããŠãªãã¿ã®ãããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãèªååããé³å£°å¶åŸ¡ã䜿çšãããšãã³ãã¥ãã±ãŒã·ã§ã³ãã²ãŒã ãã·ã§ããã³ã°ãªã©ã®éåžžã®æ¹æ³ãå€ãããšç¢ºä¿¡ããŠããŸãã
è»èã§é£ã¶
ãããããã£ãããããã¯æ¬åœã«ããã«åžå Žããéåžžã®ã¢ããªã±ãŒã·ã§ã³ãæ€çŽ¢ãšã³ãžã³ã人äºã³ã³ãµã«ã¿ã³ããè¿œãåºãããšãã§ããã»ã©å€§ããªæœåšèœåãæã£ãŠããã®ã§ããããïŒ åœŒãã¯æéã®çµéãšãšãã«è¿·æãªããããã¯å±éºãªèŠå ã«ãªããŸããïŒ ãã®åé¡ã«ã€ããŠã¯éåžžã«ç°ãªãæèŠããããŸãã
ãããã®æèŠã®1ã€ïŒãã£ãããããã¯ãåãªãæ°ãããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã¡ã«ããºã ã«ãããŸããã ããã¯ãã§ãŒã³ã®è«ççãªå±éã§ãïŒãµã€ã-ã¢ããªã±ãŒã·ã§ã³-ãã£ãããããã ããã«ããã®çžäºäœçšã§ã¯ãåè¿°ã®ããã«ãé«åºŠãªAIã¯å®å šã«ãªãã·ã§ã³ã§ãã ãããã«ã¯ãããèãæãããã³ãã³ãã·ã¹ãã ãå¿ èŠã§ãã åæã«ããããã®æçšæ§ã¯çãã®äœå°ã¯ãããŸããã
ãã1ã€ã®èŠ³ç¹ã¯ãå®éã«ã¯ããããæ å ±ãååŸããããã®ç¹å¥ãªæ¹æ³ã§ãããšããããšã§ãã çŸæç¹ã§ååšãããã®ã¯ãã¹ãŠãã§ã«ååã§ãã ãããŠãApp Storeãããæ°ã«å ¥ãã®éèªã®æ°ããå·ãŸãã¯æ°ããã¢ããªã±ãŒã·ã§ã³ãããŠã³ããŒãããããã«ãã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒãèµ·åããç®çã®ãã£ããããããæ¢ãã圌ãšè©±ããéäžã§2ã3ã®äž»èŠãªè³ªåã«çããŠãããå¿ èŠãªè³ªåãååŸããã ãã§ãã æ¢åã®ã¢ããªã±ãŒã·ã§ã³ã¯æ¶ããŠããŸããããããã¯ãŸã æå ã«ããã䟿å©ã§ãã ãããŠãéä¿¡ã®ããã»ã¹ã«çŽæ¥ç©æ¥µçã«é¢äžããŠãããã£ãããããã®ã¿ãæçšã§ãïŒç¿»èš³è ããšãã¹ãã©ãã¢ããªã¹ããªã©ã
çŸåšã§ãã補åãå¹æçã«å®£äŒã§ãããã£ããããããäœæããããšã¯ã§ããŸããã 圌ããã§ã«éžæãããã®ãã€ãŸãè³Œå ¥ãè¡ãå¿ èŠæ§ã人ã«çŽåŸãããããã«ã人ã«æäŸããªãã§ãã ããã ãã¡ãããã¹ããŒããã£ããããã°ã©ã ãäœæããããã«å®æœãããŠããå®éšã¯å°è±¡çã§ãã ãããã圌ãã«ã¯ãŸã å€ãã®éçºãå¿ èŠã§ãã ææ°ã®ãã£ããããããšATMãæ¯èŒããå Žåã®äŸã¯èå³æ·±ããããããŸããã ã¯ããATMã¯ã«ãŒãã³ã¢ã¯ã·ã§ã³ãããéãããšã©ãŒãæžãããŠå®è¡ãããŠãŒã¶ãŒãšå¯Ÿè©±ããŸãã ããããATMã¯ãŠãŒã¶ãŒã«ããŒã³ãåŒãä»ãããã説åŸããããšã¯ã§ããŸããã
ãã®ç¶æ ã§ã¯ãäž»ã«ãããã®äž»ãªçæ¯å°ã§ããã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒã®ã¡ãŒã«ãŒãšå€§èŠæš¡ãã©ãããã©ãŒã ã®ææè ãããã£ãããããã®äžå¯æ¬ æ§ãå©äŸ¿æ§ãç¹ã«ã€ã³ããªãžã§ã³ã¹ã®åé¡ãéåžžã«éç±ããç¶æããŠãããšæèšã§ããŸãã å€ãã®å Žåã倧èŠæš¡ãªãã©ãããã©ãŒã ã®ææè ã®ã¿ããé«åºŠãªAIãšå¹ åºãæ©èœãçµã¿åãããçã«ã€ã³ããªãžã§ã³ããªãã£ããããããäœæããäœè£ããããŸãã
ããã§ãããŸããŸãªãµãŒãã¹ã䜿çšããŠããããäœæã§ããŸãã ã¡ãã»ã³ãžã£ãŒãã©ãããã©ãŒã ã§æäŸãããç¹å¥ãªãµãŒãã¹ã䜿çšããŠããœãŒã¹ã³ãŒãã1è¡ãæžãããšãªãããããäœæã§ããŸãã Chatfuelãªã©ã®ãµãŒãããŒãã£ãµãŒãã¹ã䜿çšã§ããŸãã Microsoft Bot Frameworkãªã©ã®ç¡æã®éçºããŒã«ãå©çšå¯èœã§ãã æåŸã«ã GupshupãµãŒãã¹ãéããŠããããäœæããããã®ããŒã«ãè³Œå ¥ã§ããŸãã ãããããããã¯ã䜿ãæ £ãããŠãŒã¶ãŒã¢ããªã±ãŒã·ã§ã³ãšå®å šã«ç«¶åããã®ã«ååãªã»ã©ã€ã³ããªãžã§ã³ãã§ãã ããªãã®ãã£ãããããã¯ããªãã®ç°å¢ã«å¿ èŠäžå¯æ¬ ã«ãªãã®ã«ååé©åããŸããïŒ ãŸãã¯ãè¯ããæ£çŽãªãšããååãªå調ãªä»®æ³ã¢ã·ã¹ã¿ã³ãã®å€§èŠæš¡ãªã³ããŒããè£å ããŸããïŒ
ããããããã£ãããããæ¥çã¯ãæéã®çµéãšãšãã«ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¿ãŒãããã¢ããªã±ãŒã·ã§ã³ãšåãããšãæåŸ ããã§ãããã æãæ±ããããŠãããã¹ããŒããã§å¿«é©ãªãã£ãããããã¯ãç¹å®ã®çæ¯å°ã«å¯èœãªéãåãŸããŸãã
ãããã«
æåã®ã¢ã€ãã¢ã¯ããã®èšäºã®æåŸã§ãPVS-Studioéçã¢ãã©ã€ã¶ãŒã䜿çšã㊠Microsoft Bot BuilderïŒ GitHubã§å ¥æå¯èœïŒã®ãœãŒã¹ã³ãŒãã®ãšã©ãŒãèŠã€ããããšã«ã€ããŠèª¬æããããšã§ããã ãã ããBot Builderãã©ãããã©ãŒã ã«ã¯ãæ€èšŒã«äœ¿çšå¯èœãªCïŒã³ãŒãã5äžè¡ããå«ãŸããŠããŸããïŒæ®ãã®ãœãŒã¹ã³ãŒãã¯Node.jsãšRESTã䜿çšããŠéçºãããŸããïŒã ããã«ãã³ãŒãã¯éåžžã«é«å質ã§ããããšãå€æããŸããããããã¯ãã€ã¯ããœããã«ãšã£ãŠé©ãã¹ãããšã§ã¯ãããŸããã ããããã«ããŒãœãªã¥ãŒã·ã§ã³ã®æ€èšŒäžããšã©ãŒã¯ã»ãšãã©æ€åºãããŸããã§ãããã2ã€ã¯æãéèŠã§ã¯ãããŸããããçãããæ§é ã«æ³šæããå¿ èŠããããŸãã ããã ãã§ã¯ãéåžžã®ããã«ããããžã§ã¯ãã®æ€èšŒã«é¢ããæ¬æ Œçãªèšäºãæžãã®ã«ååã§ã¯ãããŸããã§ããã ããã¯èµ·ãããŸãã ããã«ãããããããBot Builderãã©ãããã©ãŒã ã¯ç©æ¥µçã«éçºãããŠãããä»åŸããã®ãã©ãããã©ãŒã ã®ã³ãŒãã§ããèå³æ·±ããšã©ãŒãèŠã€ããŠèªè ã«äŒããããšãæåŸ ããŠãå®éšãç¹°ãè¿ããŸãã 次ã«ãäŸãšããŠãæ°ã¥ããæ¬ é¥ã®èª¬æãããŸãã äž¡æ¹ã®ãšã©ãŒã¯ããã«ãªã³ã¯ã«ããæœåšçãªã¢ã¯ã»ã¹ã«é¢é£ããŠããŸãã
PVS-Studioã¢ãã©ã€ã¶ãŒã®èŠå ïŒ V3019 ãasãããŒã¯ãŒãã䜿çšããåå€æåŸã«ããããã誀ã£ãå€æ°ãnullãšæ¯èŒãããŸãã å€æ°ãstepãããpropãã確èªããŠãã ããã FieldReflector.cs 231
ã¢ãã©ã€ã¶ãŒã¯ããã£ã¹ãæŒç®åã®äœ¿çšã«é¢é£ããçãããæ§é ã次ã®ããã«æ€åºããŸããã
protected Type StepType(object step) { var field = step as FieldInfo; var prop = step as PropertyInfo; return (step == null ? null : (field == null ? prop.PropertyType : // <= field.FieldType)); }
æå®ãããã³ãŒããã©ã°ã¡ã³ãã¯ã ã¹ãããå€æ°ãFieldInfoãŸãã¯PropertyInfoã¿ã€ãã«ãªããŸã§æ£ããåäœããŸãã ãã以å€ã®å Žåãå€æ°propã«è¿œå ã®nullãã§ãã¯ããªããããnullåç §ã«ããã¢ã¯ã»ã¹ãå¯èœã§ãã
PVS-Studioã¢ãã©ã€ã¶ãŒã®èŠå ïŒ V3105 ãpartsãå€æ°ã¯ãnullæ¡ä»¶æŒç®åã䜿çšããŠå²ãåœãŠãããåŸã«äœ¿çšãããŸããã NullReferenceExceptionã¯å¯èœã§ãã JwtTokenExtractor.cs 60
次ã®ã³ãŒãã¹ããããã§ã¯ãèè ã¯authorizationHeaderå€æ°ãnullã«ã§ãããšæ³å®ããŠããŸã ã ãã®å Žåã ããŒãå€æ°ãnullã«åæåãããŸã ã ãã ããå°æ¥çã«ãé©åãªæ€èšŒãªãã§partså€æ°ã䜿çšããã NullReferenceExceptionãã¹ããŒãããå¯èœæ§ããããŸãã
public async Task<ClaimsIdentity> GetIdentityAsync(string authorizationHeader) { .... string[] parts = authorizationHeader?.Split(' '); if (parts.Length == 2) // <= return await GetIdentityAsync(parts[0], parts[1]). ConfigureAwait(false); .... }
ãã®èšèšã®æ£ããããŒãžã§ã³ã¯æ¬¡ã®ãšããã§ãã
public async Task<ClaimsIdentity> GetIdentityAsync(string authorizationHeader) { .... string[] parts = authorizationHeader?.Split(' '); if (parts != null && parts.Length == 2) return await GetIdentityAsync(parts[0], parts[1]). ConfigureAwait(false); .... }
çµè«ãšããŠããã£ãããããã®äœæãšããã¢ãŒã·ã§ã³ã®ãããã¯ã¯éåžžã«èå³æ·±ãããšã«æ³šç®ããããšæããŸãã ãã®æ¹åã¯çºå±ããå°æ¥çã«ã¯ãã£ããããããšAIã®äœ¿çšã«é¢é£ããæ°ããèå³æ·±ãå®éšãåŸ ã£ãŠããŸãã
ç¬èªã®ãã£ããããããäœæãã PVS-Studioéçã¢ãã©ã€ã¶ãŒã䜿çšããŠãœãŒã¹ã³ãŒãã®ãšã©ãŒã確èªããŸãã
ãã®èšäºãè±èªåã®èŽè¡ãšå ±æãããå Žåã¯ã翻蚳ãžã®ãªã³ã¯ã䜿çšããŠãã ããïŒSergey Khrenovã ãã£ããããããããã³ãã€ã¯ããœããã¯ãããã©ã®ããã«æ¯æŽããŸããïŒ ã
èšäºãèªãã§è³ªåããããŸããïŒ
å€ãã®å Žåãèšäºã«ã¯åã質åãå¯ããããŸãã ããã§åçãéããŸããïŒ PVS-StudioããŒãžã§ã³2015ã«é¢ããèšäºã®èªè
ããã®è³ªåãžã®åç ã ãªã¹ããã芧ãã ããã