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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
500
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
SREの越境 / SRE Collaboration
y0hgi
2
300
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
130
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
160
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
200
APNsからLive Activityを開始する話
yumnumm
0
150
iOSDC2026登壇資料.pdf
riofujimon
0
210
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.5k
Are APIs Still Relevant in the AI Era?
soyuka
0
420
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.5k
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
350
Featured
See All Featured
Docker and Python
trallard
47
4.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
How GitHub (no longer) Works
holman
316
150k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Prompt Engineering for Job Search
mfonobong
0
480
Abbi's Birthday
coloredviolet
4
10k
Why Our Code Smells
bkeepers
PRO
340
58k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
450
Bash Introduction
62gerente
615
220k
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"*