LangChainå°å ¥ã®å€±æãšèª²é¡ããã5
ã©ã³ã°ãã§ãŒã³èšèªã¢ãã«ãå©çšããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®äººæ°ã®ãã¬ãŒã ã¯ãŒã¯ã§ãããèšèªã¢ãã«ãã¯ãAIã³ãã¥ããã£ã§å€§ããªæ¯æãéããŠãããè€éãªèªç¶èšèªåŠçã·ã¹ãã ã®äœæãç°¡çŽ åãããšãããã®çŽæã¯ãéçºè ãäŒæ¥ãé äºããŠããŸããããããã©ããªæ°ããæè¡ã§ãããã§ããããã«ãLangChainã®æåããå®è£ ãšäœ¿çšã劚ãããããããééãã課é¡ããããŸãã
ãã®ããã°ã§ã¯ãLangChainã®å€±æãšèª²é¡ã®ããã5ã玹ä»ãããããã®èœãšã穎ãåé¿ãããã®åŒ·åãªãã¬ãŒã ã¯ãŒã¯ãæå€§éã«æŽ»çšããããã®ãã³ããæäŸããŸãã
- ééã#1ïŒã¢ãŒããã¯ãã£ãè€éã«ãããã
- ééã#2ïŒææžãäŸã軜èŠããŠãã
- ééã#3ïŒççŸãé ããè¡åãèŠéãã
- ééã#4ïŒçµ±åã®èª²é¡ãéå°è©äŸ¡ãã
- ééã#5ïŒããã©ãŒãã³ã¹ãšä¿¡é Œæ§ã®èæ ®ãç¡èŠãã
- ã¹ãã AIã§LangChainã®ãã¹ãšèª²é¡ãå æãã
ééã#1ïŒã¢ãŒããã¯ãã£ãè€éã«ãããã
LangChainã䜿çšããéã«ããããééãã®äžã€ã¯ãã¢ãŒããã¯ãã£ãè€éã«ããããããšã§ããLangChainã®ãã¶ã€ã³ã¯ãæœè±¡åãããåºç€ã®äžã«æ§ç¯ãããŠããŸãã ãã§ãŒã³, 代çåºãããŠ å·¥å · ã€ã³ã¿ãã§ãŒã¹ã®æœè±¡åã§ããããããã®æœè±¡åã¯ãæè»æ§ãšåå©çšæ§ãæäŸããããšãç®çãšããŠããããé©åã«äœ¿çšããªããã°äžå¿ èŠãªè€éãã«ã€ãªããå¯èœæ§ãããã
äŸãã°ãLangChainã®ã¯ã©ã¹éå±€ã¯éåžžã«æ·±ããè€æ°ã¬ãã«ã®ç¶æ¿ãå¯èœã§ããäŸãã°Agentã®ã¯ã©ã¹éå±€ã«ã¯ 代çåº, ãšãŒãžã§ã³ããšã°ãŒãã¥ãŒã¿ãŒ, ãŒãã·ã§ããã»ãšãŒãžã§ã³ããã㊠äŒè©±ãšãŒãžã§ã³ããªã©ãããããã®æœè±¡åã¬ãã«ã§ã¯ãéçºè ããšãŒãžã§ã³ããé©åã«åæåããæ¹æ³ããã«ã¹ã¿ãã€ãºã®ããã«ã©ã®ã¡ãœããããªãŒããŒã©ã€ããã¹ãããçè§£ããããšãé£ãããªããŸãã
ãŸãããã§ãŒã³ããšãŒãžã§ã³ãã®ã©ã€ããµã€ã¯ã«ã«ããã¯ããããã®Callbackã€ã³ã¿ãŒãã§ãŒã¹ã®äœ¿çšããè€éã«ãªããããå¯èœæ§ã®ããäŸã§ããããã¥ã¡ã³ãã§ã¯ã以äžã®ãããªæ§ã ãªã³ãŒã«ããã¯ã¡ãœããã«ã€ããŠæç¢ºã«èª¬æãããŠããŸããã ãªã³ã»ãã§ãŒã³ã»ã¹ã¿ãŒã, ãªã³ããŒã«ã¹ã¿ãŒãã㊠on_agent_actionãããŠãããããã€åŒã³åºãããã®ãããã®ãããªæç¢ºæ§ã®æ¬ åŠã¯ãã«ã¹ã¿ã ã®ãã®ã³ã°ãã¢ãã¿ãªã³ã°ãç¶æ 管çãå®è£ ããéã®æ··ä¹±ãå°é£ã«ã€ãªããå¯èœæ§ãããã
è€éãããã¢ãŒããã¯ãã£ã®åœ±é¿ã¯å€§ãããéçºè ã¯ãèªåãã¡ã®ç¹å®ã®ããŒãºã«åãããŠãã¬ãŒã ã¯ãŒã¯ã倿Žããæ¹æ³ãçè§£ããã®ã«èŠåŽãããããã«ã¹ã¿ãã€ãºã®åªåã劚ããå¯èœæ§ããããæœè±¡åãããè€æ°ã®ã¬ã€ã€ãŒãéããŠåé¡ããã¬ãŒã¹ããã®ã¯æéããããããã©ã¹ãã¬ãŒã·ã§ã³ãããŸãããããããã°ã¯ããå°é£ã«ãªããããã«ãè€éãªã³ãŒãã¯çè§£ãã«ãããæŽæ°ãã«ãããæéã®çµéãšãšãã«æ¡åŒµãã«ãããªããããä¿å®æ§ãæãªãããã

ééã#2ïŒææžãäŸã軜èŠããŠãã
LangChainã䜿ããšãã«ããããããäžã€ã®ééãã¯ãæç¢ºã§å æ¬çãªããã¥ã¡ã³ãã®éèŠæ§ã軜èŠããããšã§ããLangChainã®ããã¥ã¡ã³ãã¯å å®ããŠããŸãããéçºè ããã¬ãŒã ã¯ãŒã¯ã®æ©èœãšãã¹ããã©ã¯ãã£ã¹ãå®å šã«ææ¡ããããã«å¿ èŠãªæç¢ºããšæ·±ãã«æ¬ ããŠããããšããããããŸãã
LangChainã®ããã¥ã¡ã³ãã®æ¬ ç¹ã¯ãäž»èŠãªæŠå¿µãããã©ã«ããã©ã¡ãŒã¿ãæ§ã ãªã³ã³ããŒãã³ãã®æåŸ ãããå ¥åºåã«ã€ããŠè©³çްãªèª¬æããªãããšã§ããéçºè ã¯ãã°ãã°ãããæ©èœã®å¹æçãªäœ¿ãæ¹ãçè§£ããããã«ããœãŒã¹ã³ãŒããæ¢ãåã£ããã詊è¡é¯èª€ã«é Œã£ããããããšã«ãªããŸãã
ããã«ãããã¥ã¡ã³ãã§æäŸãããŠãã䜿çšäŸã¯ãåçŽãããããšãå€ããå®éã®ãŠãŒã¹ã±ãŒã¹ã玹ä»ã§ããŠããªãããã®ãããªäŸã¯ããŠãŒã¶ãŒã䜿ãå§ããæå©ãã«ã¯ãªãããå®çšçãªã¢ããªã±ãŒã·ã§ã³ã§ééããè€éãããã¥ã¢ã³ã¹ã®éãã«å¯ŸããæºåãšããŠã¯äžååã ã
ããã¥ã¡ã³ãããµã³ãã«ã軜èŠããçµæã¯é倧ã§ããLangChainãåããŠäœ¿ãéçºè ã¯ããã¬ãŒã ã¯ãŒã¯ã®å¹æçãªäœ¿ãæ¹ãçè§£ããã®ã«èŠåŽãããã©ã¹ãã¬ãŒã·ã§ã³ãšæéã®æµªè²»ã«ã€ãªãããŸããçµéšè±å¯ãªãŠãŒã¶ã§ãããããæç¢ºãªããã¥ã¡ã³ããããã°ç°¡åã«å¯ŸåŠã§ããã¯ãã®ç¹å®ã®æ©èœã®å®è£ æ¹æ³ãåé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã«èšå€§ãªæéãè²»ããããšã«ãªããŸãã
倿§ãªå®äŸããªããã°ãéçºè ã¯LangChainãããžã§ã¯ããåäžããã貎éãªæŽå¯ããã¹ããã©ã¯ãã£ã¹ãéããŠããŸããããããŸãããæ¢åã®ãã¿ãŒã³ãã¢ãããŒãã«æ°ã¥ããªãã£ãã°ããã«ããã£ããè»èŒªã®åçºæãããããæé©ãšã¯èšããªãèšèšäžã®æ±ºæãããŠããŸããããããŸããã
ééã#3ïŒççŸãé ããè¡åãèŠéãã
LangChainã䜿ããšãã«éçºè ãç¯ããã¡ãª3ã€ç®ã®ééãã¯ããã¬ãŒã ã¯ãŒã¯å ã®ççŸãé ããåäœãèŠèœãšããŠããŸãããšã§ããLangChainã®ã³ã³ããŒãã³ãã¯æã«ãæç¢ºã«ææžåãããŠããªãäºæãã¬åäœãäžè²«æ§ã®ãªãåäœãããããšããããæ··ä¹±ãæœåšçãªãã°ãåŒãèµ·ãããŸãã
äŸãã° äŒè©±ãããã¡ã¡ã¢ãª ã³ã³ããŒãã³ãã䜿çšãããã©ããã«ãã£ãŠç°ãªãå Žåãããã ã«ã³ãã»ãŒã·ã§ã³ãã§ãŒã³ ãŸã㯠ãšãŒãžã§ã³ããšã°ãŒãã¥ãŒã¿ãŒ.ConversationChainã®å ŽåãConversationBufferMemoryã¯èªåçã«AIã®å¿çãã¡ã¢ãªã«è¿œå ããããAgentExecutorã®å Žåã¯è¿œå ããªãããã®ãããªççŸã¯ãæç€ºçã«ææžåãããŠããªãå Žåã誀ã£ãä»®å®ã誀ã£ãå®è£ ã«ã€ãªããå¯èœæ§ããããŸãã
é ãããåäœã®ããäžã€ã®äŸã¯ãããç¹å®ã®ãã§ãŒã³ãäŸãã° LLMMathChainLLMMathChainã¯ãä»ã®ãã§ãŒã³ãšæ¯èŒããŠãå ¥åãã©ã¡ãŒã¿ã«ç°ãªããã©ãŒãããã䜿çšããŠããŸããLLMMathChainã¯ãå ¥åã®èŸæžãæåŸ ãã代ããã«ãåäžã® "question "ãã©ã¡ãŒã¿ãæåŸ ããããã®ãããªå ¥å圢åŒã®äžäžèŽã¯ãå ¥åãã©ã¡ãŒã¿ãæ§æããããšãå°é£ã«ããŸãã çµ±å ç°ãªããã§ãŒã³ãã·ãŒã ã¬ã¹ã«ã€ãªãã
ççŸãé ããåäœãèŠèœãšãããšã®åœ±é¿ã¯å€§ãããéçºè ã¯ãã³ã³ããŒãã³ãã®åäœã«é¢ãã誀ã£ãä»®å®ã«èµ·å ããåé¡ã®ãããã°ã«äœæéãè²»ãããããããªãããã¬ãŒã ã¯ãŒã¯ã®ç°ãªãéšåéã§åäœãå ¥åãã©ãŒãããã«äžè²«æ§ããªããããããŒã¿ã®æµããæšè«ããå ç¢ãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšãé£ãããªããŸãã
ããã«ãé ããåäœã¯åŸ®åŠãªãã°ã«ã€ãªããå¯èœæ§ããããéçºæã«ã¯æ°ã¥ããªãã£ãããæ¬çªç°å¢ã§ã¯è¡šé¢åããäºæãã¬é害ãäžæ£ãªåºåãåŒãèµ·ããããšãããããã®ãããªåé¡ã®ç¹å®ãšä¿®æ£ã«ã¯æéããããããã¬ãŒã ã¯ãŒã¯ã®å éšã«é¢ããæ·±ãç¥èãå¿ èŠã«ãªããŸãã
ééã#4ïŒçµ±åã®èª²é¡ãéå°è©äŸ¡ãã
LangChainã䜿ãéã«ããããããäžã€ã®ééãã¯ãæ¢åã®ã³ãŒãããŒã¹ãããŒã«ãã¯ãŒã¯ãããŒãšãã¬ãŒã ã¯ãŒã¯ãçµ±åããéã®èª²é¡ãéå°è©äŸ¡ããããšã§ããLangChainã®ç¬æçãªãã¶ã€ã³ãšãã¡ãœãããã§ã€ãã³ã°ãã³ãŒã«ããã¯ã®ãããªç¹å®ã®ãã¿ãŒã³ãžã®äŸåã¯ã確ç«ãããéçºç°å¢ã«çµã¿èŸŒãããšãããšãã«æ©æŠãçãå¯èœæ§ããããŸãã
äŸãã°ãLangChainãæ¬¡ã®ãããªãŠã§ããã¬ãŒã ã¯ãŒã¯ãšçµ±åããã ãã¡ã¹ãAPI ç°ãªãã¿ã€ãã®ãªã¯ãšã¹ããã¬ã¹ãã³ã¹ãäŸå€ã倿ããå¿ èŠããããããããŸãããéçºè ã¯LangChainã®å ¥åºåããŠã§ããã¬ãŒã ã¯ãŒã¯ã®èŠçŽã«æ³šææ·±ããããã³ã°ããªããã°ãªããŸããã
åæ§ã«ãLangChainãããŒã¿ããŒã¹ãã¡ãã»ãŒãžãã¥ãŒãšçµ±åããå Žåãéçºè ã¯LangChainãªããžã§ã¯ãã®ã·ãªã¢ã©ã€ãºãšãã·ãªã¢ã©ã€ãºãè¡ãå¿ èŠããããŸãããã¬ãŒã ã¯ãŒã¯ãç¹å®ã®ãã¶ã€ã³ã»ãã¿ãŒã³ã«äŸåããŠãããããæ¢åã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãã¹ãã»ãã©ã¯ãã£ã¹ãèŠä»¶ãšå¿ ãããäžèŽããªãå ŽåããããŸãã
LangChainã®ã°ããŒãã«ã¹ããŒããšã·ã³ã°ã«ãã³ã®äœ¿çšã¯ãã³ã³ã«ã¬ã³ãç°å¢ã忣ç°å¢ã§ãåé¡ãåŒãèµ·ããå¯èœæ§ããããŸããäŸåé¢ä¿ã®é©åãªã¹ã³ãŒããšã€ã³ãžã§ã¯ã·ã§ã³ã¯ãåé¿çããã¬ãŒã ã¯ãŒã¯ã®ããã©ã«ãåäœãžã®å€æŽãå¿ èŠãšããçµ±åããã»ã¹ã«è€éããå ããŸãã
çµ±åã®èª²é¡ãéå°è©äŸ¡ããããšã®çµæã¯é倧ã§ãããéçºè ã¯ãçµ±åã¿ã¹ã¯ã«äºæ³ä»¥äžã®æéãè²»ããããããžã§ã¯ãã®ã¹ã±ãžã¥ãŒã«ãé ãããéçºã³ã¹ããå¢å ãããããšã«æ°ã¥ããããããªãããŸããçµ±åã®è€éããå¢ããšããã°ãçºçããããä¿å®æ§ã®åé¡ãçãããããå¯èœæ§ãããã
ããã«ãçµ±åã®èª²é¡ã«ãã£ãŠåŒãèµ·ããããæ©æŠã¯ãäžéšã®éçºè ã«LangChainãå®å šã«æŸæ£ãããæ¢åã®æè¡ã¹ã¿ãã¯ãã¯ãŒã¯ãããŒãšã®äºææ§ãããé«ã代æ¿ãœãªã¥ãŒã·ã§ã³ãéžæããããããããŸãããããã¯ãLangChainã®åŒ·åãªæ©èœã掻çšããæ©äŒãéããæœåšçã«æé©ã§ãªãå®è£ ã«ã€ãªããå¯èœæ§ããããŸãã
ééã#5ïŒããã©ãŒãã³ã¹ãšä¿¡é Œæ§ã®èæ ®ãç¡èŠãã
LangChainã䜿ããšãã«éçºè ãç¯ããã¡ãª5ã€ç®ã®éã¡ã¯ãããã©ãŒãã³ã¹ãšä¿¡é Œæ§ãç¡èŠããããšã§ããLangChainã¯èšèªã¢ãã«ã䜿ã£ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®åŒ·åãªããŒã«çŸ€ãæäŸããŸããããããã®ã¢ããªã±ãŒã·ã§ã³ãæ¬çªãŠãŒã¹ã±ãŒã¹ã«æé©åããã«ã¯ãããã©ãŒãã³ã¹ãšä¿¡é Œæ§ã®èŠçŽ ã«æ³šææ·±ã泚æãæãå¿ èŠããããŸãã
LangChainã¢ããªã±ãŒã·ã§ã³ãæé©åããéã®èª²é¡ã®äžã€ã¯ããã¬ãŒã ã¯ãŒã¯ã®ã¢ãŒããã¯ãã£ãæ¬è³ªçã«è€éã§ããããšã§ããæœè±¡åãããè€æ°ã®ã¬ã€ã€ãšãèšèªå ¥åºåã®åŠçã«é¢ãã倿°ã®ã³ã³ããŒãã³ãããããããããã©ãŒãã³ã¹ã®ããã«ããã¯ãéå¹çæ§ãç¹å®ããããšãé£ããå ŽåããããŸããéçºè ã¯ãã¢ããªã±ãŒã·ã§ã³ã广çã«ãããã¡ã€ãªã³ã°ãæé©åããããã«ããã¬ãŒã ã¯ãŒã¯ã®å éšãæ·±ãçè§£ããå¿ èŠããããããããŸããã
ããäžã€ã®åé¡ã¯ãLangChainã®ããã©ã«ãèšå®ãå¿ ãããæ¬çªç°å¢ã«é©ããŠããªãããšã§ãããã¬ãŒã ã¯ãŒã¯ã®ããã©ã«ãèšå®ã¯ãããã©ãŒãã³ã¹ãã³ã¹ãå¹çããã䜿ãããããæè»æ§ãåªå ããŠãããããããŸãããäŸãã°ããã£ãã·ã¥ãããŒã¯ã³ã®äœ¿çšãAPIåŒã³åºãã®ããã©ã«ãèšå®ã¯ãã¬ã€ãã³ã·ãã³ã¹ãã«å¯ŸããŠæé©åãããŠããªãå¯èœæ§ããããå®éã®ã·ããªãªã§ã¯æé©ãªããã©ãŒãã³ã¹ãšã¯èšããŸããã
ããã©ãŒãã³ã¹ãšä¿¡é Œæ§ãç¡èŠãããšãé倧ãªçµæãæããããŸãããLangChainã§æ§ç¯ãããã¢ããªã±ãŒã·ã§ã³ã¯ãé ãã¬ã¹ãã³ã¹ã¿ã€ã ãé«ãã¬ã€ãã³ã·ãéçšã³ã¹ãã®å¢å ã«æ©ãŸããããããããŸãããããã·ã§ã³ã¯ãªãã£ã«ã«ãªã¢ããªã±ãŒã·ã§ã³ããŠãŒã¶ãå©çšããã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããã©ãŒãã³ã¹ã®äœäžã¯ãŠãŒã¶ãšã¯ã¹ããªãšã³ã¹ã®äœäžããŠãŒã¶ã®ä¿¡é Œåªå€±ã«ã€ãªãããŸãã
ããã«ãLangChainã¢ããªã±ãŒã·ã§ã³ãæ¬çªç°å¢ã§é©åã«ãã¹ãã»ç£èŠãããªãå Žåãä¿¡é Œæ§ã®åé¡ãçºçããå¯èœæ§ããããŸããäºæãã¬é害ãã¿ã€ã ã¢ãŠãããªãœãŒã¹ã®å¶çŽã«ãããã¢ããªã±ãŒã·ã§ã³ãå¿çããªããªã£ãããæ£ãããªãåºåãåºãããšããããŸãããã®ãããªåé¡ã®ãããã°ãšãã©ãã«ã·ã¥ãŒãã£ã³ã°ã¯ããã¬ãŒã ã¯ãŒã¯ãšåºç€ãšãªãã€ã³ãã©ã¹ãã©ã¯ãã£ã®æ·±ãç¥èãå¿ èŠãšããå°é£ãªå ŽåããããŸãã
ãããã®ãªã¹ã¯ã軜æžããããã«ãéçºè ã¯LangChainã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããéã«ãããã©ãŒãã³ã¹ãšä¿¡é Œæ§ã®èŠçŽ ãç©æ¥µçã«èæ ®ããå¿ èŠããããŸããããã«ã¯ãç°ãªãã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ãªãã·ã§ã³ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãæ éã«è©äŸ¡ããããšã培åºçãªããã©ãŒãã³ã¹ãã¹ãã宿œããããšãéçšäžã®ã¢ããªã±ãŒã·ã§ã³ãç£èŠããŠåé¡ãè¿ éã«ç¹å®ã察åŠããããšãªã©ãå«ãŸããŸãã
ã¹ãã AIã§LangChainã®ãã¹ãšèª²é¡ãå æãã
ãã®ããã°ãã¹ãã§ã¯ãLangChainã®åŒ·åãªãã¬ãŒã ã¯ãŒã¯ã䜿ãéã«ãéçºè ãäŒæ¥ãé¥ããã¡ãªå€±æã課é¡ã®ããã5ã玹ä»ããŸããã¢ãŒããã¯ãã£ã®è€éåãããã¥ã¡ã³ãã®è»œèŠãããäžæŽåã®èŠèœãšããçµ±åã®èª²é¡ã®éå°è©äŸ¡ãŸã§ããããã®ééãã¯LangChainå®è£ ã®æåã倧ãã劚ããŸããããã«ãããã©ãŒãã³ã¹ãšä¿¡é Œæ§ãç¡èŠãããšãæé©ãªçµæãåŸããããæ¬çªç°å¢ã§å€±æããããšãããããŸãã
ãããããããã®èª²é¡ã¯å æã§ããªããã®ã§ã¯ãªãããšãèªèããããšãéèŠã§ãããããã®èª²é¡ã«ç©æ¥µçã«åãçµã¿ãå°éå®¶ã®æå°ãä»°ãããšã§ãäŒæ¥ã¯LangChainã«é¢é£ããããŒãã«ãå æããã¢ããªã±ãŒã·ã§ã³ã®ããã«ãã®ãã¬ãŒã ã¯ãŒã¯ã®å¯èœæ§ãæå€§éã«åŒãåºãããšãã§ããŸããLangChainãå©çšããããšã§ãäŒæ¥ã¯AIãžã®åãçµã¿ã«ãããŠäŸ¡å€ãšã€ãããŒã·ã§ã³ãä¿é²ããã髿§èœã§ä¿å®å¯èœãªä¿¡é Œæ§ã®é«ããœãªã¥ãŒã·ã§ã³ãæ§ç¯ããããšãã§ããŸãã