
ChatGPTã«èªç€ŸããŒã¿ãçµã¿èŸŒãã§æ°ããæ€çŽ¢äœéšã暡玢ããŠã¿ãŸãã
ã€ã³ãã
ChatGPTãBingãNotionAIãªã©ã®å€§èŠæš¡èªç¶èšèªã¢ãã«(LLM)ãæŽ»çšãããµãŒãã¹ã泚ç®ãéããŠããŸãã察話ãèŠçŽã翻蚳ãã¢ã€ãã¢çæãªã©ã®å€æ§ãªã¿ã¹ã¯ã«ãããŠããšãŠãæ§èœãé«ãã§ãããã ãChatGPTã§ã¯ããšãã©ãåãæ··ãã£ãŠããããæç®ãæé ããããããããšããããŸãã

ãããé²ãããã«ãBingãPerplexityã§ã¯ãæç®ãåŒçšããäžã§ããªãã¹ãåãçŽã蟌ãŸãªã圢ã§åçããŠãããŸãã

ãããããããã®AIã¯ãWebäžã®å ¬éãããŠããäžéšã®ããŒã¿ãå ã«åŠç¿ããŠããã®ã§ãå ¬éãããŠãªãããŒã¿ã«å¯ŸããŠã¯åœç¶ãªãããæ£ããåçã§ããŸããã
ããã§ããã®èšäºã§ã¯ãèªç€Ÿãä¿æããŠããããŒã¿ãChatGPTã«çµã¿èŸŒãã§ãèªç€Ÿãªãªãžãã«ã®Perplexityã®ãããªã·ã¹ãã ãäœãæ¹æ³ã«ã€ããŠããŸãšããããšæããŸãããŸããå€§èŠæš¡èªç¶èšèªã¢ãã«ã掻çšãããšãã©ããªæ°ããæ€çŽ¢äœéšãã§ããããç°¡åã«ãŸãšããããšæããŸãã
2023幎3æ1æ¥ã«ãChatGPTã®è£åŽã®ã¢ãã«ã§ããgpt-3.5-turboããAPIçµç±ã§å©çšã§ããããã«ãªããŸãããä»åã®èšäºã§ã¯ããã®ã¢ãã«ã䜿ã£ãŠæ€èšŒããŠãããŸãã
ã·ã¹ãã æŠèŠ
å€§èŠæš¡èªç¶èšèªã¢ãã«ã«ãèªç€ŸããŒã¿ãçµã¿èŸŒãæ¹æ³ã«ã¯ã倧ããïŒã€ã®æ¹æ³ããããŸãã
åŠç¿æ®µéãããèªç€ŸããŒã¿ãåŠç¿ããŒã¿ã«å ¥ããŠãã
åŠç¿æžã¿ã®ã¢ãã«ã«ãèªç€ŸããŒã¿ãå ¥ããŠãã¡ã€ã³ãã¥ãŒãã³ã°ãã
ããã³ããã«ãèªç€ŸããŒã¿ãã³ã³ããã¹ããšããŠãå ¥åãã
çŸæç¹(2023/3/1)ã§ã¯ã3ã€ç®ã®æ¹æ³ãã³ã¹ããäœãç°¡åã«è©Šãããšãã§ããã®ã§ã3ã€ç®ã®æ¹æ³ã玹ä»ããŠãããŸãã(ãã®é åã®é²å±ã®ã¹ããŒãã¯ãããæ©ãã®ã§ã1ã€ç®ã2ã€ç®ã®éžæè¢ãä»åŸã¯éžæè¢ã®èŠéã«å ¥ã£ãŠãããšæããŸãã)
ããŒã«
å€éšããŒã¿ãšã®é£æºãç°¡åã«å®çŸããããŒã«ãšããŠãLlamaIndex(æ§GPT Index)ãLangChainãªã©ã®ã©ã€ãã©ãªã掻çºã«éçºãããŠããŸãããããã®ããŒã«ãã©ã®ããã«ãå€éšããŒã¿ãChatGPTã«çµã¿èŸŒãã§ãããã®æŠèŠã解説ããŸãã
ãã£ãŠããããšã¯ããšãŠãã·ã³ãã«ã§ãããŠãŒã¶ãŒããã®å ¥åã«å¯ŸããŠãããã«é¢é£ããããŒã¿ããããªãã該åœç®æã®æç« ãæãåºããŸãããã®æç« ãããã³ããã«å ¥ããŠããã®æ å ±ã«åºã¥ããŠåçããããã«ChatGPTã«ãé¡ããããšãããã®ã§ãã
å ·äœäŸããã£ãã»ããåããããããšæãã®ã§ãç§ãæå±ãããŠããŒç€Ÿã®ç€Ÿå¡ãä»ãŸã§æžããnoteã®èšäºãChatGPTãšé£æºãããŠãããã«åºã¥ããåçãã§ããã·ã¹ãã ãèããŸãã
ãŠããŒã®ç€Ÿå¡ãæžããèšäºã¯äžèšã«ãŸãšãŸã£ãŠããã162æ¬ãããŸãããã¡ãã®èšäºãæå ã«ããŠã³ããŒãããŠãããChatGPTãšé£æºãããŠãããŸãã
äŸãã°ããåœå®¶å ¬åå¡åºèº«ã®æ¹ããŠããŒã§ã¯ã©ã®ããã«åããŠããŸããïŒããšãã質åã«å¯ŸããŠããã®ãŸãŸChatGPTã«å ¥åããŠããé©åãªåçã¯åŸãããŸããããŠããŒã«ã¯ãåœå®¶å ¬åå¡åºèº«ã®æ¹ãè€æ°ååšç±ããŠããããŠããŒã§ã®åãæ¹ã«ã€ããŠã®noteèšäºãæžããŠããŸãã
ãã®èšäºã®äžéšãããã³ããã«çµã¿èŸŒãããšã§ãé©åã«åçã§ããããã«ããŸãããåœå®¶å
¬åå¡åºèº«ã®æ¹ããŠããŒã§ã¯ã©ã®ããã«åããŠããŸããïŒããšãã質åã«å¯ŸããŠãnoteèšäºã®ãã®æ
å ±ãæžãããŠããéšåãæãåºããŠããããã³ã³ããã¹ãæ
å ±ãšããŠãããã³ããã«å
¥ãããšãChatGPTã¯ããã«åºã¥ããŠåçããŠãããŸãã
ããã³ããã¯ããã®ããã«ãªããŸãã
ã³ã³ããã¹ãæ å ±
---------------------------------------------------
{質åæã«é¢é£ããæç« 1ã®å 容}
{質åæã«é¢é£ããæç« ïŒã®å 容}
{質åæã«é¢é£ããæç« ïŒã®å 容}
---------------------------------------------------
äºåç¥èã§ã¯ãªãã³ã³ããã¹ãæ å ±ãæŽ»çšããŠã質åæã«åçããŠãã ããã
ããããããã³ããã«ã¯æåå¶é(çŽ3000å)ããããããé¢é£ããæ å ±ãå šéšå ¥åããããšã¯ã§ããŸãããããã§ãé¢é£ããæ å ±ãæ°çŸå以å ã§æãåºããŠããããããã³ããã«å ¥åããå¿ èŠããããŸãã
LlamaIndexãLangChainã§ã¯ãããç°¡åã«ãã颿°ãçšæãããŠããŸãããŸãã¯ãåã蟌ã¿ããããŒã¿ãã€ã³ããã¯ã¹åãããšããåŠçãããŸãããŸãã¯ãæç« ãæ°çŸåã®ãã£ã³ã¯ã«åå²ãããã®äžã«çŸããããŒã¯ãŒããæœåºããŸãããã®åŸã«ãããããã®ããŒã¯ãŒããã©ã®ãã£ã³ã¯ã«åºçŸããŠããããšããæ å ±ãä¿æããŠãããŸãã

ãããããšããŠãŒã¶ãŒãããå ¥åããã£ããšãã«ãã©ã®ç®æãããã³ããã«çµã¿èŸŒãã°è¯ãããããã«åãããŸãã
æè¡çãªè©³çްãšããŠã¯ãããŒã¯ãŒãããŒã¹ãšãã¯ãã«ããŒã¹ã®ãã®ããããŸããããããç°¡åã«èª¬æããŸããïŒæè¡è©³çްã¯ãšã³ãžãã¢åãã«æžããŠããŸãã®ã§ãé©å®èªã¿é£ã°ããŠãã ãããïŒ
ããŒã¯ãŒãããŒã¹
ããŒã¯ãŒãæœåºã«ã¯ã圢æ çŽ è§£æã掻çšããŠãåè©ã ããæãåºããšããããšãè¡ãããŸããChatGPTã®é¢çœããšããã¯ããã®ããŒã¯ãŒãæœåºã®ã¿ã¹ã¯ããé¡ãããããšãã§ããŸãã
ããªãã¯æ¥æ¬èªã®æç« ããããŒã¯ãŒããæœåºããã¢ã·ã¹ã¿ã³ãAIã§ããuserãå ¥åããæç« ãããæ€çŽ¢èŠ³ç¹ã§ã€ã³ããã¯ã¹ããã¹ãéèŠãªããŒã¯ãŒãã10åã','åºåãã§æ¹è¡ãªãã§åºåããªããã
ãã®ãã³ãã¬ãŒãã䜿ããšãŠãŒã¶ãŒãå ¥åããæç« ãããããŒã¯ãŒããæœåºããŠãããŸãããã ããšãã©ããâ,âã§ã¯ãªãâãâã§åºåããããäœèšãªæç« ãå ¥ãããããŠããã®ã§ããã®ãŸãŸã¯äœ¿ããŸããã§ãããïŒããã³ããã®æç€ºæãæ¹åããã°ã解決ã§ãããããããŸãããåããŒã¯ãŒãã®éèŠåºŠscoreãä»äžããŠããã£ãããé¡çŸ©èªã衚èšãããèæ ®ããŠã®ããŒã¯ãŒãæœåºããé¡ãã§ããŠãæè»ãã¯ãããã§ããïŒ
ãŠãŒã¶ãŒã®å ¥åããã該åœç®æãæãåºãæ¹æ³ã¯ããŸãå ¥åã®è³ªåæãããŠãŒã¶ãŒã®æå³ãçè§£ããäžã§ãããŒã¯ãŒããæãåºããŸããæãåºãæ¹ã¯ã圢æ çŽ è§£æã§ã®ããæ¹ããããŸãããããŒã¯ãŒãæœåºãChatGPTã«ãé¡ãããŠããŸãããæ¹ããããŸãã
ããŒã¯ãŒããæœåºã§ããããã©ã®æç« ãã£ã³ã¯ãšåèŽããããèšç®ããŸããèšç®æ¹æ³ã¯ãtf-idfãBM25ãªã©ã®ããæ¹ã§èšç®ã§ããŸãã
ãã¯ãã«ããŒã¹
æè¿ã¯ããã¯ãã«ããŒã¹ã§ã®æ€çŽ¢ãå¢ããŠããŸããæç« ãæ°çŸåã®ãã£ã³ã¯ã«åå²ãããããããWord2vecãBertãªã©ã®ã¢ã«ãŽãªãºã ã§ãæ°çŸæ¬¡å ã®ãã¯ãã«ã«ãããšãããã®ã§ãããã®ãã¯ãã«åã¯ãå ¬éãããŠããåŠç¿æžã¿ã®ã¢ãã«ã䜿çšããããšãã§ããŸãããOpenAIã®Embeddingã®APIã䜿ãããšãã§ããŸãããŸããæè¿ã§ã¯Googleã®Vertex AI Matching Engineãªã©ã®ãã¯ãã«æ€çŽ¢ã®ããŒã«ãå¢ããŠããŠããŸãã

ãŠãŒã¶ãŒã質åæãå ¥åãããšããã®è³ªåæããã¯ãã«åãããã®ãã¯ãã«ãšåæç« ãã£ã³ã¯ã®è·é¢ãèšç®ããè¿ããã®ãæœåºãããããããã³ããã«çµã¿èŸŒã¿ãŸãã
ããŒã¯ãŒãããŒã¹ãšãã¯ãã«ããŒã¹ã¯ããããåäœã§äœ¿ããšããããããçµã¿åãããŠäœ¿ããšæ€çŽ¢ç²ŸåºŠãé«ãŸããŸããäŸãã°ãããŠããŒããšããåèªã¯ããã¯ãã«ããŒã¹ã§ã¯ãåŠç¿æã®ããŒã¿ã«å ¥ã£ãŠãªãããšãå€ããé©åã«åèªããã¯ãã«åããããæ€çŽ¢ç²ŸåºŠãæªãã§ããäžæ¹ã§ãããŒã¯ãŒãããŒã¹ã§ã¯ãããŠããŒããšããåèªãå«ããã®ããã¹ãŠæŸãäžããŠãããŸãã
 ãAIç ãã¯ã€ãºAIæ¥æ¬äžæ±ºå®æŠãããšãã質åå¿çã®ã³ã³ãã¹ãã§ããããŒã¯ãŒãããŒã¹ãšãã¯ãã«ããŒã¹ã®çµã¿åããããã®ã䜿ãããŠããŸããïŒåããŒã ã®è§£æ³ãå ¬éãããŠããã®ã§ããšãŠãåèã«ãªããŸããïŒ
ããŠãå®éã«ãã®ä»çµã¿ãå®è£ ããŠã¿ããšãããããŸã粟床ããããããŸããã§ããããªããªãããã£ã³ã¯ã«åå²ããŠããŸã£ãããšã§ãæç« å šäœã®æå³åããæããŠããŸã£ãŠãé©åã«åçããŠãããŸããã§ãããïŒâ»LlamaIndexãLangChainã§ã¯ãã£ã³ã¯ã®éçŽã®ä»çµã¿ãããã€ããããŸããããä»åã®äŸã§ã¯ããŸãäžæãåããŸããã§ãããïŒ
ããã§ããŸãã¯ãåæç« ã300åã»ã©ã«èŠçŽããŠããã£ãŠããã®èŠçŽæãæ€çŽ¢ããŠããããããã³ããã«çµã¿èŸŒãæ¹æ³ãåããŸããã

èŠçŽãããšãã«ãæç« ã®æåæ°ã4000åãè¶ ãããšããã³ããã«å ¥ããªãã®ã§ã次ã®ãããªããã³ããã§èŠçŽæãçæããŸããã
ããªãã¯æ¥æ¬èªã®æç« ãèŠçŽããã¢ã·ã¹ã¿ã³ãAIã§ãã
userãå ¥åããæç« ã300åã§èŠçŽããŠãã ããã
çŸæ®µéã®èŠçŽæãååšããŠããå Žåã¯ãããã®äžéšãå çä¿®æ£ãã圢ã§300åã§èŠçŽããŠãã ããã
çŸæ®µéã®èŠçŽã¯ãã¡ãã§ãã
--------------------------
{current_summary}
äŸãã°ã
ãã¡ãã®èšäºã¯ã5000åã»ã©ãããŸããããã®æ¹æ³ã䜿ããšChatGPTã¯ç確ã«300åã«èŠçŽããŠãããŸãã
å åœå®¶å ¬åå¡ã®juncosãããUbie Discoveryã®PAãšããŠå ¥ç€Ÿããçµç·¯ãä»äºå 容ãåŽåç°å¢ã«ã€ããŠç޹ä»ããŠããŸãã圌女ã¯å®ãã®PAãšããŠãäºæ¥ã«é¢ä¿ããæ³ä»€çã®èŠå¶ã«ã€ããŠãªãµãŒãããäŒç€Ÿã®äºæ¥ãªã¹ã¯ãæžãããäºæ¥å±éãã¹ã ãŒãºã«é²ãããã«ãã圹å²ãæ ã£ãŠããŸããåŽåç°å¢ã¯ãã«ãã¬ãã¯ã¹ã§ãªã¢ãŒãåæã§ãããåšå²ã®ã¡ã³ããŒãçåªç§ã§ããããšã質åãããäœã§ã芪åã«æããŠãããããšãçã®willã倧åã«ããŠããŠããããããããããšããã£ãŠããããšãé åçã§ãããšè¿°ã¹ãŠããŸãããŸããUbie Discoveryã¯äºæ¥å±éãå éããŠãããåžžã«çŽ æŽããã人æãåéããŠãããããèå³ãããæ¹ã¯ãåãåãããããããåŒã³ãããŠããŸãã
ãã®ãµããªã䜿ãããšã§ãäžèšã®ç»åã®ãããªè³ªçå¿çãå¯èœã«ãªããŸããããŸããPerplexityã®ããã«åŒçšå ã衚瀺ã§ããŸããïŒãŸã ãŸã ãæ¹åã®äœå°ã¯ãããããããŸããããïŒ

æ°ããæ€çŽ¢äœéš
ChatGPTãªã©ã®èªç¶èšèªåŠçã®ç»å Žã«ãããæ¢åã®æ€çŽ¢ãã©ãå€ããã®ããæ¢åã®æ€çŽ¢ã«çµã¿èŸŒãã«ã¯ã©ãããããšããïŒç¹ããããç°¡åã«ãŸãšããããšæããŸãã
å ¥åã®èгç¹
ä»ãŸã§ã®ã°ãŒã°ã«æ€çŽ¢ã§ã¯ããããããã°ã°ãåããšåŒã°ãããããªã¹ãã«ãå¿ èŠã§ãããç¥ãããæ å ±ã«ãã©ãçãããã«ã¯ãé©åãªããŒã¯ãŒãã§æ€çŽ¢ããå¿ èŠããããŸãããChatGPTã«ã¯ãæç« ããã®ãŸãŸå ¥åãããšãé«ãç²ŸåºŠã§æå³ãèªã¿åã£ãŠãåçããŠãããŸãã
åºåã®èгç¹
ã°ãŒã°ã«ã®æ€çŽ¢ã§ã¯ã該åœããWebããŒãžãäžèЧã§è¡šç€ºãããŠããŸãããããã®ããŒãžãé²èЧããŠãæçµçãªæ å ±ã«èŠçŽããã®ã¯ãŠãŒã¶ãŒã«å§ããããŠããŸããäžæ¹ã§ãChatGPTãBingã§ã¯ãæ å ±ãèŠçŽããŠæäŸããŠãããŸãããŸããæç€ºã®ä»æ¹ããŠãŒã¶ãŒãèªç±ã«èšå®ããããšãã§ããŸããäŸãã°ãããŒãã«åœ¢åŒã§åºåããããšãæç€ºã§ããŸãã

å€§èŠæš¡èªç¶èšèªã¢ãã«ã䜿ããšç©¶æ¥µã®ããŒãœãã©ã€ãºã¢ã·ã¹ã¿ã³ããäœãããã§ã¯ã¯ã¯ã¯ããŸãã
æ¢åã®æ€çŽ¢ã«çµã¿èŸŒã
å€§èŠæš¡èªç¶èšèªã¢ãã«ã䜿ã£ãŠããŸã£ããæ°ããã·ã¹ãã ãäœãã®ã楜ãããã§ãããæ¢åã®ã·ã¹ãã ã®äžéšã«ChatGPTãçµã¿èŸŒãæ¹æ³ããããããããšæããŸãã
äŸãã°ã
å ¥åã®èгç¹ã§ããŠãŒã¶ãŒã®ã¯ãšãªçè§£ãã¯ãšãªæ¡åŒµã®ã¿ã¹ã¯ã«GPTãæŽ»çšãã
åºåã®èгç¹ã§ãæ¢åã®æ€çŽ¢ã·ã¹ãã ã䜿ã£ãŠãçµæãèŠçŽããŠè¡šç€ºãã
åºåã®èгç¹ã§ãçµæç»é¢ããŠãŒã¶ãŒã®å±æ§ã«å¿ããŠæç« ã®è¡šçŸãå€åããã
ãªã©ãçµã¿èŸŒã¿ããããã§ãã
èªç€ŸããŒã¿ãšé£æºããå Žåã«ã¯ãæ¢åã®æ€çŽ¢ã·ã¹ãã ãæŽ»çšããå¿ èŠãããã®ã§ãå€§èŠæš¡èªç¶èšèªã¢ãã«ã«ãã£ãŠãæ¢åã®æ€çŽ¢ã·ã¹ãã ãå·æ°ãããã®ã¯ãããã°ããå ã®ãããªæ°ãããŸããïŒãã¡ã€ã³ãã¥ãŒãã³ã°ãå®äŸ¡ã«æ§èœé«ãã§ããããã«ãªãã°ãåãããŸãããããïŒ
ãŸãšã
ChatGPTã«èªç€ŸããŒã¿ãçµã¿èŸŒãã§æ°ããæ€çŽ¢äœéšã暡玢ããŠã¿ãŸãããæ¢åã®æ€çŽ¢ã·ã¹ãã ãå ¥åã»åºåã®èгç¹ã§ã倧ããæ¡åŒµã§ãããã§ã¯ã¯ã¯ã¯ããŸãã
TIPS(ããŒã«ã«ã§ã®Streamæ©èœã䜿ã£ãåºå)
2023幎3æ1æ¥ã«ãgpt-3.5-turboã¢ãã«ããªãªãŒã¹ãããAPIçµç±ã§ChatGPTã詊ãããšãã§ããããã«ãªããŸããããŸããStreamæ©èœãããã鿬¡æç« ã衚瀺ããããšãã§ããŸãã
Pythonã®Streamlitã䜿ã£ãŠãããŒã«ã«ç°å¢ã§Streamæ©èœãé§äœ¿ããæç« çæã®ããæ¹ã説æããŸãã
ãŸãã¯ã streamlitãšopenaiã®ã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããŸãã
pip install streamlit openaiimport streamlit as st
import openai
openai.api_key = "YOUR API KEY"
def main():
system_text = st.text_area("AIã¢ã·ã¹ã¿ã³ãã®èšå®", value="ããªãã¯ã¢ã·ã¹ã¿ã³ãAIã§ãã")
user_text = st.text_area("質åæ", value="ãã©ãã®è¹ã§æ¹æããŠ",)
is_generate_clicked = st.button("æç« çæ")
if is_generate_clicked:
message = [{"role": "system", "content": system_text}, {"role": "user", "content": user_text}]
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=message,
max_tokens=2000,
temperature=0,
stream=True
)
partial_words = ""
answer = st.empty()
for chunk in response:
if chunk and "delta" in chunk["choices"][0] and "content" in chunk["choices"][0]["delta"]:
partial_words += chunk["choices"][0]["delta"]["content"]
answer.write(partial_words)
if __name__ == "__main__":
main()
API_KEYã«ãèªèº«ã®Keyãå ¥åããŠãapp.pyãšãããã¡ã€ã«åã§ä¿åããŸãã
streamlit run app.pyã¢ããªãèµ·åãããšãWebãã©ãŠã¶ã§ç¢ºèªãã§ããŸããã¹ããªãŒã ã§åºåããŠãããã®ã§ãäœæé床ããããéãã§ãã
AIã¢ã·ã¹ã¿ã³ãã®èšå®ã質åæã®èª¿æŽããç°¡åã«è¡ããã®ã§ããšãŠã䟿å©ã§ããããŒãã«åœ¢åŒãã³ãŒããããã¯ãè¯ãæãã«åºåããŠãããŸãã
