Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Ruby and LLM Ecosystem
Search
Koichi ITO
September 12, 2025
Programming
14k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ruby and LLM Ecosystem
RubyWorld Conference 2025 (
https://2025.rubyworld-conf.org/ja/program/day2/
)
Koichi ITO
September 12, 2025
More Decks by Koichi ITO
See All by Koichi ITO
The Rails Doctrine Decade
koic
2
510
Reframing the Agile Manifesto
koic
5
4.7k
The NotImplementedError Problem in Ruby
koic
1
2.1k
Exploring RuboCop with MCP
koic
0
7.9k
Ruby and LLM Ecosystem 2nd
koic
1
2.3k
STYLE
koic
1
2.2k
Write Code Every Day
koic
1
2.8k
Bliki (ja), and the Cathedral, and the Bazaar
koic
7
3.3k
Welcome to the LLM Club
koic
0
440
Other Decks in Programming
See All in Programming
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
1.9k
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
230
Security issues being discussed on Web Platforms
petamoriken
0
1.4k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
920
最近”作らせてる” ローカルAIアプリの話
akit37
0
140
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
310
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
120
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
470
FreeBSDでZabbixを動かす
kenkino
0
360
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
350
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.9k
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
550
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
440
Skip the Path - Find Your Career Trail
mkilby
1
240
Statistics for Hackers
jakevdp
799
230k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
910
Music & Morning Musume
bryan
48
7.4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
4 Signs Your Business is Dying
shpigford
187
23k
Building the Perfect Custom Keyboard
takai
2
890
Transcript
3VCZͰ--.ΞϓϦέʔγϣϯ ։ൃΛࢧ͑Δجૅٕज़ Ruby x LLM Ecosystem ҏ౻ߒҰ&4. *OD 3VCZ8PSME$POGFSFODF
ۚ ౡࠜݝཱ࢈ۀަྲྀձؗʮ͘ʹͼ͖ϝοηʯ
w044ϓϩάϥϚʔ w3VCP$PQίΞνʔϜίϛολʔ w.$1TUFFSJOHHSPVQϝϯόʔ</&8> wגࣜձࣾӬγεςϜϚωδϝϯτ &4. *OD ΤϯδχΞϦϯάϚωʔδϟʔ σΟεςΟϯάΠογϡυɾΤϯδχΞ @koic
None
ϓϥνφεϙϯαʔϊϕϧςΟ 3VCZ8PSME$POGFSFODFಛผ֦ுύοΫΛ'ϒʔεʹͯத
࠾༻ͱಇ͖ํͷଟ༷Խ wਓੜͷঢ়گʹ͋Θͤͨ ϥΠϑελΠϧΛଚॏ͢Δ wؔ౦ݍɺҪɺ࣎լɺژ Վࢁɺౡࠜɺٶ࡚͔Βͷ ϦϞʔτϫʔΫ 🗾
Support OSS community
w มԽͷ͍--.पลٕज़ʹ͍ͭͯͷ w ༧ࢉͷ͍ͭͨ෦׆ಈ w Ӭࣾ4MBDLͷMMNDMVCνϟϯωϧ w ઈࢍ෦һืूத w ೖࣾ͢Δ͚ͩͰɺΕͳ͘ೖ෦Ͱ͖·͢
େنݴޠϞσϧ --. ݚڀ෦ IUUQTNBHB[JOFSVCZJTUOFUBSUJDMFT'PMMPX6Q,JSJTIJNB3VCZIUNM
ࠓͷ
☝ ຊࢿྉఏग़ޙ$IBU(15"QQT4%, "HFOU4LJMMT $IBU(15"UMBTͳͲܹྲྀ IUUQTSVCZXPSMEDPOGPSHKBBCPVU
--.େنݴޠϞσϧ 3"(ݕࡧ֦ுੜ .$1ϞσϧίϯςΩετϓϩτίϧ 3VCZY--.ͷՄೳੑ ࣍ Ruby
3.4.7, Langchain.rb 0.19.5, MCP Ruby SDK 0.4.0
-BSHF-BOHVBHF.PEFM --.
w ػցֶशͱ͍͑1ZUIPOͱֶͱ͍͏ੈք ͔Βɺ--.ͷࣗવݴޠͷϓϩϯϓςΟϯά Ͱ୭Ͱ"*͕࣮༻Մೳʹͳͬͨ w ςΩετੜͷ--.ͱը૾ɺԻɺಈըੜ ʹΘΕΔ%J ff VTJPO.PEFM͕ݱ"*ͷՖܗ --.ͱ͍͏ήʔϜνΣϯδϟʔ
֦ࢄϞσϧ େنݴޠϞσϧ --.ίϯςΩετʹର࣍͠τʔΫϯΛࣗݾճؼతʹ༧ଌ͠ଓ͚Δ֬తੜϞσϧ
w นଧͪͷνϟοτ"*ٞࣄϏδωε׆༻ w $MBVEF$PEF$VSTPSͰ"HFOUJD7JCF$PEJOH w ΞϓϦέʔγϣϯͷ--.ΈࠐΈ w --.ͷ"1*ɺ3"(ɺ.$1πʔϧ։ൃ w --.ࣗମ0MMBNBͳͲ--.࣮ߦج൫։ൃ
w BS9JWͷจͷධࣥච͢Δऀ --.ͱͷ༷ʑͳؔΘΓ ָ͠Έ ํ
w ΫϥΠΞϯτͱαʔόʔͰίʔυڞ༗Մೳͳ 6OJWFSTBM+BWB4DSJQUͷੈք w 1ZUIPOͰػցֶशΛॻ͘ͳΒɺ8FC·Ͱؚ Ίͯ1ZUIPOͱ͍͏ͷ64ͷைྲྀ ෩ฉ w --.पลͷ࣮ߦڥΛ3VCZͰॻ͚Εɺ
3VCZ3BJMTͷ··--.ΛΈࠐΊΔ ຊ 3VCZͷීวੑ
--.ΞϓϦέʔγϣϯ։ൃ IUUQTHJUIVCDPNMBOHDIBJOBJSBHGSPNTDSBUDI ੈͷதͰ--. ΞϓϦ։ൃݚڀ ͕ਐΜͰ͓Γɺ 1ZUIPO4%,ʹ ࣮ݶΒͳ͍ 3VCZͷग़൪ʂ
--.ΞϓϦྫ (VNSPBE IUUQTHJUIVCDPNBOUJXPSLHVNSPBECMPCQSPEVDUJPOGBBBDBQQNPEFMTQSPEVDU@SFGVOE@QPMJDZSC 5IBOLT(JO[BSC
w 0QFO"*"1*Λ3VCZ͔Β͏HFN w ΞϓϦଆ͔Β--.Λݺͼग़͢جຊ 3VCZ0QFO"*HFN OpenAI::Client.new.chat( parameters: { messages: [{role:
"user", content: prompt}], model: "gpt-4o-mini", temperature: 0.0, max_tokens: 10 } ) # gem 'ruby-openai' IUUQTHJUIVCDPNBOUJXPSLHVNSPBECMPCQSPEVDUJPOGBBBDBQQNPEFMTQSPEVDU@SFGVOE@QPMJDZSC-- LLMͷϓϩϯϓςΟϯάจࣈྻ
w ϧʔϧϕʔεͰϓϩάϥϛϯάͰ͖Δܾఆత ͳͷ͔ΒᷓΕͨɺਓ͕ӡ༻ͰΧόʔͯ͠ ͍ͨඇܾఆతͳྖҬΛ·ͣ--.ͰΧόʔ͢Δ w --.ΛͬͨνϟοτΞϓϦέʔγϣϯ ྫ2"γεςϜ w ϢʔβʔೖྗΛݩʹ--.ͰཁఏҊΛੜ
--.ΞϓϦͷߟ͑ํͱ༻ྫ
3"( 3FUSJFWBM"VHNFOUFE(FOFSBUJPO
w --.ͷֶशσʔλτϨʔχϯά͠ϦϦʔε ͨ࣌͠ʹݶΒΕΔͨΊɺֶशҎޙͷ࠷৽ ใඇެ։ใͷ֎෦ࣝΛ͍࣋ͬͯͳ͍ w ରԠͱͯ͠--.Λνϡʔχϯά͢Δख๏ͱɺ ֎෦ࣝΛݕࡧͯ͠ϓϩϯϓτʹຒΊࠐΉ ख๏͕͋Δ --.ͷಛੑͱͦͷରॲ
w 1ZUIPOͰ1Z5PSDI5FOTPS'MPX͕ɺ --.ͷτϨʔχϯάʹΘΕΔ Β͍͠ w ྫ͑1Z5PSDIͷ3VCZόΠϯσΟϯάʹ 5PSDISC͕͋Δ͕ɺ--.ͷτϨʔχϯά 1ZUIPOΛ͓ͬͯ͘ͷ͕Θ͔Γ͍͔͢ʁ --.ͦͷͷͷ܇࿅ௐ
τϨʔχϯάେͳܭࢉྔͱిྗ͕ඞཁͰɺຊؾͳΒσʔληϯλʔͷೖख͔Βʂʁ Training Fine-turning
'JOFUVSOJOHWT3"( IUUQTXXXBOZTDBMFDPNCMPH fi OFUVOJOHJTGPSGPSNOPUGBDUT w 'JOFUVSOJOH ݴ༿ݣ͍ग़ྗͱ ͍͏දݱ 'PSN
ͷௐʹ͏ w ֶशࡁΈࣝͷ ࣄ࣮ 'BDUVBM ͷ ௐ3"(Λ͏
3"(ͷΞϓϩʔν ΞϓϦέʔγϣϯ w --.ͦͷͷΛνϡʔχ ϯά͢ΔͷͰͳ͘ɺݕࡧ ͨ͠֎෦ࣝΛϓϩϯϓ τʹຒΊࠐΉ w ݕࡧओʹϕΫτϧ%# w
3"(ख๏Ͱ͋Γඪ४Խ ͞Εͨن֨Ͱͳ͍ --. --.ͷ"1*ϦΫΤετͱϨεϙϯε --.ΞϓϦجૅ ϕΫτϧ σʔλϕʔε Ϣʔβʔ Chroma, Milvus, pgvector, Pinecone, Weaviate, etc... ֎෦ࣝΛऔΓࠐΉ 3"(࣮ݱ
3"(ͱπʔϧݺͼग़͠ ֎෦πʔϧ "1*ݺͼग़͠ 5PPM6TF ΤʔδΣϯτߏஙڧԽ ΞϓϦέʔγϣϯ w --.ࣝʹͳ͍ใ͕ඞཁ ͳΒϕΫτϧσʔλϕʔε ͍߹ͤ݁ՌΛՃຯͯ͠
--.ϓϩϯϓςΟϯά ͍ΘΏΔٛͷ3"( w --.ͷϨεϙϯεʹԠ͡ɺ ֎෦πʔϧݺͼग़͠ͷ ΈΛೖΕΔ 3"(ͱผ࣠ --. --.ͷ"1*ϦΫΤετͱϨεϙϯε --.ΞϓϦجૅ ϕΫτϧ σʔλϕʔε ֎෦πʔϧ ίʔυ࣮ߦ Ϣʔβʔ Chroma, Milvus, pgvector, Pinecone, Weaviate, etc... ֎෦ࣝΛऔΓࠐΉ 3"(࣮ݱ
w 3"(ख๏Λࢦ͢ͷͰ͋Γɺϓϥοτ ϑΥʔϜΛލ͍ͩڞ௨ͷنͳ͍ w 1ZUIPOͳΒ-BOH$IBJO4FNBOUJD,FSOFM ͳͲ3"(࣮ݱͷͨΊͷϑϨʔϜϫʔΫ͕͋Δ w 3VCZ3"(ϑϨʔϜϫʔΫ-BOHDIBJOSC͕ 3VCZ$POG5BJXBOͰհ͞Ε͍ͯΔ 3"(࣮ݱͷϑϨʔϜϫʔΫ
w 3"(ΤʔδΣϯτߏஙΛ࣮ݱ͢ΔͨΊͷɺ --.ͷ"1*ΫϥΠΞϯτɺϕΫτϧσʔλ ϕʔε౷߹ɺπʔϧݺͼग़͠ͳͲΛࠝแ w ͦΕͧΕͷ"1*ΛநԽͨ͠ϓϥΨϒϧͳ ߏʹͳ͍ͬͯΔ w ຊՈ-BOH$IBJOͱൺͯɺ·͍ͩΖ͍Ζෆ -BOHDIBJOSC
"OESFJ#POEBSFW࡞
w -BOHDIBJO--."OUISPQJD -BOHDIBJO--.0QFO"*ͳͲ --.ʹԠͨ͡ΫϥΠΞϯτͷϥούʔΛ࣋ͭ w -BOHDIBJO--.#BTFΛܧঝ͠ɺMMNDIBU MMNTVNNBSJ[FͳͲಁաతͳந"1*Λ࣋ͭ --.Λಁաతʹѻ͏"1*Λ࣋ͭ llm
= Langchain::LLM::Anthropic.new( api_key: ENV['ANTHROPIC_API_KEY'] ) # Requires the `anthropic` gem as an LLM client
-BOHDIBJO7FDUPSTFBSDI require 'langchain' require 'chroma-db' chroma = Langchain::Vectorsearch::Chroma.new( url: ::Chroma.connect_host,
index_name: 'ruby40_collection', llm: Langchain::LLM::Ollama.new) response = chroma.ask(question: 'Ruby 4.0ͷRuby::Boxͷ࡞ऀʁ') response.chat_completion # => 'tagomoris͞ΜͰ͢ɻ' w --.͕ະͷ֎෦ࣝΛఏڙ͢ΔͨΊɺ ϕΫτϧ%#͔Βҙຯతʹ͍ۙใΛݕࡧ
w --.͕֎෦ػೳͱͯ͠ݺͼग़͠அͰ͖Δɺ ͍͔ͭ͘ͷΈࠐΈπʔϧΛαϙʔτ w -BOHDIBJO5PPM # Fetch weather from https://home.openweathermap.org
weather = Langchain::Tool::Weather.new( api_key: ENV['OPEN_WEATHER_API_KEY'] ) # Use `eqn` gem calculator = LangChain::Tool::Calculator.new # Use `safe_ruby` gem interpreter = Langchain::Tool::RubyCodeInterpreter.new
w --.ɺπʔϧͳͲΛΈ߹ΘͤͯϢʔβʔͷ ϓϩϯϓςΟϯάʹԠ͢Δத֩ͷΫϥε -BOHDIBJO"TTJTUBOU require 'langchain' llm = Langchain::LLM::Ollama.new assistant
= Langchain::Assistant.new( llm: llm, tools: [Langchain::Tool::Weather.new(api_key: api_key)] ) assistant.add_message(content: '໌ͷఱؾʁ') messages = assistant.run! messages.each { |message| p message.to_hash[:content] }
w 3"(ͰநԽͨ͠"1*͕༻ҙ͞ΕΔ͕ɺ --.Λม͑Δ͜ͱ͕௨ৗͳ͍ͷͰ͋Εɺ ಛఆ--.ͷ"1*ʹґଘͨ͠ํ͕༰қʁ w ྫ͑ɺ-BOHDIBJO--.0QFO"* SVCZPQFOBJHFNͷϥούʔʹա͗ͳ͍ 3"(ͳநԽઆු্ʁ ϑϨʔϜϫʔΫͰ--.ΞϓϦ૾ΛΓɺඞཁͳݸผϥΠϒϥϦΛ͏ͱγϯϓϧʁ
w -BOHDIBJOSCɺ--.ΛғΉ3VCZͷϥΠϒ ϥϦϛυϧΣΞΛΔ͖͔͚ͬʹͳΔ w 1ZUIPOͷ-BOH$IBJOʹ͋ΔػೳΛ3VCZͷ -BOHDIBJOSCʹҠ২Ͱ͖ͦ͏ w -BOHDIBJOSCͷίϯτϦϏϡʔγϣϯͷ ϙΠϯτͱͯ͠5PPM֦ॆɺ-$&-αϙʔτ -BOHDIBJOSCʹΑΔ3"(·ͱΊ
LangChain Expression Language
.PEFM$POUFYU1SPUPDPM .$1 NPEFMDPOUFYUQSPUPDPMJP
w .PEFM$POUFYU1SPUPDPMͷུশ w "OUISPQJD͔ࣾΒࡦఆެ։͞Εͨϓϩτίϧ ༷Ͱ͋ΓɺϓϥοτϑΥʔϜඇґଘ w ݱࡏɺ͕࠷৽൛Ͱ υϥϑτ൛ͱͯ࣍͠ظ༷Λࡦఆத w 4&1ͱͯ͠(JU)VCΠγϡʔͰ༷ఏҊ͞ΕΔ
.$1ͱʁ Specification Enhancement Proposal
w 'BTU.$1 ZKBDRVJOGBTUNDQ w .$13# GVOXBSJPJTJJNDQSC w .$1PO3VCZ
SVCZPOBJNDQ@PO@SVCZ w .$13VCZ4%, NPEFMDPOUFYUQSPUPDPMSVCZTEL 3VCZʹ͓͚Δ.$14%,HFN NPEFMDPOUFYUQSPUPDPMͷ63-͕ѹతͩͬͨͷͰɺͦ͜ʹίϛοτ͍ͯ͠Δ
w 1ZUIPO4%,ͱ5ZQF4DSJQU4%,͕ઌߦ w ݄ݱࡏݸͷެࣜ4%,͕ଘࡏ .$10G fi DJBM4%,T IUUQTNPEFMDPOUFYUQSPUPDPMJPBCPVU IUUQTNPEFMDPOUFYUQSPUPDPMJPEPDTTEL
w 4IPQJGZ͕ࣾͰ࡞͍ͬͯͨHFNΛެࣜͱ͠ ͯఏҊͯ͠ެ։͕࢝·ͬͨͬΆ͍ w .$1ͷΨόφϯε 4&1 ͕͏·Ͱͷ ؒɺ4IPQJGZͰϝϯςφϯε͞Ε͍ͯͨ w ݱࡏɺ"UF㶆(ÖSBM
5PQIFS#VMMPDL ࢲͷ ਓ͕ϝϯςφʔͱͯ͠׆ಈ͍ͯ͠Δ .$13VCZ4%,
w ެࣜ4%,.$1ͷ༷४ڌਵ͢Δ͜ͱ ͕ٻΊΒΕ͍ͯΔ ϕετΤϑΥʔτ w 3VCZ൛ͷ.$14%,HFNͰαʔόʔ4%,ʹ Ճ͑ɺΫϥΠΞϯτ4%,ఏڙݱࡏ།Ұ w .$1"VUIFOUJDBUJPO
0"VUI ࣮த 5IF0G fi DJBM3VCZ4%, ͭ·Γ.$1ͷ༷ͷΞοϓσʔτʹԠͯ͡ɺ4%,ରԠ͢Δ͜ͱ͕ظ͞ΕΔ
w -BOHVBHF4FSWFS 1SPUPDPM -41 ʹӨڹ Λड͚ͨΞʔΩςΫνϟ w .$1ϗετɺ ΫϥΠΞϯτɺαʔόʔ ͰΔ
w ΫϥΠΞϯτɺαʔόʔ +40/31$ج൫ ͷ.$1Ͱ௨৴͢Δ .$1ͷΞʔΩςΫνϟ IUUQTNPEFMDPOUFYUQSPUPDPMJPTQFDJ fi DBUJPOBSDIJUFDUVSF
.$1ϗετத৺ͷΦʔέετϨʔγϣϯ .$1αʔόʔ MCP on JSON-RPC 2.0 .$1 ΫϥΠΞϯτ .$1ϗετ w
.$1ϗετɺϢʔβʔͱ--. ͱ.$1ΫϥΠΞϯτͷՍ͚ڮ w .$1ϗετઃఆʹج͍ͮͯ .$1αʔόʔΛ--.ʹ͑Δ w .$1ϗετ--.͕.$1αʔ όʔݺͼग़͠Λ͢ΔΑ͏ฦͨ͠Β .$1αʔόʔݺͼग़͠Λ͢Δ w --.͕.$1αʔόʔͷ ݺͼग़͠Λ͢ΔΘ͚Ͱͳ͍ --. --.ͷ"1*ϦΫΤετͱϨεϙϯε ઃఆϑΝΠϧ NDQKTPO READ .$1αʔόʔ .$1 ΫϥΠΞϯτ Ϣʔβʔ αʔόʔઃఆ ։ൃऀతʹԠ͡ MCPαʔόʔΛ࣮
/BUJWFޚࡾՈ w .$1αʔόʔఏڙͷ πʔϧɺϦιʔεɺ ϓϩϯϓτ͕ओཁػೳ w ಛʹπʔϧ൚༻తͳ ػೳͰΫϥΠΞϯτͷ ଟ͕͘αϙʔτ IUUQTNPEFMDPOUFYUQSPUPDPMJPDMJFOUT
IUUQTNPEFMDPOUFYUQSPUPDPMJPBCPVU
ΫϥΠΞϯταʔόʔؒͷ௨৴ w TUEJPͱ4USFBNBCMF)551Λαϙʔτ w TUEJPϩʔΧϧͷ.$1αʔόʔͱͯ͠ଓ w 4USFBNBCMF)551ඞཁʹԠͯ͡44& 4FWFS4FOU&WFOUT ͕ΘΕΔɻαʔόʔ ެ։͢Δ߹0"VUIαϙʔτΛཁ֬ೝ
ݱঢ়4USFBNBCMF)551ΤϯτϦϙΠϯτΛ3BDL3BJMTͰࣗલ࣮͢Δܗࣜ
3VCZͰ.$1Λ࣮͢Δͱʁ w .$1༷ʹԊ࣮͕ͬͨ͞Εͨ.$1ΫϥΠ Ξϯτɺ.$1αʔόʔؒ૬ޓӡ༻Մೳ w ϓϩτίϧ༷ͷಈ͘ιϑτΣΞͱͯ͠ɺ ԿΒ͔ͷݴޠॲཧܥͷ࣮͕ඞཁ w 3VCZͰ࣮͢Ε࣮ͱӡ༻ͷϝϯςφϯ εΛ3VCZͰͰ͖Δ
require 'mcp' server = MCP::Server.new(name: 'example') server.define_tool( name: 'echo', description:
'Echoes back its arguments', input_schema: { properties: { message: {type: 'string'} }, required: ['message'] } ) do |message:| MCP::Tool::Response.new([{ type: 'text', text: "Echo for #{message}" }]) end MCP::Server::Transports::StdioTransport.new(server).open ྫ
w 3"(ख๏Ͱ-BOHDIBJOSC--.ΞϓϦͷ ಠࣗ"1*ͷఏڙϑϨʔϜϫʔΫͱͯ͠࠶ར༻ w .$1ϓϩτίϧ༷Ͱ͋Γ.$1αʔόʔ ن४ڌ.$1ΫϥΠΞϯτԣஅͰ࠶ར༻ w ͍ͣΕ--.݁ՌͷධՁඞཁ͕ͩɺ.$1 খ͘͞࠶ར༻͍͢͠σβΠϯ -BOHDIBJOSCWT.$1αʔόʔ
3VCZY--.ͷՄೳੑ
w ࣮ࡍͷͱ͜Ζɺ1ZUIPO͕ઌߦ͍ͯ͠Δ w 3"(ʹؔͯ͠ख๏ʹա͗ͳ͍ͨΊɺ ʮ΅͕͘ߟ͑ͨ࠷ڧͷ3"(ϑϨʔϜϫʔΫʯ 3VCZ൛͕ొ͢Δ༨͋Δ͔͠Εͳ͍ w .$1༷४ڌͷ4%,࣮ͷͨΊ༷ཧղ ͱෆ͍ͯ͠Δ3VCZ4%,։ൃΛਐΊ͍ͯ͘ 3VCZͷ3"(ͱ.$1ޙ͍
w 3VCZΤίγεςϜͷ͕Γʹ 3VCZॲཧܥΠϯετʔϧ͕ॏཁ w .$1αʔόʔ֤ݴޠͰ࣮Մ w 3VCZ.$1αʔόʔ͕͕Δ ͱ͍͏͜ͱɺ࣮ߦڥʹ3VCZ ॲཧܥ͕ೖΔػձ͕૿͑ɺ3VCZ ͷଟ༷ੑͷ͕Γʹܨ͕Δʂʁ
.$1αʔόʔ࣮ݴޠؒϨʔεʁ IUUQTHJUIVCDPNNPEFMDPOUFYUQSPUPDPMTFSWFST IUUQTNPEFMDPOUFYUQSPUPDPMJPBCPVU
.$13VCZ4%,ͷΞϓϦࣄྫٻΉ w 3VCZք۾Ͱͷ.$1ͷར༻ࣄྫͱͯ͠ɺ $MBVEF$PEF$VSTPSͳͲͷπʔϧΛ.$1 ϗετͱׂ͕ͨ͠Γ߹͍ͱͯ͠ଟ͍ʁ w 3BJMTΞϓϦΛ.$1ϗετͱͨ͠--.ΞϓϦ ͔Β.$1αʔόʔΛͬͨࣄྫՉฉ ઌ0QFO"*͔Β$IBU(15"QQT4%,ج൫͕.$1ͱ͍͏ൃද͋Γܹྲྀͷ࠷த IUUQTPQFOBJDPNJOEFYJOUSPEVDJOHBQQTJODIBUHQU
w 3VCZPO3BJMTʹΑΔΞϓϦέʔγϣϯͷ --.׆༻ͷΈࠐΈ3VCZͰͰ͖ΔΑ w --.पลʹ044ͰղܾͰ͖Δ͜ͱ͕ࢁ ͋ΓɺύΠΦχΞʹͳΔνϟϯεʂʁ w ͜Μͳ--.׆༻Ͱ͖ͳ͍͔ͳʁͱࢥͬͨΒ 1ZUIPOઌഐ͔ΒֶΜͰΈΔͷͻͱͭ ·ͱΊ
w --.ςΩετੜΤϯδϯͱ͍͏πʔϧ w --.ͷΈΛΔ͜ͱ--.Λͬͨ ΤϯδχΞϦϯάεΩϧͷ্ʹඞਢ --.ͦͷͷΛΔ ͓͢͢Ί
3VCZY"*