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
生成AIなんでも展示会スピンオフ まさかの大逆転!競馬予想システム開発を支えたAIコーディング...
Search
Jun Tamaoki
April 22, 2025
Programming
2
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
生成AIなんでも展示会スピンオフ まさかの大逆転!競馬予想システム開発を支えたAIコーディング支援ツール使い倒し術
https://techplay.jp/event/977100
からYouTubeで講演配信のアーカイブを確認できます!
Jun Tamaoki
April 22, 2025
Other Decks in Programming
See All in Programming
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
280
Event is what happens
moro
2
860
Performance Optimization With LLMs
xleitix
0
140
AWSに止められる覚悟してますか?
morizo_1984
2
540
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
440
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
33k
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
140
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
280
Featured
See All Featured
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Optimizing for Happiness
mojombo
378
71k
Site-Speed That Sticks
csswizardry
13
1.6k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
We Have a Design System, Now What?
morganepeng
55
8.4k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Transcript
予想AIからはじめる おきらくプログラム as Vibe Coding
去年の秋のこと 出てみん?
去年の秋のこと Cursor流行ってるし 雰囲気でプログラム 作ってみる か... 後のVibe Codingである
ほのぼの開発 AIがプログラムを書いてくれる 「Cursor」を使おうねぇ
ほのぼの開発.py AI 8キャラも作っちゃったwww
ほのぼの開発.js Web開発なんもわからんwww
ほのぼの展示(昼) 順当に負け こんな適当に作ったソフトで 当たるわけないわwww
東京12Rさん!?
Qiitaさん!?
GIGAZINEさん!?
とはいえど・・・ やはり マグレは マグレ 展示の目的は”当てる”ことではなかった
今日のテーマ 初学者・趣味人向けに Vibe Coding (AIおきらくプログラミング) について話そう
予想AIのしくみ 1. 中央競馬のデータを用意して SQLなDBに入れる (ググれ) 2. クエリ(DBを検索する文) をLLMに作らせる 3. 結果をもとに予想させる
展示したの予想AIの実演 桜花賞 2025 先週日曜にあったG1レース で動かしてみよう
実際に簡単なものを作ってみよう 皐月賞 2025 来週日曜にあるG1レース で試してみよう
皐月賞予想AIを作ろう 1. LLMに検索文を書かせてみよう 2. SQLデータベースに接続しよう 3. 出走馬リストから馬のユニークIDである”血統登録番号”を調べる 4. 過去5年の皐月賞のレースコードのリストを作る 5.
過去の傾向から候補を絞り込む a. ◯番人気 b. 前走レース 6. LLMに予想させよう
皐月賞予想AIを作ろう 1. LLMに検索文を書かせてみよう 2. SQLデータベースに接続しよう 3. 出走馬リストから馬のユニークIDである”血統登録番号”を調べる 4. 過去5年の皐月賞のレースコードのリストを作る 5.
過去の傾向から候補を絞り込む a. ◯番人気 b. 前走レース 6. LLMに予想させよう
LLMに検索文を書かせよう RACE_SHOSAIテーブルでKYOSOMEI_RYAKUSHO_6の値が’東京優駿’であ り、RACE_CODEの頭の4文字が2005であるRACE_CODEを調べるpostgreSQL 用のクエリを書いて ※東京優駿の副題が日本ダービーである。
LLMに検索文を書かせよう UMAGOTO_RACE_JOHOテーブルでRACE_CODEが2005052905030410で あり、KAKUTEI_CHAKUJUNが’01’である行のBAMEIを取得するpostgreSQL用の クエリを書いて
皐月賞予想AIを作ろう 1. LLMに検索文を書かせてみよう 2. SQLデータベースに接続しよう 3. 出走馬リストから馬のユニークIDである”血統登録番号”を調べる 4. 過去5年の皐月賞のレースコードのリストを作る 5.
過去の傾向から候補を絞り込む a. ◯番人気 b. 前走レース 6. LLMに予想させよう 1-2
1. clineが日本語でしゃべってくれない ◦ clineのインストラクションに「日本語で話して」と入れておく 2. clineがWindows Powershell環境だと使えないコマンドを使いがち 特に「&&」での連続コマンド実行 ◦ デフォルトのコンソールをbashにしておく
セットアップの落とし穴 1-2
@requirements.txt @.env PSQLにアクセスしてクエリを入力し、 JSONを返す関数を作ります。設計をしてください。 SQLデータベースと接続してみよう 1-2
皐月賞予想AIを作ろう 1. LLMに検索文を書かせてみよう 2. SQLデータベースに接続しよう 3. 出走馬リストから馬のユニークIDである”血統登録番号”を調べる 4. 過去5年の皐月賞のレースコードのリストを作る 5.
過去の傾向から候補を絞り込む a. ◯番人気 b. 前走レース 6. LLMに予想させよう 2-3
1. 設計は[manual]のo3-miniに頼む ◦ 無駄のない設計がうまい ◦ コードの全体を偏見なく読むのがうまい ◦ コーデイングはさせない ◦ マジックワード:
「サンプルコードはいらないから、 コーダー向けの実装TODOリストを教えて」 2. 序盤の開発ではclineに手を動かさせる ◦ コピペ ◦ Claudeはコードはうまいが迷走する ◦ clineはあまりに仕事が長いとパンクするので o3-miniを活用しよう 二刀流VIVE CODING 1-2
@horse_names.py の名前リストをもとに、 @sqltool を利用して、血統登録番号のリストへ変換し て返す関数を作って。コーダー向けの実装 TODOリストとして教えて。 KYOSOBA_MASTER2テーブルを使ってBAMEI列を検索し、KETTO_TOROKU_BANGOを取得す ればいいよ。 出走馬リストから 馬のIDである
”血統登録番号”を調べる 2-3
皐月賞予想AIを作ろう 1. LLMに検索文を書かせてみよう 2. SQLデータベースに接続しよう 3. 出走馬リストから馬のユニークIDである”血統登録番号”を調べる 4. 過去5年の皐月賞のレースコードのリストを作る 5.
過去の傾向から候補を絞り込む a. ◯番人気 b. 前走レース 6. LLMに予想させよう 3-4
@sqltool を使って、RACE_SHOSAIテーブルからKYOSOMEI_RYAKUSHO_3列を引数の文字列 (NAME3)で検索し、得られる RACE_CODE列の文字列値のリストのうち最初の 4文字を数字4桁 として扱ったときに引数の整数値( YEAR_LIMIT)より大きいという条件に該当するものの RACE_CODE列の値リストを返す関数を設計して。一緒にこの関数の動作をテストために上2つ の引数をinputしたら結果を返してくれる pyも用意してね。サンプルコードはいらないから、コー
ダー向けの実装TODOリストを教えて 過去5年の皐月賞の レースコードのリストを作る 3-4
皐月賞予想AIを作ろう 1. LLMに検索文を書かせてみよう 2. SQLデータベースに接続しよう 3. 出走馬リストから馬のユニークIDである”血統登録番号”を調べる 4. 過去5年の皐月賞のレースコードのリストを作る 5.
過去の傾向から候補を絞り込む a. ◯番人気 b. 前走レース 6. LLMに予想させよう 4-5
@race_code_filter.py を使って「皐月賞」の 2019年より後のRACE_CODEのリストを得て @sqltool を利用した調査をします。 ゴール:今年の皐月賞で誰が有力馬か、過去の皐月賞のレースの傾向から分析するための情報を得る。 手順: ・UMAGOTO_RACE_JOHOテーブルを該当する RACE_CODEごとに検索し、そのRACE_CODEに出走していた馬の KETTO_TOROKU_BANGO、TANSHO_NINKIJUN、KAKUTEI_CHAKUJUN、の値のセットリストを用意する。
・リストにある全RACE_CODEの結果をあわせたうえで、 KAKUTEI_CHAKUJUNで2着以内に入った馬たちだけでフィルタリングする。 ・フィルタした馬たちが、 TANSHO_NINKIJUNの値が1~10それぞれごとに何頭該当するか表示する。 サンプルコードはいらないから、コーダー向けの実装 TODOリストを教えて 過去5年の皐月賞の 人気別の結果成績を調べる 4-5
皐月賞予想AIを作ろう 1. LLMに検索文を書かせてみよう 2. SQLデータベースに接続しよう 3. 出走馬リストから馬のユニークIDである”血統登録番号”を調べる 4. 過去5年の皐月賞のレースコードのリストを作る 5.
過去の傾向から候補を絞り込む a. ◯番人気 b. 前走レース 6. LLMに予想させよう 5-6
@sqltool を利用して、ある馬の前走レースのレースコードを取得する関数を作ります。 UMAGOTO_RACE_JOHOテーブルを検索し、指定されたある KETTO_TOROKU_BANGOで最も 値の大きいRACE_CODEを返す関数を設計しよう。テストコードは馬名を入力させ、前処理として KYOSOBA_MASTER2テーブルからBAMEIで検索してKETTO_TOROKU_BANGOを取得したの ち、この関数を用い、得られた結果の値で RACE_SHOSAIテーブルを検索し、 KYOSOMEI_RYAKUSHO_6の値を表示するものにして。モック DBではなくsqltoolを使って。サン
プルコードはいらないから、コーダー向けの実装 TODOリストを教えて ある馬の前走の レース名を得る 5-6
@horse_bloodline.py から得た候補のKETTO_TOROKU_BANGO値のリストをもとに、 @race_info_retriever.py を利用して前走のRACE_CODE値のリストを取得し、それを @sqltool を 使ってRACE_SHOSAIテーブルで検索し、KYOSOMEI_RYAKUSHO_6を表示する機能を作って。 サンプルコードはいらないから、コーダー向けの実装 TODOリストを教えて 出走候補馬の前走の
レース名のリストを得る 6-7
1. clineはclaude専用 ◦ 料金が従量で性能に限度がある 2. Cursor Agentは最近できた ◦ まだ作りが荒い ◦
コードベースという機能で ざっくり参考になりそうなコードを探してくれる ◦ geminiのthinking modelが使えるのが強い i. 思考途中を読める ii. clineのように判断して探索できる iii. gemini 2.5はo3-miniよりコーディングがうまく Claudeと近い性能がある AGENT対決! cline vs Cursor Agent
@analyze_satsuki_sho.py のバリエーションで、人気ではなく前走のレース名を取 得するものを作って。 ・各過去皐月賞レースごとに処理。 ・そのレースの1着馬と2着馬に絞り、前走レースコードを調べる。 ・前走レースコードとは、その過去皐月賞レースのレースコードより値が小さく最も 値が近い(直近の一つ手前の)レースコード。 ・それぞれの馬の前走レースコードの KYOSOMEI_RYAKUSHO_6を表示。 過去5年の皐月賞の
前走レース別の成績傾向を調べる 7-8
皐月賞予想AIを作ろう 1. LLMに検索文を書かせてみよう 2. SQLデータベースに接続しよう 3. 出走馬リストから馬のユニークIDである”血統登録番号”を調べる 4. 過去5年の皐月賞のレースコードのリストを作る 5.
過去の傾向から候補を絞り込む a. ◯番人気 b. 前走レース 6. LLMに予想させよう
@Web でLangChainの最新の実装を調べて、ClaudeのLLM処理をする方法を調べて、入力 に応じて出力を表示する関数を作って。APIキーは.envに記載はないけど、そちらではなく CLAUDE_API_KEYという名前で環境変数としてシステムに保存済なので、それを取得する 形にして。 AIを実装 - 最新情報はWeb×Agentで! 8-9
来週のレースを予想させよう! @analyze_satsuki_sho_previous_race.py の結果か ら得られる過去レース1・2着馬が前走で出場して いたレース名と、 @previous_race_retriever.py の結果から得られる 次回皐月賞出走候補馬が前走で出場していたレー ス名を比較すると、上位に入りそうな馬が予想でき ます。これをLLMを用いて(
@claude_utils.py )検 討、予想出力させましょう。 出走候補馬の 前走のレース名の リストを得る 過去5年の皐月賞の 前走レース別の 成績傾向を調べる データとLLMのあわせ技! 9-10
まとめ 馬券は 自己責任! 競馬はロマン。血の大河ドラマ。 自分で夢を見るから楽しいものでもあるよ。 VIBE CODINGで自分だけの ソフトを作ろう!
AIキャラクターを楽しもう! CursorもClineもアップが盛ん。 すぐに情報古くなるかも…
AIキャラクターを楽しもう! AIキャラに関する情報も提供! follow @oktamajun