Slide 1

Slide 1 text

4USFBNMJUͱ'MBTLͰ͸͡ΊΔ ര଎ϓϩτλΠϐϯάͱ57๒ରࡦ ʙ"*αʔϏε্ཱͪ͛ͷ෣୆ཪʙ 4IJOJDIJ/BLBHBXB +91SFTT$PSQPSBUJPO4FOJPS&OHJOFFS +9@5&$)@5"-,1ZUIPO

Slide 2

Slide 2 text

Agenda 8IPBN* ͓લ୭Α 4USFBNMJUͰര଎ϓϩτλΠϓ։ൃ 'MBTLΛ࢖ͬͨ"*όοΫΤϯυ ("&$MPVE3VOͰ57๒Λଧͪฦ͢ ݁ͼ 1, 2, 3, 4, 5,

Slide 3

Slide 3 text

͓લ୭Α ࣗݾ঺հЋ 01

Slide 4

Slide 4 text

Who am I ? (͓લ୭Α) w 4IJOJDIJ/BLBHBXB !TIJOZPSLF w +9௨৴ࣾγχΞΤϯδχΞ w 1ZUIPO%BUB4DJFODF 
 #BDLFOE#BTFCBMM w 1Z$PO+1Ͱճ΄Ͳ⽁ͷ࿩ͯ͠·͢ w IUUQTTIJOZPSLFIBUFOBCMPHDPN

Slide 5

Slide 5 text

໺ٿͱPythonͱAI ࠷ۙͷʮ໺ٿͱ1ZUIPOͱ"*ʯͳ׆ಈ ໺ٿ"*͕બͿ50,:0ࣆ+"1"/໊ IUUQTTIJOZPSLFIBUFOBCMPHDPNFOUSZUPLZPTBNVSBJKBQBO

Slide 6

Slide 6 text

ຊ೔͸ͬͪ͜ͷAIͷ͸ͳ͠ ʮ"*ϫΫνϯ઀छ༧ଌʯͷ1P$ϩʔϯν57ʹग़Δ·Ͱͷ͸ͳ͠🐍 IUUQTKYQSFTTOFU

Slide 7

Slide 7 text

ຊ೔ͷ ͓౔࢈ w "*ϓϩδΣΫτͷ1P$͔Β 
 ຊ൪ϦϦʔε·Ͱͷ࣮࿩ͱϊ΢ϋ΢ w ͋Δ೔ಥવαʔϏε͕📺ʹग़Δʂ 
 ʜͱ͍͏࣌ͷࠓυΩͳରԠํ๏ w ͜ΕΒΛ1ZUIPO($1Ͱ 
 ͍͍ײ͡ʹ΍Δํ๏ w 1P$ϑΣʔζ4USFBNMJU w ຊ൪📺๒ରࡦ'MBTL ("&

Slide 8

Slide 8 text

࿩͞ͳ͍͜ͱ w "*ϫΫνϯ઀छ༧ଌͷϞσϧ w ࣭໰͞Εͯ΋౴͑ΒΕ·ͤΜ🙏 w ಛʹΞϧΰϦζϜͷ࿩ w ($1ͷৄ͍͠ղઆ w ("& $MPVE3VOͷ͍ܰ࿩͸͢Δ w ͕ ࢝Ίํɾৄ͍͠આ໌͸͠·ͤΜ w ϑϩϯτΤϯυपΓ w 3FBDU5ZQF4DSJQUͰ͢ w ͜Ε΋("&Ͱಈ͍ͯ·͢

Slide 9

Slide 9 text

4USFBNMJUͰര଎ϓϩτλΠϓ։ൃ 02 4USFBNMJUͷઆ໌͔Β࣮ફతͳ࢖͍ํ·Ͱ

Slide 10

Slide 10 text

͸͡·Γ͸͍ͭ΋ࢥ͍͖͔ͭΒ "*ϓϩδΣΫτ͸ʮಥવͷࢥ͍͖ͭʯͰ͸͡·Δ ɾ ʮϫΫνϯ💉͍ͭ઀छͰ͖Δ͔ ͬͯؾʹͳΔΑͶʔʯˡͦΕͳ ɾ ʮσʔλͱ"*Ͱ͍͍ײ͡ʹͰ͖ΔͷͰ͸ ʯˡ͜Ε ʮಥવͷࢥ͍͖ͭʯ͔Β1P$͕͸͡·Δ ɾ ʮग़དྷͦ͏ͳਓʹ΍ͬͯ΋Β͑͹ த઒͞Μͱ͔ʯ ɾϫΠকʮϑΝ ͱΓ͋͑ͣࣾ಺Ͱ1P$͠ͳ͍ͱʯˡ͜Ε

Slide 11

Slide 11 text

ࣾ಺PoCΛ͍͍ײ͡ʹ΍Δ ٞ࿦ͷωλʹͳΔϓϩτλΠϓͷ༻ҙ͕Ϛετ ɾ͋Δఔ౓ͪΌΜͱಈ͘ϓϩτλΠϓͰٞ࿦͢΂͖಺༰ͩͬͨ ɾ͜ΕΛݶΒΕͨظؒͰಈ͘ΞϓϦͱͯ͠ఏڙ͢Δ ϓϩτλΠϓ͸OPUFCPPL͡Όͳ͍΄͏͕͍͍ ɾσʔλαΠΤϯςΟετ͸+VQZUFSOPUFCPPLͰϓϩτλΠϓ࡞Γ͕ͪ ɾ͕ͩ εςʔΫϗϧμʔ΁ͷઆಘྗͬͯҙຯͰOPUFCPPL͸ඍົ ͜͜Ͱ4USFBNMJUͰ͢ΑʢυϠإʣ

Slide 12

Slide 12 text

StreamlitͰര଎ϓϩτλΠϓ։ൃ ʲࢀߟʳσʔλαΠΤϯςΟετͷඈͼಓ۩ͱͯ͠ͷ4USFBNMJU IUUQTUFDIKYQSFTTOFUFOUSZEBUBBQQGPSTUSFBNMJU ϑΝΠϧ ߦະຬͷίʔυͰΠϯλϥΫςΟϒͳ 8FCΞϓϦ͕Ͱ͖ͪΌ͏ʂʢ)5.-͸ॻ͔ͳͯ͘0,ʣ

Slide 13

Slide 13 text

Streamlit #ͱ͸ +VQZUFSOPUFCPPLΛͦͷ·Μ·8FCΞϓϦʹͰ͖Δʂ ɾσʔλαΠΤϯςΟετ͕+VQZUFSͰ΍ͬͨ݁ՌΛ8FCʹ͢Δ΍ͭ ɾࣗ෼Ͱ)5.-ͱ͔+4ॻ͔ͳͯ͘΋ͻͱ·ͣϓϩτλΠϐϯάͰ͖Δʂ 4USFBNMJUͰϓϩτλΠϓΛ࡞Δ ɾ'PSNͰ༧ଌΛຯΘ͑ΔϓϩτλΠϓΛ4USFBNMJUͰ࣮૷ ɾ.5(ͷ࣌ʹಈ͔͠ͳ͕ΒݟͤΕ͹0,

Slide 14

Slide 14 text

ࣾ಺PoCͷ؀ڥ खݩͰ4USFBNMJUΛಈ͔͠ OHSPLܦ༝ͰΦϯϥΠϯ͓൸࿐໨

Slide 15

Slide 15 text

࣮ࡍʹ΍ͬͨ͜ͱ 4USFBNMJUͰ઀छ༧ଌϞσϧͷϓϩτλΠϓ։ൃ ɾ઀छ༧ଌϞσϧΛΠϯλʔϯੜͱઃܭ ͻͱ·ͣ+VQZUFSMBCͰ։ൃ ɾ༧ଌϞσϧͷ*'Λ੔ཧͯ͠4USFBNMJUʹॻ͖׵͑ νʔϜϝϯόʔϘʔυͷօ͞ΜʹϓϩτλΠϓ൸࿐ ɾ.5(ݶఆͰOHSPLͰϓϩΩγͯ͠৮ͬͯ΋Βͬͨ ɾˢΛճ΄Ͳ΍ͬͯޙαʔϏε։ൃ͕ܾ·ͬͨ💪

Slide 16

Slide 16 text

ϓϩτλΠϓ͔ΒϗϯτͷϓϩμΫτ΁ 'MBTLΛ࢖ͬͨ"*όοΫΤϯυ 03

Slide 17

Slide 17 text

αʔϏεͷߏ੒ ΞϓϦέʔγϣϯͷߏ੒ ɾϑϩϯτΤϯυʢ3FBDUʣͱόοΫΤϯυʢ1ZUIPOʣΛ෼͚ͯ։ൃ ɾϑϩϯτ͔ΒͷϦΫΤετͰίϯςϯπΛฦ͢3&45GVMతͳ ϓϩμΫτશମͷߏ੒ ɾߴෛՙରࡦΛָʹ΍Γ͍ͨख͔͚ؒͨ͘ͳ͍ ɾ("&ʢ(PPHMF"QQ&OHJOF͕ʣ͋Δ͡ΌΜʂˡ͜Ε ɾ࠷ऴతʹ͸("&Ұ෦αʔϏεΛ$MPVE3VOʹ

Slide 18

Slide 18 text

ΞʔΩςΫνϟͷશମ૾ ϑϩϯτΤϯυͱόοΫΤϯυ͕("& 
 Ұ෦αʔϏεʢ0(1ը૾ੜ੒ʣΛ$MPVE3VO

Slide 19

Slide 19 text

όοΫΤϯυ։ൃ ݴޠ͸1ZUIPOറΓ ɾ઀छ༧ଌϞσϧΛ1ZUIPOͰॻ͍ͨͷͰಉ͡ݴޠ͕͍͍ ɾ(P΍3VTUͰ΍Δ΄Ͳͷཁ݅Ͱ΋ͳ͔ͬͨ 'SBNFXPSL͸ԿͰ΋ྑ͔ͬͨ ɾ1ZUIPOͰ͋Ε͹ԿͰ΋ ߟ͑ͨͷ͸'BTU"1*'MBTLCPUUMF͋ͨΓ ɾຊମ͸'MBTL Ұ෦ͷผαʔϏεΛ'BTU"1*Ͱ։ൃ

Slide 20

Slide 20 text

Streamlit͔ΒFlask΁ͷॻ͖׵͑ʢ֓೦ʣ ʲਤʳϓϩτλΠϓͱ"1*ͷύοέʔδߏ੒ʢͬ͘͟Γʣ

Slide 21

Slide 21 text

Streamlit͔ΒFlask΁ͷॻ͖׵͑ʢ֓೦ʣ 4USFBNMJUϓϩτλΠϓͷ࣌఺Ͱ"1*ॻ͖׵͑Λ૝ఆ ʮϓϩτΛ௥Ճ։ൃͯ͠"1*ʹʯ͕Ͱ͖ΔΑ͏ʹͨ͠

Slide 22

Slide 22 text

ϓϩτλΠϓ͔ΒAPIॻ͖׵͑ͷ࡞ઓ ϓϩτλΠϓʢ4USFBNMJUʣͷ࣌఺Ͱύοέʔδ੔ཧ ɾ"1*ʹ͢Δͷ͕Θ͔Γ͖ͬͯͨͷͰ࠷ॳ͔ΒϓϩμΫτߏ੒Λҙࣝ ɾ༧ଌϞσϧͳͲ͕Ҡ২࣌ʹյΕͳ͍Α͏ $*ςετͷ࢓૊Έ΋੔͑ͨ 'SBNFXPSLʹґଘ͢ΔՕॴΛݶఆ͢Δ ɾϏδωεϩδοΫͰ'SBNFXPSLʹґଘ͢Δ࣮૷Λճආ͢Δ ɾ8FC"1*ͷ৔߹ IUUQ T Ͱ௨৴͢Δͱ͜Ζ͚ͩ'SBNFXPSLΛ࢖͏ ɾ'MBTL΍'BTU"1*ͳͲͷܰྔ'SBNFXPSLͳΒϞδϡʔϧ͚ͩͰࡁΉ 
 ɹʢ஫ɿΞϓϦέʔγϣϯͷن໛࣍ୈͰύοέʔδ෼͚Α͏ʣ

Slide 23

Slide 23 text

͜ͷ࡞ઓͰ্ख͍ͬͨ͘͜ͱ ςετͷ͓ӄͰϓϩτλΠϓ"1*Ҡߦ͕੒ޭ ɾҠߦͨ࣌͠ʹ༧ଌϞσϧ΍ϏδωεϩδοΫ͕յΕͣʹࡁΜͩ ɾೖࣾॳ೔ͷֶੜΠϯλʔϯ͕͙͢DPOUSJCVUFͰ͖ͨ ٸͳ'SBNFXPSLͷมߋ͕Ұ൩ͰऴΘͬͨ ɾ࣮͸࠷ॳ͸'BTU"1*Ͱ։ൃ͍ͯͨ͠ࣄ৘ʹΑΓ'MBTLʹ੾Γସ͑ ɾNBJOQZͱҰ෦ͷεΩʔϚมߋ͚ͩͰര଎Ͱ੾Γସ͕͑ऴΘͬͨ

Slide 24

Slide 24 text

ߴτϥϑΟοΫʹ߄ͯͳ͍ٕज़ ("&$MPVE3VOͰ57๒Λଧͪฦ͢ 04

Slide 25

Slide 25 text

ʲ࠶ܝʳαʔϏεͷߏ੒ ΞϓϦέʔγϣϯͷߏ੒ ɾϑϩϯτΤϯυʢ3FBDUʣͱόοΫΤϯυʢ1ZUIPOʣΛ෼͚ͯ։ൃ ɾϑϩϯτ͔ΒͷϦΫΤετͰίϯςϯπΛฦ͢3&45GVMతͳ ϓϩμΫτશମͷߏ੒ ɾߴෛՙରࡦΛָʹ΍Γ͍ͨख͔͚ؒͨ͘ͳ͍ ɾ("&ʢ(PPHMF"QQ&OHJOF͕ʣ͋Δ͡ΌΜʂˡ͜Ε ɾ࠷ऴతʹ͸("&Ұ෦αʔϏεΛ$MPVE3VOʹ

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

GAE + Cloud Runߏ੒ʹͨ͠ཧ༝ ɾαʔϏεͷੑ্࣭ 57࿐ग़ͷՄೳੑେ📺 ɾ📺ग़ԋͷ౎౓ ख࡞ۀ૿͑Δͷ͸🙅 ɾ($1ͷ࢓૊Έʹ৐͔ͬͬͪΌ͑ˡ͜Ε ߴτϥϑΟοΫରࡦΛָʹ΍Γ͔ͨͬͨ

Slide 28

Slide 28 text

ϝονϟָͩͬͨߴෛՙରࡦ ("&ͱ$MPVE3VOͷରࡦ ɾͲͪΒ΋ࣄલʹΠϯελϯεΛ૿΍͢ઃఆͯ͠σϓϩΠ͕جຊઢ ɾΠϯελϯεͷ࠷খ࠷େ਺Λௐ੔ HDMPVEίϚϯυͰҰൃσϓϩΠ /FXT%JHFTUͷରԠ΋ָͩͬͨ ɾ"*ϫΫνϯ઀छ༧ଌ͸/FXT%JHFTUͷҰ෦ͳͷͰͬͪ͜΋ෛՙରࡦ͕ ɾ౰࣌43&ͩͬͨ!5BUDI/JDPMBT͞Μ͕Ұ൩ͰπʔϧΛ։ൃ 
 ɹίϚϯυҰൃͰෛՙରࡦΛ΍ΕΔΑ͏ʹʂʢײँʣ

Slide 29

Slide 29 text

݁Ռ͸Ͳ͏ͩͬͨ? 57࿐ग़ͷߴෛՙʹे෼଱͑ͨ ɾट౎ݍΩʔہͷ͍ΖΜͳ൪૊ʹग़͕ͨαʔϏεো֐͸φγ 
 ɹʢখ͞ͳΤϥʔͱ͔͸ͪΐ͍ͪΐ͍͋ͬͨʣ ɾΊ͟·͠ςϨϏ 8#4 /&84;&30ͱ͍ͬͨେ๒ʹ଱͑ͨ ӡ༻ෛՙ͸େͨ͜͠ͱφγ ɾ57࿐ग़લޙʹத઒͕෼ఔ౓࡞ۀʢجຊతʹσϓϩΠ࡞ۀʣ ɾϫΫνϯ઀छ༧ଌͱ/FXT%JHFTUͷରࡦ͸΄΅ҰਓͰӡ༻Ͱ͖ͨ ʮ(PPHMF"QQ&OHJOFͰ͸͡ΊΔ Β͘Β͘57๒ରࡦ"*ϫΫνϯ઀छ༧ଌͷ෣୆ཪʯ IUUQTUFDIKYQSFTTOFUFOUSZWBDDJOFHBF

Slide 30

Slide 30 text

1ZUIPO࢖͍ʹͱͬͯͷٕज़બ୒ͱ͸ ݁ͼ 05

Slide 31

Slide 31 text

૯ׅ ϓϩτλΠϐϯάͰ4USFBNMJUΛ࢖ͬͨ݅ ɾϓϩτλΠϓ։ൃࣾ಺1P$։ൃ 
 ɹ͜ΕΒͷҙࢥܾఆɾαʔϏεϩʔϯν·Ͱͷεϐʔυײʹߩݙ ɾ͜ͷ΍ΓํΛԣల։͍ͨ͠ʢ4USFBNMJU࢖͓͏ϗεςΟϯάͳͲʣ 'MBTL("&ͰεέʔϥϏϦςΟͳόοΫΤϯυ ɾബ͍"1*ΛνʔϜ։ൃ ٸͳτϥϑΟοΫରԠ΋ָʹ͍͚ͨ ɾ/FXT%JHFTU'"45"-&35ຊମͳͲ ΋ͬͱίΞͳॴͰ͜ͷ஌ݟΛ 
 ɹ׆͔ͤͨΒ࠷ߴ͡Όͳ͍͔આ͋Δ🤔

Slide 32

Slide 32 text

ࢲʢshinyorkeʣ͕େ੾ʹ͍ͯ͠Δ͜ͱ ʮֶࣗࣗशʯΛॏͶͯʮબ୒ࢶΛ૿΍͢ʯײ͕͡ϕετ΍Ͱ IUUQTMPHNJKQUFDIBSUJDMFT

Slide 33

Slide 33 text

Thank you!