ããžãã¹äžçã§ã¯åžžã«ææ°æè¡ãåãå ¥ããããšãèŠæ±ãããŸããä»åã®ããŒãã¯ãé©æ°çãªäººå·¥ç¥èœæè¡ã§ããChatGPTããä¿¡é Œæ§ã®é«ã.NETãã©ãããã©ãŒã ã«çµã¿èŸŒãããšã§ãããã®çãæŠèŠã§ã¯ãChatGPTãš.NETã®çžä¹å¹æã解ãæãããC#èšèªã§ChatGPT察å¿ã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããåºç€ç¥èã玹ä»ããŸãããŸããå®å šãªã¢ããªã±ãŒã·ã§ã³éçºãšå®çšçãªæé©åæŠç¥ãæ¢æ±ããããšã§ãããªãã®ããžãã¹ããããªãé«ã¿ãžãšå°ãæå©ããšãªãããšã§ãããã
1. ChatGPTãš.NETã®èå
1.1 ChatGPTãšã¯äœãïŒ
ChatGPTã¯OpenAIãéçºãããGPTïŒGenerative Pretrained TransformerïŒãåºã«ããäŒè©±åAIã§ãããã®ãã¯ãããžãŒã¯ãèªç¶èšèªåŠçã®é²å±ã«ããã人éãšèªç¶ã«äŒè©±ããããšãã§ããããã«èšèšãããŠããŸããç¹ã«ãå€ãã®ããŒã¿ãåŠç¿ããããšã§ãè±å¯ãªå¯Ÿè©±å¿çãçæããèœåãåããŠããŸãã
ChatGPTã¯ããã®åŠç¿ã¢ã«ãŽãªãºã ãéããŠæèãç解ãã質åã«å¯ŸããŠç確ãªåçãæäŸããããšãç¹åŸŽã§ããå€æ§ãªæ¥çã§ãµããŒããã«ã¹ã¿ããŒãµãŒãã¹ã®ããããšããŠã®äœ¿çšãèããããŠããã人éã«è¿ãã¬ãã«ã§ã®å¯Ÿè©±ãå®çŸãããŠãŒã¶ãŒäœéšã®åäžã«å¯äžããããšãæåŸ ãããŠããŸãã
ãŸããChatGPTã¯ãã®ãªãŒãã³ãªã¢ãŒããã¯ãã£ã«ãããããŸããŸãªããã°ã©ãã³ã°èšèªããã©ãããã©ãŒã ãšçµ±åããããšãå¯èœã§ãããã®æè»æ§ãã.NETç°å¢ã®ããã«ããžãã¹ã¢ããªã±ãŒã·ã§ã³ãå€ãéçºãããç°å¢ãžã®é©çšã容æã«ããŸãã
1.2 .NETãã©ãããã©ãŒã ã®åºç€
.NETã¯ãMicrosoftãéçºããã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã§ããå€èšèªå¯Ÿå¿ã§ãããWindowsã¯ãã¡ããã®ããšãLinuxãmacOSãªã©ç°ãªãOSäžã§ãåäœããã¯ãã¹ãã©ãããã©ãŒã ãªæ§è³ªãæã£ãŠããŸãã.NETã¯ã¢ãã³ã§ã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ã®éçºããµããŒãããå¹ åºãåéã§ã®å©çšãå¯èœã§ãã
.NETã®åŒ·ã¿ã¯ãçµ±äžãããéçºç°å¢ãšè±å¯ãªã©ã€ãã©ãªãæããããšã§ããVisual Studioãšãããã¯ãã«ãªIDEã«ããå¹ççãªã³ãŒãã£ã³ã°ãè¡ããã»ããASP.NETãEntity Frameworkãšãã£ããã¬ãŒã ã¯ãŒã¯ãè±å¯ãªæ©èœãæäŸããéçºããã»ã¹ãããç°¡åãã€è¿ éã«é²ããããšãã§ããŸãã
ãŸãã.NET Coreãš.NET 5/6ãªã©ã®é²åããããŒãžã§ã³ã¯ãé«åºŠãªããã©ãŒãã³ã¹ãšè»œéæ§ãèªãããã€ã¯ããµãŒãã¹ãã³ã³ããããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³éçºã«éåžžã«é©ããŠããŸãããããã¯ã¯ã©ãŠããã€ãã£ããªã¢ãããŒãããµããŒãããææ°ã®éçºãã¬ã³ãã«åèŽããŠããŸãã
1.3 C#èšèªã®ç¹åŸŽãšãã£ããããããžã®é©çš
C#ïŒã·ã£ãŒãïŒã¯.NETãã©ãããã©ãŒã äžã§ã®éçºã«ãããŠäžå¿ãšãªãèšèªã§ããããã®éçåä»ãããªããžã§ã¯ãæåãã¡ã¢ãªç®¡çã®å®è£ ãªã©ãç¹åŸŽã§ããC#ã®æ§æã¯èªã¿ãããç解ãããããããéçºè ã«ãšã£ãŠåŠç¿ã容æã§ãçæéã§ç¿åŸãå¯èœã§ãã
ãã£ãããããéçºã«ãããŠãC#ã¯éåæåŠçããã«ãã¹ã¬ããã£ã³ã°ãšãã£ãæ©èœããµããŒãããŠããããªã¢ã«ã¿ã€ã ã®éä¿¡ã«å¿ èŠãªããã©ãŒãã³ã¹ãæäŸããŸãããŸãLINQãã¿ã¹ã¯ããŒã¹ã®éåæãã¿ãŒã³ãªã©ã®åŒ·åãªæ©èœãå«ããããè€éãªããŒã¿æäœãããã¯ã°ã©ãŠã³ãåŠçãèŠæ±ãããå Žé¢ã§ãé«ãèœåãçºæ®ããŸãã
ããã«ãC#ã¯NuGetã®ããã±ãŒãžãããŒãžã£ãå©çšããããšã§ãæ§ã ãªå€éšã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã容æã«è¿œå ã§ããå®è£ ã®é床ãšå¹çã倧ããåäžãããŸãããããã®ç¹åŸŽã¯ãChatGPTã®ãããªAIã掻çšãããã£ãããããéçºã«ããã£ãŠã倧ããªã¡ãªãããæäŸããŸãã
1.4 ChatGPTã®.NETç°å¢ã§ã®å©çšå¯èœæ§
ChatGPTã.NETç°å¢ã§å©çšããããšã¯ãAIé§åã®äŒè©±åããããæ¥åã¢ããªã±ãŒã·ã§ã³ã«çµ±åãããšããç¹ã§å€§ããªæœåšåãæã£ãŠããŸãã.NETã®æè»ãªãã©ãããã©ãŒã ãšC#èšèªã¯ãChatGPTãå¹ççã«çµã¿èŸŒãããã®åŒ·åºãªåºç€ãšãªãåŸãŸãã
OpenAIã®æäŸããAPIã䜿çšããããšã«ãããChatGPTã容æã«.NETã¢ããªã±ãŒã·ã§ã³å ã«çµ±åããã«ã¹ã¿ããŒãµããŒããFAQã®èªåå¿çããŸãã¯ã³ã³ãã³ãçæãšãã£ãçšéã§æŽ»çšããããšãå¯èœã§ããAPIã¯RESTfulã§æäŸããããããHTTPã¯ã©ã€ã¢ã³ãã䜿çšããŠç°¡åã«ãªã¯ãšã¹ããè¡ããå¿çãåŠçããããšãã§ããŸãã
ããã«ã¯ãMachine Learning for .NETïŒML.NETïŒãªã©ã®ããŒã«ãçµã¿åãããããšã§ãChatGPTãš.NETãçµ±åããã¢ããªã±ãŒã·ã§ã³ã®ç¥èœãããã«åŒ·åããããšãã§ããŸããããã«ãããAIããŒã¹ã®ãœãªã¥ãŒã·ã§ã³ãäŒæ¥ã®ããžã¿ã«ãã©ã³ã¹ãã©ãŒã¡ãŒã·ã§ã³ãæšé²ããéèŠãªåœ¹å²ãæ ãããšã«ãªãã§ãããã
2. .NETã§ã®ChatGPTããã°ã©ãã³ã°ã®å§ãæ¹
.NETãã©ãããã©ãŒã ã§ChatGPTã掻çšããããã®ããã°ã©ãã³ã°ã¯ãAIã®å¯èœæ§ãããã«åºããé åçãªã¢ãããŒãã§ãããã®èšäºã§ã¯ã.NETç°å¢ã§ChatGPTã䜿çšããããã®åºæ¬çãªæ¹æ³ã解説ããŸããå æ¬çã«ç解ããããå 容ã«çµããåå¿è ããäžçŽè ã®éçºè ãŸã§ãå¹ççã«åŠç¿ã§ããããã«æ§æãããŠããŸãã
2.1 éçºç°å¢ã®èšå®
ChatGPTããã°ã©ãã³ã°ãéå§ããåã«ãé©åãªéçºç°å¢ãæŽããããšã¯äžå¯æ¬ ã§ãããŸããWindowsãLinuxããŸãã¯macOSäžã§Visual StudioãVisual Studio Codeãšãã£ãIDEãã€ã³ã¹ããŒã«ããŸããããã¯ãC#ã³ãŒãã®èšè¿°ããããã°ããããŠãã¹ããåæ»ã«è¡ãããã®ç¬¬äžæ©ã§ãã
次ã«ã.NETã©ã³ã¿ã€ã ããã³SDKïŒSoftware Development KitïŒãããŠã³ããŒãããã€ã³ã¹ããŒã«ããŸããããã«ãããC#ãå«ãå€æ§ãª.NETèšèªã§ã®ã¢ããªã±ãŒã·ã§ã³éçºãå¯èœã«ãªããŸãããŸããå¿ èŠãªã©ã€ãã©ãªãããŒã«ãžã®ã¢ã¯ã»ã¹ãåŸãããŸãã
æåŸã«ãéçºç°å¢ãžã®Gitã®çµ±åããå§ãããŸããããã«ããããœãŒã¹ã³ãŒãã®ããŒãžã§ã³ç®¡çã容æã«ãªãã ãã§ãªããå ±åéçºã®å¹çãåäžããŸããå¿ èŠãªããŒã«ãæŽã£ããããããžã§ã¯ãã®åæäœæã«é²ã¿ãŸãã
2.2 C#ã§ã®ãããžã§ã¯ãåæäœæ
æ°ããChatGPTãããžã§ã¯ããéå§ããã«ã¯ãVisual Studioã§æ°èŠãããžã§ã¯ããäœæããŸããå©çšå¯èœãªãããžã§ã¯ããã³ãã¬ãŒãã®äžãããConsole AppãããClass Libraryããªã©ãèªåã®éçºç®çã«åã£ããã®ãéžæããŠãã ããã
ãããžã§ã¯ãåãšä¿åå Žæãæå®ããåŸãC#èšèªãéžæãããããžã§ã¯ãã®äœæãé²ããŸããããã§ã.NET Coreã.NET Frameworkã®ããŒãžã§ã³ãéžæããå¿ èŠãããå Žåãã¢ããªã±ãŒã·ã§ã³ã®ã¿ãŒã²ãããšãªããã©ãããã©ãŒã ãèæ ®ããŠéžãã§ãã ããã
ãããžã§ã¯ããäœæããããããœãªã¥ãŒã·ã§ã³ãšã¯ã¹ãããŒã©ãŒã§ãããžã§ã¯ãæ§é ã確èªããŸããããããã§ã¯ããœãŒã¹ãã¡ã€ã«ã®ç®¡çãå¿ èŠãªNuGetããã±ãŒãžã®è¿œå ãè¡ããŸããããã§ãããžã§ã¯ãã®åºç€ãå®æãã次ã¯NuGetããã±ãŒãžã®å©çšãžãšé²ãæºåãæŽããŸãã
2.3 NuGetããã±ãŒãžã®å©çšãšç®¡ç
NuGetããã±ãŒãžãããŒãžã£ã¯ã.NETã¢ããªã±ãŒã·ã§ã³éçºã«ãããŠå€éšã©ã€ãã©ãªãããŒã«ãçµ±åããéã«äžå¯æ¬ ã§ããVisual Studioã§ã¯ãNuGetããã±ãŒãžãç°¡åã«æ€çŽ¢ãããããžã§ã¯ãã«è¿œå ããããšãã§ããŸãã
ChatGPTãšé£æºããããã«ã¯ãOpenAIãæäŸããAPIã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªã®NuGetããã±ãŒãžããããžã§ã¯ãã«è¿œå ããå¿ èŠããããŸããããã¯ãNuGetããã±ãŒãžã®ç®¡çããªãã·ã§ã³ããè¡ããŸããå¿ èŠãªããã±ãŒãžãèŠã€ãã£ããããã€ã³ã¹ããŒã«ããã¯ãªãã¯ããŠãããžã§ã¯ãã«è¿œå ããŸãã
ããã±ãŒãžã®ç®¡çã«ã¯ãããŒãžã§ã³ã®æŽæ°ãã¢ã³ã€ã³ã¹ããŒã«ãå«ãŸããŸããäŸåé¢ä¿ã®è§£æ±ºãNuGetãèªåã§è¡ããããéçºè ã¯ããæ¬è³ªçãªã³ãŒãã£ã³ã°ã«éäžã§ããããã«ãªããŸããå©çšå¯èœãªææ°ã®å®å®ããŒãžã§ã³ãç¶æããããã«ã¯ãå®æçã«ããã±ãŒãžã®æŽæ°ããã§ãã¯ããããšããå§ãããŸãã
2.4 ChatGPT APIãžã®æ¥ç¶æ¹æ³
ãããžã§ã¯ããèšå®ããNuGetããã±ãŒãžãã€ã³ã¹ããŒã«ãããããããããChatGPT APIã«æ¥ç¶ããæºåãæŽããŸããAPIãå©çšããããã«ã¯ããŸãOpenAIã®Webãµã€ãã§ã¢ã«ãŠã³ããäœæããAPIããŒãååŸããå¿ èŠããããŸãã
APIããŒãååŸããããAPIãªã¯ãšã¹ããéä¿¡ããããã®åºæ¬çãªHTTPã¯ã©ã€ã¢ã³ããèšå®ããŸããC#ã®HttpClientã¯ã©ã¹ã䜿çšããŠã³ãŒãå ã§APIããŒã䜿ããå¿ èŠãªããããŒæ å ±ãå«ããããšã§å®å šã«ãªã¯ãšã¹ããè¡ãããšãã§ããŸãã
æåŸã«ãChatGPT APIãžã®ãªã¯ãšã¹ããéä¿¡ããã¬ã¹ãã³ã¹ãåŠçããããžãã¯ãå®è£ ããŸããHTTPã¡ãœããã®éžæããªã¯ãšã¹ãã®æ§æãã¬ã¹ãã³ã¹ããŒã¿ã®ãã·ãªã¢ã©ã€ãºæ¹æ³ã«æ°ãé ãããšãéèŠã§ããå¹æçãªãããã°ãšãã¹ããè¡ãããšã§ãChatGPT APIã掻çšãã.NETã¢ããªã±ãŒã·ã§ã³ã®éçºãé²ããããšãã§ããã§ãããã
3. C#ã䜿çšããChatGPTã¢ããªã±ãŒã·ã§ã³éçºã®åºç€
ChatGPTã¢ããªã±ãŒã·ã§ã³éçºã¯ã察話åAIã®åéã«ãããŠéåžžã«é åçã§ããC#ã¯ããã®åå®å šæ§ãé«æ§èœãã¯ãã¹ãã©ãããã©ãŒã 察å¿ãšããç¹æ§ã掻ãããChatGPTã®ãããªé«åºŠãªæ©èœãåããã¢ããªã±ãŒã·ã§ã³ã®éçºã«é©ããŠããŸãããã®èšäºã§ã¯ãC#ã䜿çšããŠChatGPTã¢ããªã±ãŒã·ã§ã³ãéçºããããã®åºç€ãäœç³»çã«è§£èª¬ããŠãããŸãã
ããã§åŠã¶å 容ã¯ããããªãéçºè ã«ãšã£ãŠããAI察話åãœãããŠã§ã¢ãæ§ç¯ããéèŠãªäžæ©ã«ãªãã§ããããC#ãšããèšèªã®ç¹æ§ãç解ããããã«åãããéçºãé²ããŠããããšããå¹æçãªChatGPTã¢ããªã±ãŒã·ã§ã³ãå®çŸããéµãšãªããŸãã
ããã§ã¯ãChatGPTã¢ããªã±ãŒã·ã§ã³ãäœæããéã®åºæ¬çãªæ§æèŠçŽ ãèŠãŠãããŸãããããããã®èŠçŽ ãç解ããé©åã«å®è£ ããããšãããŠãŒã¶ãŒæºè¶³åºŠã®é«ã補åãäœãäžãã第äžæ©ã§ãã
3.1 å ¥åããã¹ãã®åãåããšåŠçæ¹æ³
ChatGPTã¢ããªã±ãŒã·ã§ã³ã§ã¯ããŠãŒã¶ãŒããã®å
¥åãé©åã«åãåããåŠçããããšãéèŠã§ããC#ã«ãããŠå
¥åãåãåãéã¯ããã°ãã°Console.ReadLine()
ãªã©ã®ã¡ãœããã䜿çšããŠã³ãã³ãã©ã€ã³ããå
¥åãåŸãŸãããGUIãæããã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã¹ãããã¯ã¹ããã©ãŒã ãä»ããŠå
¥åãåãåãããšã«ãªããŸãã
å ¥åãããããã¹ãã¯ããã£ãããšããããªããŒã·ã§ã³ãè¡ãã察話ã®æèã§æå¹ãªåœ¢ã«æŽåœ¢ããããšãå¿ èŠã§ãããã®æ®µéã§äžæ£ãŸãã¯äžé©åãªå ¥åãåãé€ããåŸç¶ã®åŠçã«åœ±é¿ãäžããªãããã«ããããšãèèŠã§ãã
ããã«ãå ¥åããã¹ããåŠçããããžãã¯ã¯ãã¢ããªã±ãŒã·ã§ã³å šäœã§äžè²«æ§ãä¿ã¡ãªãããå¹ççã«å®è£ ããå¿ èŠããããŸããããã§æ§ç¯ããåºç€ãããŠãŒã¶ãŒãšã®ã¹ã ãŒãºãªå¯Ÿè©±ãå®çŸããããã®åºç€ãšãªãã®ã§ãã
3.2 æèãç¶æããäŒè©±ã®ç®¡ç
AIãšã®å¯Ÿè©±ã®æ žå¿ã¯æèã®ç¶æã§ããC#ã¢ããªã±ãŒã·ã§ã³ã«ãããŠChatGPTã®ãããªå¯Ÿè©±ãšã³ãžã³ãçµã¿èŸŒãéã«ã¯ãã»ãã·ã§ã³ãç¶æ 管çãé©åã«å®æœããããšãéèŠã«ãªããŸãããŠãŒã¶ãŒãšã®äŒè©±ãç¶ããŠããéãéå»ã®å¯Ÿè©±å±¥æŽãé©åã«åç §ããŠãäžè²«æ§ã®ããå¿çãçæããå¿ èŠããããŸãã
ãŸããäŒè©±ã®æèãç¶æããããã«ã¯ã察話ã®ç¶æ ãæ ŒçŽããæŽæ°ããããã®ã¡ã«ããºã ãå¿ èŠã§ããããã«ã¯ãããŒã¿ããŒã¹ãã€ã³ã¡ã¢ãªã®ããŒã¿ã¹ãã¢ã䜿çšãããããšããããŸãã
C#ã®åŒ·åãªã¯ã©ã¹ãšãªããžã§ã¯ãæåããã°ã©ãã³ã°æ©èœãå©çšããŠãäŒè©±ã®ç¶æ 管çãè¡ãããšã«ããããŠãŒã¶ãŒãšã®å¯Ÿè©±ããªããã§èªç¶ãªãã®ã«ããããšãã§ããŸãã
3.3 éåæããã°ã©ãã³ã°ã®å©ç¹ãšå®è£
éåæããã°ã©ãã³ã°ã¯ãChatGPTã¢ããªã±ãŒã·ã§ã³ã«ãããŠãå¿çæ§ã®é«ããŠãŒã¶ãŒäœéšãæäŸããããã®éèŠãªèŠçŽ ã§ããC#ã¯async
ãšawait
ããŒã¯ãŒãã䜿ã£ãŠéåæåŠçãç°¡åã«å®è£
ã§ããæ©èœãæäŸããŠããŸãã
éåæåŠçã«ãã£ãŠãé·æéå®è¡ãããã¿ã¹ã¯ãUIã¹ã¬ããããããã¯ããããšãªãèåŸã§è¡ããããããã¢ããªã±ãŒã·ã§ã³ã¯åæ¢æãªãå¿çãç¶ããããšãã§ããŸããããã¯ã察話åã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéåžžã«æçãªç¹æ§ã§ãã
AIã®èšç®åŠçãããŒã¿ã®ãã§ãããªã©ã®éãäœæ¥ãéåæã§å®è¡ããããšã§ãã¢ããªã±ãŒã·ã§ã³ã¯ã¹ã ãŒãºã«åäœããçµæçã«ãŠãŒã¶ãŒããã®å¥œæ床ãåŸãããšãã§ããã§ãããã
3.4 ãšã©ãŒåŠçãšäŸå€ã®ç®¡ç
å
ç¢ãªChatGPTã¢ããªã±ãŒã·ã§ã³ãéçºããããã§ããšã©ãŒåŠçãšäŸå€ç®¡çã¯æ¬ ãããªãéšåã§ããC#ã§ã¯ãäŸå€ãææããŠé©åã«å¯Ÿå¿ããããã®try
ãcatch
ãfinally
ãããã¯ãæäŸãããŠããŸãã
ãŠãŒã¶ãŒã®å ¥åãå€éšãµãŒãã¹ã®å¿çãªã©ãäºæããªããšã©ãŒãçºçããå¯èœæ§ãããå Žæã§ã¯ããããã®ãããã¯ã掻çšããŠãšã©ãŒããã£ããããã¢ããªã±ãŒã·ã§ã³ã®ã¯ã©ãã·ã¥ãé²ããŸãããŸãããšã©ãŒãçºçããããšããŠãŒã¶ãŒã«é©åãªåœ¢ã§äŒããããšã倧åã§ãã
å¹æçãªãšã©ãŒåŠçãšäŸå€ç®¡çã¯ãå³æ Œãªãã¹ããšäžå¯§ãªèšèšã«ãã£ãŠéæãããŸãããŠãŒã¶ãŒã«ããè¯ãçµéšãæäŸããããã«ããšã©ãŒãæ£ããåŠçããããããã£ãŒãããã¯ãšããŠéçºãµã€ã¯ã«ã«çµã¿èŸŒãããšãéèŠã§ãã
4. é«åºŠãªChatGPTæ©èœã®.NETå®è£
è¿å¹Žã人工ç¥èœã®åéã§ã¯ChatGPTã®ãããªäŒè©±åAIã倧ããªæ³šç®ãéããŠããŸãããã®æè¡ã¯ã.NETç°å¢ã«çµã¿èŸŒãããšã§ãæ§ã ãªããžãã¹ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¿ã©ã¯ãã£ããªãœãããŠã§ã¢ã·ã¹ãã ã匷åããããšãã§ããŸãã
æ¬èšäºã§ã¯ãChatGPTãçšããé«åºŠãªæ©èœã®.NETå®è£ ã«çŠç¹ãåœãŠãããã°ã©ããŒããããã®æ©èœãèªèº«ã®ã¢ããªã±ãŒã·ã§ã³ã«ã©ã®ããã«çµã¿èŸŒãããšãã§ãããã解説ããŸãã
ChatGPTã®.NETå®è£ ãèããéã«ã¯ããŠãŒã¶ãŒã®æåŸ ã«å¿ããããã«ãææ°ã®æè¡ãã¬ã³ãã«çæããæè»ãªéçºã¢ãããŒããå¿ èŠãšãããŸãã以äžã«ãã®å ·äœçãªæ¹æ³ã玹ä»ããŸãã
4.1 ããŒãœãã©ã€ãºããã察話ã®å®çŸæ¹æ³
ãŠãŒã¶ãŒã«ãšã£ãŠäŸ¡å€ã®ãã察話äœéšãæäŸããã«ã¯ãããŒãœãã©ã€ãºãéµãæ¡ããŸãã.NETã§ChatGPTã掻çšããããã«ã¯ããŠãŒã¶ãŒæ¯ã®å¯Ÿè©±ç¶æ ã管çããåã ã®èå³ãããŒãºã«åãããå¿çãçæããå¿ èŠããããŸãã
ããŒãœãã©ã€ãºãå®çŸããããã«ã¯ãã»ãã·ã§ã³ç®¡çããŠãŒã¶ãŒãããã¡ã€ã«ã®æ§ç¯ãæ¬ ãããŸããããŸãããŠãŒã¶ãŒã®éå»ã®åããããã¢ã¯ã·ã§ã³ãèšæ¶ããå¿çãã«ã¹ã¿ãã€ãºããããšãéèŠã§ãã
ãããã®ããã»ã¹ãèªååãããŠãŒã¶ãŒããã®ãã£ãŒãããã¯ãåéããŠå¿çã埮調æŽããããšã«ããããããªããã§åæ§çãªå¯Ÿè©±ãå®çŸå¯èœã«ãªããŸãã
4.2 ç¶ç¶çãªåŠç¿ãšã¢ãã«æŽæ°
AIã¢ãã«ã¯éçãªãã®ã§ã¯ãªããå®æçãªãã¬ãŒãã³ã°ãšã¢ããããŒãã«ãã£ãŠé²åãç¶ããå¿ èŠããããŸãã.NETã§æ§ç¯ãããChatGPTã¢ããªã±ãŒã·ã§ã³ãäŸå€ã§ã¯ãªããç¶ç¶çãªåŠç¿ãå¿ é ãšãªããŸãã
æ°ããããŒã¿ã»ããããªã¢ã«ã¿ã€ã ã®ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«åºã¥ããŠAIã¢ãã«ããã¬ãŒãã³ã°ããããšã§ãã·ã¹ãã ã®ç²ŸåºŠãšæçšæ§ãé«ããããšãã§ããŸããããã«ã¯ãé²åããåžå Žã®ããŒãºã«å¿ããæ°ãããããã¯ããã¬ãŒãºããã¬ãŒãã³ã°ããŒã¿ã«çµã¿èŸŒãäœæ¥ãå«ãŸããŸãã
èªååãããã¢ãã«è©äŸ¡ãšæŽæ°ã¡ã«ããºã ãçšããããšã§ãéçºè ã®æéã軜æžãã€ã€ãã¢ãã«ã®è³ªãç¶æããããšãå¯èœã§ãã
4.3 ããŒã«ã©ã€ãŒãŒã·ã§ã³ãšå€èšèªå¯Ÿå¿
ã°ããŒãã«ãªã¢ããªã±ãŒã·ã§ã³ã«ã¯ãããŒã«ã©ã€ãŒãŒã·ã§ã³ãšå€èšèªå¯Ÿå¿ãäžå¯æ¬ ã§ããChatGPTã®æ©èœãçµã¿èŸŒãŸãã.NETã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŸããŸãªèšèªãå°åç¹æã®ãã¥ã¢ã³ã¹ã«å¯Ÿå¿ããå¿ èŠããããŸãã
ãããå®çŸããããã«ã¯ãå€èšèªåŠçèœåãæã€AIã¢ãã«ãå©çšããããããã®èšèªã«ç¹åãããµãã¢ãã«ããç°ãªãèšèªéã§ã®ç¿»èš³ã¡ã«ããºã ãæ§ç¯ããããšãéèŠã§ããèšèªã®ããªãšãŒã·ã§ã³ã«å¯ãã ãã¬ãŒãã³ã°ããŒã¿ãçšæããããšããå¹æçãªããŒã«ã©ã€ãŒãŒã·ã§ã³ãè¡ãããã«ã¯å¿ é ã§ãã
å ããŠãæåçãªå·®ç°ã«ããã³ãã¥ãã±ãŒã·ã§ã³ã®èª€è§£ãé²ããããå°åããšã®æ £ç¿ãè¡šçŸãåŠç¿ãããããšã倧åã§ãã
4.4 .NETã®AIãšMLã©ã€ãã©ãªã®çµ±å
.NETãã©ãããã©ãŒã ã§ã¯ãAIãšMLã®æ©èœãèåãããããã«è±å¯ãªã©ã€ãã©ãªãæäŸãããŠããŸããããããå©çšããããšã§ãChatGPTã®æ©èœãæ§ç¯ããã匷åãããããããšãå¯èœã§ãã
代衚çãªã©ã€ãã©ãªãšããŠã¯ãMicrosoftã®ML.NETãAccord.NETãããããããã¯æ©æ¢°åŠç¿ã®ã¿ã¹ã¯ãç°¡åã«.NETã¢ããªã±ãŒã·ã§ã³ã«çµ±åããããšãç®çãšããŠããŸãããããã®ã©ã€ãã©ãªã掻çšããããšã§ãèªç¶èšèªåŠçããã¿ãŒã³èªèãšãã£ãåŠçãå¹ççã«å®è£ ã§ããŸãã
æŽã«ããããã®ã©ã€ãã©ãªã¯ã«ã¹ã¿ã ã¢ãã«ã®éçºããµããŒãããŠããã®ã§ãç¹å®ã®ããŒãºã«åãããŠChatGPTã®AIã¢ãã«ã調æŽããéã«ã圹ç«ã¡ãŸããããã«ãããç¹åããã察話ã¢ããªã±ãŒã·ã§ã³ã®éçºã容æã«ãªããŸãã
5. ChatGPTãš.NETã®ã»ãã¥ãªãã£å¯Ÿç
ChatGPTãçµã¿èŸŒãã .NETã¢ããªã±ãŒã·ã§ã³ã¯ãå人æ å ±ãéèŠãªããŒã¿ãæ±ããããã»ãã¥ãªãã£å¯Ÿçãéåžžã«éèŠã§ããé©åãªã»ãã¥ãªãã£æ§ç¯ãšéçšç®¡çã¯ãã¢ããªã±ãŒã·ã§ã³ãšæçµãŠãŒã¶ãŒã®äž¡æ¹ãä¿è·ããŸãã
ã»ãã¥ãªãã£ã®åŒ·åã¯ããã ã·ã¹ãã ãç£èŠããã ãã§ã¯äžååã§ããéçºæ®µéãã補åã®ãªãªãŒã¹ããããŠãç¶ç¶çãªã¡ã³ããã³ã¹ã«è³ããŸã§ãã»ãã¥ãªãã£ã¯çµ¶ããèæ ®ãããã¹ãã§ãã
以äžã®ã»ã¯ã·ã§ã³ã§ã¯ã.NETç°å¢ã«ãããChatGPTçµ±åã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£å¯Ÿçã玹ä»ããŸãããããã®ãã©ã¯ãã£ã¹ãé©çšããã»ãã¥ã¢ãªãœãªã¥ãŒã·ã§ã³ãæäŸããããã®åºç€ãç¯ããŸãããã
5.1 ããŒã¿ã®ãã©ã€ãã·ãŒä¿è·
ChatGPTã®ãããªAIæè¡ã¯ããŠãŒã¶ãŒããã®ããŸããŸãªå ¥åã«å¿ããŠåŠç¿ããŸãããã®ãããããŒã¿ã®ãã©ã€ãã·ãŒä¿è·ã¯éåžžã«éèŠãããŸããæ床ã®é«ãããŒã¿ã¯å³æ Œã«ç®¡çããäžèŠãªããŒã¿ã®åéã¯é¿ããã¹ãã§ãã
ææ°ã®æå·åæè¡ãå©çšããããšã§ãããŒã¿ã¹ãã¬ãŒãžãšããŒã¿äŒéæã®äž¡æ¹ã§ããŒã¿ã®ãã©ã€ãã·ãŒã確ä¿ã§ããŸããããŒã¿ã®æå·åã¯ãããŒã¿ãäžæ£ã¢ã¯ã»ã¹ãããå Žåã§ãããã®å 容ãèªã¿åãããªãããã«ããããã®ç¬¬äžé²ç·ã§ãã
ãŸããããŒã¿ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ãé©åã«æ§æããã¢ã¯ã»ã¹ãã°ã®å®æçãªç£æ»ãè¡ãããšã§ãå éšããã®ããŒã¿æŒæŽ©ã®ãªã¹ã¯ãæžããããšãå¯èœã§ããããŒã¿ã®æŽåæ§ãšæ©å¯æ§ãç¶æããããšãã«ã®ãšãªããŸãã
5.2 APIéä¿¡ã®ã»ãã¥ãªãã£
.NETã¢ããªã±ãŒã·ã§ã³ãšChatGPTã®éã§è¡ãããAPIéä¿¡ã¯ãã»ãã¥ãªãã£äžã®åŒ±ç¹ã«ãªãåŸãŸãããã®éä¿¡ã¯ããã°ãã°éèŠãªæ å ±ãå«ãããã第äžè ã«ãã劚害ãããŒã¿ã®æŒæŽ©ãé²ããŸãããã
HTTPSã䜿çšããå®å šãªéä¿¡ã®ç¢ºç«ã¯åºæ¬äžã®åºæ¬ã§ããæå·åããããã£ãã«ãä»ããŠã®ã¿ããŒã¿ãéåä¿¡ããããšã§ãäžéè æ»æã®ãªã¹ã¯ãäœæžããŸãã
APIã®ãšã³ããã€ã³ãã«ã¯ãé©åãªèªèšŒãšèªå¯ã®æ©æ§ãå®è£ ããããšãå¿ èŠã§ããäŸãã°ãOAuthãªã©ã®ã»ãã¥ã¢ãªèªèšŒãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãäžæ£ãªã¢ã¯ã»ã¹ãå¹æçã«é²æ¢ããŸãã
5.3 ãŠãŒã¶ãŒèªèšŒãšã¢ã¯ã»ã¹ç®¡ç
ãŠãŒã¶ãŒèªèšŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ãç¶æããããã®æãéèŠãªèŠçŽ ã®äžã€ã§ãããŠãŒã¶ãŒãæ¬äººã§ããããšã確èªããé©åãªæš©éãäžããããšã¯ãã»ãã¥ãªãã£ã確ä¿ããäžã§äžå¯æ¬ ã§ãã
.NETã¢ããªã±ãŒã·ã§ã³ã¯ãIdentity FrameworkãAzure Active Directoryãªã©ã®æ©èœã䜿çšããŠã匷åãªèªèšŒã·ã¹ãã ãå®è£ ã§ããŸãããããã®ã·ã¹ãã ãçšããããšã§ããã¹ã¯ãŒãããªã·ãŒã®åŒ·åãäºèŠçŽ èªèšŒãç°åžžãªã¢ã¯ã»ã¹ã®æ€ç¥ãšãã£ãè€å±€çã»ãã¥ãªãã£å¯Ÿçãå¯èœã«ãªããŸãã
ããã«ãæå°éã®æš©éååïŒPrinciple of Least PrivilegeïŒã«åŸãããŠãŒã¶ãŒã«ã¯å¿ èŠæäœéã®ã¢ã¯ã»ã¹æš©ã®ã¿ãä»äžããŸããããã«ãããäžãäžã®ã¢ã«ãŠã³ã䟵害ããã®åœ±é¿ãæããããŸãã
5.4 ã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ãã¹ã
éçºããã»ã¹ã®æ©ã段éããã»ãã¥ãªãã£ãã¹ããè¡ãããšã¯ãå®å šãªã¢ããªã±ãŒã·ã§ã³ãå®çŸããäžã§æ¥µããŠéèŠã§ãããã¹ãã¯ãé ããè匱æ§ãç¹å®ããä¿®æ£ããæ©äŒãæäŸããŸãã
éçã³ãŒã解æïŒSASTïŒãåçã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ãã¹ãïŒDASTïŒãè¡ããã³ãŒãã¬ãã«ã§ã®è匱æ§ãäºåã«ç¹å®ããŸãããããã®ããŒã«ã¯ãã»ãã¥ãªãã£éåã®å¯èœæ§ãããã³ãŒããã¿ãŒã³ãæ€åºããä¿®æ£ãä¿ããŸãã
ãŸããå®æçãªãããã¬ãŒã·ã§ã³ãã¹ããéããŠãã¢ããªã±ãŒã·ã§ã³ãå€éšããã®æ»æã«å¯ŸããŠååã«å ç¢ã§ããããæ€èšŒããŸãããããã®ãã¹ãã¯å°éçãªç¥èãå¿ èŠãšããããšãå€ããããã»ãã¥ãªãã£ã®å°é家ãšã®ååãæãŸããã§ãã
6. ChatGPTãçšãããŠãŒã¹ã±ãŒã¹ãšæé©åæŠç¥
ChatGPTã®çµ±åã¯ããŠãŒã¶ãŒã®ã€ã³ã¿ã©ã¯ãã£ããªçµéšãé«ããã ãã§ãªããããžãã¹ããã»ã¹ãèªååããããã®èå³æ·±ãå¯èœæ§ãç§ããŠããŸãããã®èšäºã§ã¯ãC#ãå©çšããŠChatGPTãæ倧éã«æŽ»çšããããã®ãå®è·µçãªãŠãŒã¹ã±ãŒã¹ããæé©åæŠç¥ãŸã§ãã玹ä»ããŸããChatGPTã®é©æ°çãªæŽ»çšæ¹æ³ãèŠã€ããããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ã®åäžãå³ããç¶ç¶çãªæ¹åãç¹ã蟌ãããšã«ããã競äºåãé«ããããšãã§ããŸãã
6.1 C#ãšChatGPTãçµã¿åããããŠãŒã¹ã±ãŒã¹
C#ãšChatGPTã®çµã¿åããã¯ãç¹ã«ã«ã¹ã¿ããŒãµãŒãã¹ãæè²ãèªåã³ãŒãã£ã³ã°æ¯æŽãªã©ã®åéã§äŸ¡å€ãçã¿åºããŠããŸããã«ã¹ã¿ããŒãµããŒãã«çµã¿èŸŒãã°ã顧客ããã®åãåããã«å¯ŸããŠãªã¢ã«ã¿ã€ã ã§å¯Ÿå¿ããC#ããŒã¹ã®ã·ã¹ãã ã§å¹ççãªåé¡è§£æ±ºãå®çŸã§ããŸãããŸããæè²åéã§ã¯ãåŠç¿ã³ã³ãã³ããžã®å¯Ÿè©±åŒã¢ã¯ã»ã¹ãæäŸããå®åçãªè³ªåã«å¯ŸããŠäžè²«ããåçãæäŸããããšãå¯èœã§ãã
ãœãããŠã§ã¢éçºã«ãããŠã¯ãChatGPTãå©çšããŠã³ãŒãã¹ããããçæããã°ä¿®æ£ã®ææ¡ãããã«ã¯éçºè éã®ç¥èå ±æãè¡ã質åå¿çã·ã¹ãã ãæ§ç¯ã§ããŸããC#ã§éçºããããããã®ã·ã¹ãã ã¯ãIDEãéçºããŒã«ã®æ¡åŒµãšããŠçµ±åãããéçºããã»ã¹ã®èªååãšå¹çåãæšé²ããŸãã
èªååããŒã«ãšããŠã®å¿çšã§ã¯ãC#ã¢ããªã±ãŒã·ã§ã³å ã§ChatGPTã䜿çšããŠæ¥åãããŒãèªååããããšãã°ææžäœæã®ã¢ã·ã¹ããããŒã¿å ¥åã®èªååãªã©ãæéã®ãããã¿ã¹ã¯ã軜æžããããšãã§ããŸãããããã®ãŠãŒã¹ã±ãŒã¹ã¯ãçµç¹ã®çç£æ§åäžã«å¯ŸããŠæå¹ãªåœ¹å²ãæãããŸãã
6.2 ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã®ãã€ã³ã
ChatGPTãšC#ãçµã¿åãããã·ã¹ãã ã®ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã¯ããŠãŒã¶ãŒäœéšãåäžãããããã«å¿ é ã§ããå¹æçãªããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãå³ãããã«ã¯ããªãœãŒã¹å©çšã®ç£èŠãšåæããå§ããŸããããã¡ã¢ãªäœ¿çšéãCPU䜿çšçãã¬ã¹ãã³ã¹ã¿ã€ã ã®æž¬å®ãè¡ããããã«ããã¯ãšãªã£ãŠããé åã®ç¹å®ãéèŠã§ãã
ãŸããéåæããã°ã©ãã³ã°ã®å®è·µã¯ãC#ã¢ããªã±ãŒã·ã§ã³ã«ãããŠãã«ãã¿ã¹ã¯åŠçãæé©åããã¹ã¬ããã®éå°äœ¿çšãé¿ããããšãã§ããŸããéåæã¡ãœãããå°å ¥ããããšã§ãChatGPTã®ãªã¯ãšã¹ãåŠçæã«ããããã³ã°ãæžãããªããå¹çãé«ããããšãå¯èœã«ãªããŸãã
ããã«ããã£ãã·ã¥æŠç¥ã®å°å ¥ãããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã«ã¯æ¬ ãããŸããããã°ãã°ã¢ã¯ã»ã¹ãããããŒã¿ãèšç®çµæããã£ãã·ã¥ã«ä¿æããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®ã¬ã¹ãã³ã¹æ§èœãæ¹åããå€éšAPIåŒã³åºãã«äŒŽããªãŒããŒãããã軜æžã§ããŸãã
6.3 ã¹ã±ãŒãªã³ã°ãšè² è·åæ£ã®ãã¯ããã¯
ã·ã¹ãã ã®éèŠãé«ãŸãã«ã€ããŠãã¹ã±ãŒãªã³ã°ãšè² è·åæ£ãäžå¿çãªåœ¹å²ãæ ããŸãããšã³ããŠãŒã¶ãŒã«å¯ŸããŠäžè²«ããã¬ã¹ãã³ã¹ã¿ã€ã ãæäŸããããã«ãæ°Žå¹³ã¹ã±ãŒãªã³ã°ãè¡ããè€æ°ã®ãµãŒããŒã«è² è·ãåæ£ãããããšãå¹æçã§ããããã«ãããåäžã®ãµãŒããŒã«éå°ãªè² è·ããããããšãé²ããããå€ãã®ãŠãŒã¶ãŒãªã¯ãšã¹ããåŠçããããšãã§ããŸãã
Load Balancerã®æŽ»çšãå¿ èŠã§ããããã¯å ¥ã£ãŠãããªã¯ãšã¹ããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒéã§é©åã«åé ããã·ã¹ãã å šäœã®åŠçèœåãæ倧åããŸããããã«ãC#ã¢ããªã±ãŒã·ã§ã³ã§ã®ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®æ¡çšã¯ãåã ã®ãµãŒãã¹ãç¬ç«ããŠã¹ã±ãŒãªã³ã°ããããšãå¯èœã«ããæè»ãªãªãœãŒã¹ç®¡çãä¿é²ããŸãã
è² è·åæ£ã®ãã¯ããã¯ãšããŠããã¥ãŒããŒã¹ã®ããŒãã¬ããªã³ã°ãæå¹ã§ããé«ããã©ãã£ãã¯ãåŠçããéã«ã¯ããªã¯ãšã¹ãããã¥ãŒãšããŠäžæçã«ä¿æãããµãŒãã¹ãå©çšå¯èœã«ãªã£ããšãã«é çªã«åŠçãããšããã¢ãããŒããåãããšãã§ããŸããããã«ãããªã¯ãšã¹ãã®çŽå€±ãé²ããã·ã¹ãã ã®å®å®æ§ãåäžãããŸãã
6.4 ç¶ç¶çãªæ¹åãšãã£ãŒãããã¯ã®åã蟌ã¿
ç¶ç¶çãªæ¹åãšã¯ãã·ã¹ãã ãå®æçã«åæãããã£ãŒãããã¯ãåºã«æ¹åãéããããã»ã¹ã§ãããŠãŒã¶ãŒããã®ãã£ãŒãããã¯ã¯ChatGPTãšC#ã®çµã¿åãããã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠãç¹ã«éèŠãªè³æºãšãªããŸãããã£ãŒãããã¯ãåéããããã補åéçºãµã€ã¯ã«ã«çµã¿èŸŒãããšã§ããŠãŒã¶ãŒã«ãšã£ãŠãã䟡å€ã®é«ããœãªã¥ãŒã·ã§ã³ãæäŸããŠããããšãã§ããŸãã
æ§èœã®è¿œè·¡ãšãã°ããŒã¿ã®è§£æã«ãããå©çšãã¿ãŒã³ãé »ç¹ã«çºçããåé¡ãèå¥ããããã«åºã¥ããŠå¿ èŠãªæ¹è¯ãè¡ãããšãå¯èœã§ããäŸãã°ãç¹å®ã®åŠçãé ãããšãå€æããå Žåããã®éšåã®ã³ãŒããæé©åããããããå¹ççãªã¢ã«ãŽãªãºã ãžã®çœ®ãæããæ€èšãã¹ãã§ãããã
ãããã¯ãã®ã©ã€ããµã€ã¯ã«ã«ãããŠã¯ãCI/CDïŒç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ã»ç¶ç¶çãããã€ã¡ã³ãïŒã®ãã©ã¯ãã£ã¹ãå®æœããããšã§ãå®æçã«æ°ããæ©èœãè¿œå ãæ¹åãå®æœã§ããŸããéçºã®èªååã¯ãããé«å質ã§å®å®ãããœãããŠã§ã¢ãªãªãŒã¹ãå¯èœã«ããåžå Žã®å€åã«å¯Ÿå¿ããã¢ãžãªãã£ãé«ããŸãã