ã¯ããã«
ãååã¯ãifæå°çã®è§£æ±ºçãšããŠãã€ã³ã¿ãŒãã§ãŒã¹ã䜿ã£ãã¹ãã©ããžãŒãã¿ãŒã³ãåŠã³ãŸããã第2åã®ããŒãã¯ãç»é¢åçµãã§ãã
ããã¿ã³ãæŒãããç»é¢ãåºãŸã£ãŠãå¿çãªããââãã¹ã¯ãããã¢ããªãäœã£ãŠãããšãäžåºŠã¯ã¶ã€ããåé¡ã§ããåå ã®å€ãã¯ãæéã®ãããåŠçãåæçã«å®è¡ããŠããŸã£ãŠããããšãããã§ç»å Žããã®ããC#ã®async/awaitãšããéåæåŠçã®ããã¿ã§ãããšã¯ãããå
¥éæžãèªãã ã ãã§ã¯ãasync/awaitãèŠãŠãçµå±ãªã«ãèµ·ããŠãããå€ç¶ãšããªããã¢ã€ã¢ã€ãã人ãå€ãã§ãããã
ãä»åããAIãšã®å¯Ÿè©±ãéããŠããã®ã¢ã€ã¢ã€ãæ»ç¥ããŠãããŸããããååãšåæ§ãããã¹ãã®åçäŸã¯äž»ã«ChatGPTãå³è§£ã®çæã«ã¯Geminiãšãç»åã¢ãã«ãå·æ°ãããChatGPTã䜿çšããŠããŸãã
ãŸãã¯ã³ãŒããèŠããŠãäœãåé¡ïŒããšèã
ãããªãã¯ã倩æ°äºå ±ã衚瀺ãããã¹ã¯ãããã¢ããªãäœã£ãŠããŸãããã¿ã³ãæŒããšWeb APIããäºå ±ããŒã¿ãååŸããŠç»é¢ã«è¡šç€ºãããã·ã³ãã«ãªã¢ããªã§ãã
private static readonly HttpClient _httpClient = new();
// ãã¿ã³ã¯ãªãã¯æã®åŠç
private void Button_Click(object sender, EventArgs e)
{
// Web APIããäºå ±ããŒã¿ãååŸïŒæéããããïŒ
string result = GetWeatherData();
label.Text = result;
}
private string GetWeatherData()
{
// APIã®å¿çãåŸ
ã£ãŠããéãç»é¢ãåºãŸã
string json = _httpClient.GetStringAsync("https://api.example.com/weather").Result;
return json;
}
ãäžèŠåããããªã³ãŒãã§ãããå®è¡ãããšããã¿ã³ãæŒããç¬éã«ç»é¢ãåºãŸããŸããAPIã®å¿çãè¿ããŸã§ããŠã£ã³ããŠããã©ãã°ããããšããã§ããŸããã
AIã«åé¡ç¹ãèã
ãååãšåãããã«ããã£ãšãåé¡ã«ãªããããªããšãã²ãšã€ã«çµã£ãŠèããŸãã
次ã®C#ã³ãŒãïŒWindows Formsã¢ããªïŒãèŠãŠãã ããããã¿ã³ãæŒããšç»é¢ãåºãŸã£ãŠããŸããŸãããã£ãšãåé¡ã«ãªããããªããšãã²ãšã€æããŠãã ããã
ïŒããã»ã©ã®ã³ãŒãããã®ãŸãŸå
¥åïŒ
ãChatGPTã§ã¯ã次ã®ãããªåçã§ããã
ãã£ãšãåé¡ãªã®ã¯ãUIã¹ã¬ãããåæçã«æ¢ããŠããããšã§ãã
Button_Click 㯠Windows Forms ã®UIã¹ã¬ããã§åããŸããããã®äžã§ GetWeatherData() ãåŒã³ãããã«ãã®äžã§ GetStringAsync(...).Result ã䜿ã£ãŠãããããAPIã®å¿çãè¿ããŸã§UIã¹ã¬ããããã£ãšåŸ
ããããŸãã
çŽãæ¹åã¯ãåæåŸ
ã¡ããã㊠async/await ã«ããããšã§ãã
ïŒä»¥äžãç¥ïŒ
ãAIã¯ãUIã¹ã¬ãããšããèšèã䜿ã£ãŠèª¬æããŠãããŸãããå°ããããã«ããã®ã§ãããã«èããŠã¿ãŸãããã
ããã£ãšããããããããšæ·±æããã
ãæè¡çšèªã®ã¢ã€ã¢ã€ã¯ãããšã話ã«å€æããŠããã£ãŠè§£æ¶ããŸãããã
ãUIã¹ã¬ãããåæçã«æ¢ããŠããããšã¯ã©ãããããšã§ããïŒ èº«è¿ãªå Žé¢ã«ããšããŠèª¬æããŠããããŸããïŒ
ãChatGPTã§ã¯ãã«ãã§ã§ããšããŠãããŸããïŒé©å®èŠçŽããŠããŸãïŒãæå ã®AIã§ã詊ããŠã¿ãŠãã ãããã¬ã¹ãã©ã³ãã³ã³ãããªã©ãå¥ã®ããšããè¿ã£ãŠããããšããããŸãã
åºå¡ïŒUIã¹ã¬ãããããªããã³ãŒããŒïŒæéã®ãããåŠçïŒWeb APIïŒã
客ãããã³ãããªããã§ãé¡ãããŸãããšæ³šæãåºå¡ã¯èªåã§ã³ãŒããŒãã»ããããæœåºãçµãããŸã§ãã®å Žã§ãã£ãšèŠãŠããããã®éã¯æ¬¡ã®å®¢ã®æ³šæãã¬ãžãæ¢ãŸããåºå
šäœãæ¢ãŸã£ãããã«èŠããââããããUIã¹ã¬ãããåæçã«æ¢ããŠããç¶æ
ã§ãã
ãåºãæ¢ããªãã«ã¯ã©ãããã°ããã®ã§ãããïŒ ç¶ããŠAIã«èããŠã¿ãŸãã
ã§ã¯ãåºãæ¢ãŸããªãããã«ããã«ã¯ãã©ãããã°ããã§ããïŒ
ãChatGPTã§ã¯ã次ã®ãããªåçã§ããïŒé©å®èŠçŽããŠããŸãïŒã
åºå¡ïŒïŒUIã¹ã¬ããïŒãããªããã®æœåºãå¥ã®ããªã¹ã¿ã«ä»»ããããšããã®åŸã¯æ¬¡ã®å®¢ã®æ³šæãã¬ãžã«æ»ããæœåºãçµãã£ããæ»ã£ãŠããŠåãåãââãã®âåŸ
ã£ãŠããéã«æ¢ãŸããªãâã®ããéåæïŒasynchronousïŒãã§ããC#ã®async/awaitã¯ããã®åããã³ãŒãã§å®çŸããããã¿ã§ãã
ãèšèã ãã ãšã¡ãã£ãšãããã«ããã§ããããããã§ãå³è§£ã«ããŠã¿ãŸããããGeminiïŒæèã¢ãŒãïŒã«ãäŸé ŒããŠã¿ãŸãã
ã«ãã§ã®ã¬ãžã«ãŠã³ã¿ãŒã®ããšãã䜿ã£ãŠããåæåŠçïŒç»é¢ãåºãŸãå ŽåïŒããšãéåæåŠçïŒç»é¢ãåºãŸããªãå ŽåïŒãã®éãããããå³è§£ãã·ã³ãã«ãªã€ã©ã¹ãã§äœæããŠãã ããã2ã€ã®å³ãäžäžã«äžŠã¹ãŠæ¯èŒããŠãã ããã
ãGeminiãªããæ¬¡ã®ãããªå³ã«ãªããŸããã
ãäžç®çç¶ã§ãããäžïŒåæåŠçïŒã¯ã¬ãžæ åœãèªåã§ã³ãŒããŒãæ·¹ããŠã¬ãžãæ¢ãŸããäžïŒéåæåŠçïŒã¯ããªãããããªã¹ã¿ã«ä»»ããŠã¬ãžãåããŠããŸãã
ãã³ãŒãã§æžããšã©ããªãïŒããšAIã«çæããã
ãå³è§£ã§ã€ã¡ãŒãžãã€ãããã®ã§ã次ã¯ã³ãŒããèŠãŠã¿ãŸãããããããŸã§ã®å¯Ÿè©±ã§AIãæããŠãããasync/awaitããå ·äœçã«ã©ãæžãããã®ãã確ãããŸãã
ã³ãŒããçæããã
ã第1åãšåãããã«ãæå°éã®ã³ãŒãã§æ¹åããŠããããŸãã
æåã®åé¡ã³ãŒãããasync/awaitã䜿ã£ãŠç»é¢ãåºãŸããªãããã«æ¹åããŠãã ãããæå°éã®ã³ãŒãã§ãé¡ãããŸãã
ãChatGPTã§ã¯ã次ã®ãããªã³ãŒããçæããŠãããŸããã
private static readonly HttpClient _httpClient = new();
// ãã¿ã³ã¯ãªãã¯æã®åŠçïŒUIã¹ã¬ããã§å®è¡ãããïŒ
private async void Button_Click(object sender, EventArgs e)
{
// await ã䜿ãããšã§ã
// ããã§äžæŠåŠçãäžæããçµæãè¿ã£ãŠãããç¶ããå®è¡ã§ãã
string result = await GetWeatherDataAsync();
// await ã®åŸã¯ãå
ã®UIã¹ã¬ããã«æ»ã£ãŠããã®ã§å®å
šã«UIïŒlabelïŒãæŽæ°ã§ãã
label.Text = result;
}
// 倩æ°ããŒã¿ãéåæã§ååŸããã¡ãœãã
private async Task<string> GetWeatherDataAsync()
{
// éåæã§HTTPãªã¯ãšã¹ããéã
// ãã®æç¹ã§ãéä¿¡äžããšãã Task ãè¿ã
// await ã«ãã£ãŠãéä¿¡å®äºãŸã§åŸ
ã€ããUIã¹ã¬ããã¯ãããã¯ããªã
return await _httpClient.GetStringAsync("https://api.example.com/weather");
}
async/await/Taskãšã«ãã§ã®å¯Ÿå¿é¢ä¿ã確èªãã
ãçãã³ãŒãã§ãããasyncãawaitãTask
ãã®ã«ãã§ã®ããšãã§ãC#ã®asyncãawaitãTaskã¯ããããäœã«å¯Ÿå¿ããŸããïŒ
ãChatGPTã§ã¯ã次ã®ãããªåçã§ããïŒé©å®èŠçŽããŠããŸãïŒã
Task â ãã³ãŒããŒãã§ãããŸã§ã®âé²è¡äžã®æ³šæâã
async â ããã®åºå¡ã¯âãªããäœæ¥ã§ãã人âã§ããããšãã宣èšã
await â ããã®æ³šæãã§ããããã¿ã€ãã³ã°ã§åãåãã
ã»TaskïŒãŸã 宿ããŠããªãã³ãŒããŒã®â泚æç¥šâã§ããçµæïŒã³ãŒããŒïŒã¯ãŸã ãªãããã©ããé²è¡äžããšããç¶æ
ã¯æã£ãŠããã
ã³ãŒãã§ãããšïŒTask<string> task = GetWeatherDataAsync();
ã»asyncïŒããã®åºå¡ã¯ãåŸ
ã¡æéã«ä»ã®ä»äºãããŸãããšããåãæ¹ã®å®£èšãã³ãŒããŒæœåºäžã«ããŒã£ãšãããæ¬¡ã®å®¢ã®æ³šæãåã£ãããã¬ãžãåããããããŸãã
ã³ãŒãã§ãããšïŒasync Task<string> GetWeatherDataAsync()
ã»awaitïŒãã³ãŒããŒãã§ããã¿ã€ãã³ã°ã§ãã¡ãããšåãåããåããããªããéå§ïŒTaskçºè¡ïŒâä»ã®å®¢ã®å¯Ÿå¿âã§ãããã£ãç¬éã«æ»ã£ãŠããŠåãåãããšããæµãã§ãã
ã³ãŒãã§ãããšïŒstring result = await GetWeatherDataAsync();
ãasyncã®ããªããäœæ¥ã§ããããšããã®ã¯ãããªãããèŠå®ãã®ã§ã¯ãªããããªããããŸãããŠãã§ãããawaitã§åãåãããšããããã§ããã
æ¹ååãšæ¹ååŸãæ¯èŒãã
ã察å¿é¢ä¿ãã€ããããšããã§ãæ¹ååã®ã³ãŒããšèŠæ¯ã¹ãŠã¿ãŸããããã©ããå€ãã£ãã®ããæ£ç¢ºã«æŒãããŠãããããšããã§ãã
æ¹ååã®ã³ãŒããšæ¹ååŸã®ã³ãŒãã§ãäœãå€ãããŸãããïŒ å€æŽç¹ãšãåŠçã®æµããã©ãå€ãã£ãã®ããæç³»åã§æ¯èŒããŠèª¬æããŠãã ããã
ãChatGPTã§ã¯ã次ã®ãããªåçã§ããã
ã³ãŒãã®éããäžèšã§ãããšã
æ¹åå: Result ã§ãã®å Žã«ç«ã¡æ¢ãŸã£ãŠåŸ
ã€
æ¹ååŸ: await ã§ãã£ããåŠçãè¿ããçµãã£ããç¶ãããåéãã
ã§ãã ïŒä»¥äžãæç³»åã®åçïŒ
ã·ãŒã±ã³ã¹å³ãäŸé Œãã
ãæç« ã ãã§ã¯ãã³ãšããªãã®ã§ãæ¹ååŸã®ã³ãŒãã®åŠçã®æµããèŠèŠçã«ç¢ºèªããŠã¿ãŸããããå ã»ã©ã®ã³ãŒããAIã«èŠããäžã§ãã·ãŒã±ã³ã¹å³ãäŸé ŒããŸãã
æ¹ååŸã®async/awaitã³ãŒãã®åŠçã®æµãããã·ãŒã±ã³ã¹å³ïŒæç³»åã®æµãå³ïŒã§æããŠãã ããã
ãGeminiïŒæèã¢ãŒãïŒã§ã¯ãMermaidèšæ³ã®ã³ãŒãã ããåºåãããŸããïŒïŒïŒãChatGPTã§ãã³ãŒããåºåãããŸããããæ¬¡ã®ãããªãã¬ãã¥ãŒç»åã衚瀺ã§ããŸããã
ïŒïŒMermaidèšæ³ããã³ãšæ¥ãªããã°ããã®ãŸãŸãMermaidèšæ³ã£ãŠäœïŒããšAIã«èããŠã¿ãŸããããããã¹ãã§å³ãæããèšæ³ã§ããããšãæããŠãããã¯ãã§ãã
ãã·ãŒã±ã³ã¹å³ãèŠããšãAPIã®å¿çãåŸ ã£ãŠããéãUIã¹ã¬ãããè§£æŸãããç»é¢ã®æäœãåãä»ããããç¶æ ã«ãªã£ãŠããããšãäžç®ã§ããããŸããã
ãšã©ãŒãã³ããªã³ã°ãèã
ããšããã§ãWeb APIã¯ãããã¯ãŒã¯ã®åé¡ã§å€±æããããšããããŸãããããªãšãã¯ã©ããªãã®ã§ããããïŒ AIã«èããŠã¿ãŸãããã
æ¹ååŸã®ã³ãŒãã§ãWeb APIã®åŒã³åºãã倱æããå Žåã¯ã©ããªããŸããïŒ ãšã©ãŒãåŠçããã«ã¯ã©ãæžãã°ããã§ããïŒ
ãChatGPTã§ã¯ã次ã®ãããªåçã§ããã
æ¹ååŸã®ã³ãŒãã§ã¯ãWeb APIåŒã³åºãã«å€±æãããšãawait _httpClient.GetStringAsync(...) ã®ãšããã§äŸå€ãçºçããŸãã
ä»åã®åœ¢ã ãš Button_Click 㯠async void ãªã®ã§ãããã§äŸå€ãæãŸããªããšãã¢ããªåŽã§ã¯ãã€ãã³ãåŠçäžã®æªåŠçäŸå€ãã«ãªã£ãŠããŸããŸããç¹ã« async void ã®äŸå€ã¯éåžžã«åä»ã§ããšã©ãŒãã°ããæ®ããã«ã¢ããªããããªã匷å¶çµäºããŠããŸãããšããããŸãããªã®ã§ãã€ãã³ããã³ãã©åŽã§å¿
ã try-catch ããã®ãåºæ¬ã§ãã
ããããŠæ¬¡ã®ãããªã³ãŒãã瀺ããŠãããŸããã
private async void Button_Click(object sender, EventArgs e)
{
try
{
string result = await GetWeatherDataAsync();
label.Text = result; // æåãããç»é¢ã«è¡šç€º
}
catch (Exception ex)
{
label.Text = "å€©æ°æ
å ±ã®ååŸã«å€±æããŸãã";
MessageBox.Show(ex.Message, "ãšã©ãŒ");
}
}
ããµã ãã®try-catchããã®ãŸãŸäœ¿ããã®ã¯å®å¿ã§ãã
ãããããã¹ãšãã®å¯ŸåŠæ³
ãasync/awaitã®åºæ¬ãããã£ããšããã§ãååŠè ããããã¡ãªãã¹ãAIã«èããŠã¿ãŸãããã
C#ã®async/awaitã§ãåå¿è
ããããã¡ãªãã¹ã3ã€æããŠãã ãããããããããªãåé¡ãªã®ããæããŠãã ããã
ãChatGPTã§ã¯ã次ã®ãããªåçã§ããïŒé©å®èŠçŽããŠããŸãïŒã
C#ã®async/awaitã§åå¿è
ããããã¡ãªãã¹ã¯ããšãã«æ¬¡ã®3ã€ã§ãã
1. asyncãä»ããã®ã«awaitããªã
GetWeatherDataAsync(); ã®ããã«awaitãæžãå¿ãããšãéä¿¡ãçµããåã«æ¬¡ã®è¡ãžé²ãã§ããŸããlabel.Textã空ã®ãŸãŸã«ãªããŸããããªãããæ³šæããã®ã«ãã§ãããããåŸ
ããã«ãåãåãå®äºããšèšã£ãŠããç¶æ
ã§ããã
2. async voidãä¹±çšãã
async voidã¯ã€ãã³ããã³ãã©ïŒButton_Clickãªã©ïŒå°çšãšèãããšå®å
šã§ããéåžžã®éåæã¡ãœããã¯ãå®äºãåŸ
ãŠãããã«async TaskïŒasync Task<T>ãè¿ããŠãã ããã
3. .Resultã.Wait()ã§åæçã«ãããã¯ãã
string result = GetWeatherDataAsync().Result; ã®ããã«ç¡çããåŸ
ã€ãšãUIã¹ã¬ãããæ¢ããŠç»é¢ã®ããªãŒãºããããããã¯ã® åå ã«ãªããŸããåºæ¬ã¯ string result = await GetWeatherDataAsync(); ã®ããã«awaitã§åŸ
ã¡ãŸãããã
async/awaitã§ã¯ãã©ãã§èªç¶ã«åŸ
ã€ãããæèããããšã倧åã§ãã
ããŸãã¯1ã€ç®ãš2ã€ç®ã®ãã¹ã«ã€ããŠãããã¡ãã£ãšã€ã£ããã§èããŠã¿ãŸãããã
ããã»ã©ã®ãawaitãæžãå¿ããããasync voidãä¹±çšãããã«ã€ããŠãããå°ãè£è¶³ããŠãã ããã
ã»æ»ãå€ãåãåããã«åŒã³åºããšã©ããªããŸããïŒ ã³ã³ãã€ã©ã¯æããŠãããŸããïŒ
ã»async voidããã€ãã³ããã³ãã©å°çšããšèšãããã®ã¯ãªãã§ããïŒ
ãChatGPTã§ã¯ã次ã®ãããªåçã§ããïŒé©å®èŠçŽããŠããŸãïŒã
æ»ãå€ãåãåããã«åŒã³åºããšã©ããªããïŒ
Task<string>ãè¿ãã¡ãœããã®æ»ãå€ãstringãšããŠåãåãããšãããšãã³ã³ãã€ã«ãšã©ãŒã«ãªããŸãïŒstring result = GetWeatherDataAsync();ïŒãæ£ããã¯awaitããŠäžèº«ã®stringãåãåºããŸãïŒstring result = await GetWeatherDataAsync();ïŒã
æ»ãå€ããŸã£ããåãåããã« GetWeatherDataAsync(); ãšã ãæžããšã³ã³ãã€ã«ã¯éããŸãããCS4014ã®èŠåãããã®åŒã³åºãã¯åŸ
æ©ãããªããããå®äºãåŸ
ããã«æ¬¡ãžé²ã¿ãŸãããšæããŠãããŸããéä¿¡ã®ããã«çµæãå¿
èŠãªåŠçã§ã¯ãåºæ¬çã«awaitããŸãããã
async voidãã€ãã³ããã³ãã©å°çšãšèšãããçç±ïŒ
Windows Formsã®ãã¿ã³ã¯ãªãã¯ã€ãã³ã㯠void æ»ãå€ãèŠæ±ãããããTaskãè¿ãããããã ãã¯äŸå€çã«async voidã䜿ããŸãã
éåžžã®éåæã¡ãœãããasync voidã«ãããšåŒã³åºãå
ãawaitã§ããªããªãã®ã§ãã€ãã³ããã³ãã©ã¯async voidããã以å€ã¯async TaskïŒasync Task<T>ãšèŠããŠãããšããã§ãããã
ãã³ã³ãã€ã©ãèŠåãåºããŠãããããšããã®ã¯å¿åŒ·ãã§ãããèŠåã¯ãawaitå¿ãã®ãµã€ã³ãšèšãããã§ãã
ãããããã¯ã®åå ãå³è§£ããã
ãå ã»ã©ã®ãããããã¹ã§ã.Resultã䜿ããšãããããã¯ãèµ·ããããšãããããšãã話ããããŸãããå ·äœçã«ã¯ã©ãããç¶æ³ã§ããªããããªããšãèµ·ããã®ã§ãããããã«ãã§ã®ããšãã§èããŠã¿ãŸãããã
.Resultã䜿ããšãããããã¯ãèµ·ããå Žåããããšã®ããšã§ããããªããããããã¯ãèµ·ããã®ããã«ãã§ã®ããšãã§èª¬æããŠããããŸããïŒ
ãChatGPTã§ã¯ã次ã®ãããªåçã§ããïŒé©å®èŠçŽããŠããŸãïŒã
.Resultã§ãããããã¯ãèµ·ããçç±ã¯ãã«ãã§ã®ããšãã§èãããšã€ã¡ãŒãžããããã§ãã
string result = await GetWeatherDataAsync(); ãªãã¬ãžæ
åœïŒUIã¹ã¬ããïŒã¯ãã£ããæã空ããã§ããããã«æ»ã£ãŠããŸãã
ãšããããstring result = GetWeatherDataAsync().Result; ãšæžãããšãããã¬ãžæ
åœã¯ãçµæãè¿ããŸã§èªåã¯å®å
šã«æ¢ãŸããŸãããšå®£èšããç¶æ
ã«ãªããç»é¢ã®æŽæ°ãã¯ãªãã¯å¯Ÿå¿ãã§ããŸããã
ããã«ãéåæåŠçãçµãã£ãããšã¯awaitã®ç¶ããUIã¹ã¬ããã«æ»ããŠåŠçãããââããšãã°ååŸãã倩æ°ãlabel.Textã«è¡šç€ºããåŠçââãšããããUIã¹ã¬ããã¯.Resultã§æ¢ãŸã£ããŸãŸã
ã€ãŸãã
ã»ã¬ãžæ
åœã¯ãããªã¹ã¿ã®å®äºãåŸ
ã£ãŠãã
ã»ããªã¹ã¿ã¯ãã¬ãžæ
åœã空ãã®ãåŸ
ã£ãŠãã
ãšããçžäºåŸ
ã¡ã§ããããããããããã¯ããšã©ãŒãåºãç»é¢ãåºãŸãã ããªã®ã§ãæ°ã¥ãã«ããã®ãåä»ã§ãã
Windows Formsã§ã¯.Resultã.Wait()ã§æ¢ãããåºæ¬ã¯awaitââã¬ãžæ
åœãæ¢ããªãããéåã§ããã
ããããããã¯ãšã¯ãUIã¹ã¬ããã®åºå¡ããèªåã§èªåã®åž°ãéããµããã§ããŸããããªãã®ã§ãããå³è§£ã§ã確èªããŠã¿ãŸãããã
ä»ã®èª¬æãå³è§£ã«ããŠãã ãããã¬ãžæ
åœãšããªã¹ã¿ããäºããåŸ
ã£ãŠããç¶æ
ããã·ã³ãã«ãªã€ã©ã¹ãã§æããŠãã ããã
ãGeminiãªããæ¬¡ã®ãããªã€ã©ã¹ãã«ãªããŸããã
ããäºããçžæãåŸ ã£ãŠããç¶æ ããäžç®ã§ããããŸãã
ãããã«
ãä»åã¯ãasync/awaitã䜿ã£ãéåæåŠçããã«ãã§ã®ããšãã§æ»ç¥ããŸãããååãšåããéåæãã¶ã€ããâããšã話âå³è§£âæ¹åã³ãŒãããšããæµãã§é²ããŸããããä»åã¯ã·ãŒã±ã³ã¹å³ã§ã®ç¢ºèªãããããããã¹ãæããŠãšãã察話ãå ããŠã¿ãŸããã
ãç¹ã«éåæåŠçã®ãããªãç®ã«èŠããªãè£åŽã®åãããææ¡ããã«ã¯ãAIã«ã·ãŒã±ã³ã¹å³ãæãããŠå¯èŠåããã¢ãããŒãã¯ãšãŠãæå¹ã§ãããæ£ããæžãæ¹ããããã£ãŠã¯ãããªãããšãããå³è§£ãšã»ããã«ããããšã§çè§£ããã£ãšæ·±ãŸããŸãã
ãæ¬¡åã¯ãããªã²ãŒããšã©ã ãåŒãåãäžããŸãããã¡ãœããã倿°ã«å
¥ããïŒããšããã¢ã€ã¢ã€ããAIãšã®å¯Ÿè©±ã§è§£æ¶ããŠãããŸãããã
WINGSãããžã§ã¯ã 髿± è³¢ïŒèïŒå±±ç°ç¥¥å¯ïŒç£ä¿®ïŒ
æéäŒç€Ÿ WINGSãããžã§ã¯ããéå¶ããããã¯ãã«ã«å·çã³ãã¥ããã£ïŒä»£è¡šå±±ç°ç¥¥å¯ïŒãäž»ã«Webéçºåéã®æžç±ïŒèšäºå·çã翻蚳ãè¬æŒçãå¹ åºãæããããçŸåšãå·çã¡ã³ããŒãåéäžãèå³ã®ããæ¹ã¯ãã©ãã©ãå¿åé ããããèæžãèšäºå€æ°ã
RSS
X:@WingsPro_infoïŒå ¬åŒïŒã@WingsPro_info/wingsïŒã¡ã³ããŒãªã¹ãïŒïŒèè ã«ã€ããŠïŒ
ããœã³ã³é»ææããããã°ã©ãã³ã°ã®é²åã远ããWebã»ã¢ãã€ã«ã»IoTã»AIãŸã§å€æ§ãªéçºçŸå Žãé§ãæããã
çŸåšãæ ªåŒäŒç€Ÿæ°è±¡å·¥åŠç ç©¶æã§æ°è±¡ÃITã®æåç·ã«ç«ã¡ã€ã€ãå·çã³ãã¥ããã£ãWINGSãããžã§ã¯ããã®ã¡ã³ããŒãšããŠæŽ»åäžã




