AIを使って競馬アプリを作ってみた

競馬アプリ
スポンサーリンク
スポンサーリンク

最近のAIは、自然な言葉で指示するだけでアプリを作れるようになってきました。

僕はChatGPTとClaudeの両方に課金しています。合わせると月額7,000円ぐらいです。そのため、OpenAIのCodexとAnthropicのClaude Codeを使うことができます。

以前なら、こうした開発ツールを使うには、ターミナルと呼ばれる黒い画面を開いて、エンジニアが使うコマンドを入力する必要がありました。

黒い画面に英語がズラズラと出てくるだけで、プログラミングを知らない人にはかなり高い壁だったと思います。エラーが出ても、何が悪いのかさっぱり分かりません。

今はCodexやClaude Codeにもアプリがあるので、ChatGPTに質問するのと同じような感覚で使えます。

「この画面に一覧表を追加して」
「CSVファイルを読み込めるようにして」
「この数字をグラフで表示して」
「TARGETで使える外部指数として出力して」

こんな感じで伝えると、AIが必要なファイルを確認して、プログラムを書き換えてくれます。

もちろん、一度で思い通りになるとは限りません。ボタンが動かなかったり、計算結果が違ったり、画面のレイアウトが崩れたりすることもあります。

でも、その画面やエラーをAIに見せて、

「ここが動かない」
「数字が合っていない」
「もう少し見やすくしてほしい」

と伝えれば、原因を調べて修正してくれます。

プログラミングを知らない僕でも、AIとやり取りしながらアプリを作れるようになりました。

AIの進化が分かりやすい

CodexやClaude Codeを使っていると、AIモデルが進化するたびに便利になっているのが分かります。

以前は、小さな機能を追加するだけでも何度も説明が必要でした。ひとつ直すと別の場所が動かなくなることもありました。

最近は、アプリ全体の構造を見ながら、

「この機能を追加するなら、ここも変更する必要がある」
「既存の機能を壊さないようにテストする」
「使い方が分かりやすいように画面も調整する」

といったところまで考えてくれるようになっています。

こちらがやりたいことを説明すると、AIが必要な作業を整理して進めてくれる感じですね。

ただし、AIに任せれば何でも正しくできるわけではありません。競馬データの意味やTARGETの仕様は、こちらで確認する必要があります。

AIはプログラムを書くことは得意ですが、「その数字を競馬予想でどう使うのか」までは、使う人が決めないといけません。

TARGETを使っていると欲しい機能が出てくる

僕は普段、競馬データを見るためにTARGET frontier JVを使っています。

TARGETには競馬予想に必要なデータがかなり入っています。出馬表、過去走、騎手、調教師、血統、タイム、ラップ、馬場状態、オッズなど、いろいろな角度からレースを見ることができます。

長く使っていると、

「このデータをもう少し見やすくできないかな」
「数字だけではなく、グラフにしたら分かりやすそう」
「複数のデータをまとめて比較したい」
「この条件を外部指数にできないかな」

と思うことが増えてきます。

TARGETだけでもかなりのことができますが、自分が見たい形に完全に合わせるのは難しいです。

表示されているデータを、もう少しビジュアル化して見たい。複数の情報を組み合わせて、新しい指数を作りたい。過去の傾向をボタンひとつで集計したい。

以前なら、こういうことを思いついても、Excelを使うしかありませんでした。

以前はExcelで作っていた

これまでは、TARGETからデータを出力して、Excelに読み込ませていました。

Excelの関数を使って集計したり、VBAを使って外部指数を作ったり、必要な列を並べ替えたりしていました。

Excelは便利ですが、データが増えると重くなります。シートや数式も複雑になって、しばらく使わないと自分でも何をしていたのか分からなくなることがあります(^^ゞ

新しい条件を追加するたびに数式を直し、列を増やし、参照範囲を変更する必要もあります。

データの取り込みから集計、指数作成、TARGET用ファイルの出力まで、ひとつの画面でできたら便利なのに、と以前から思っていました。

でも、自分ではアプリを作れません。

アイデアはあっても、それを形にする方法がなかったわけです。

今はAIが形にしてくれる

今は状況が変わりました。

「TARGETから出力したデータを読み込んで、条件別に集計するアプリを作りたい」

そうAIに伝えると、必要な画面や処理を作ってくれます。

最初は簡単なものでも、使っているうちに欲しい機能が出てきます。

「競馬場ごとに切り替えたい」
「期間を指定できるようにしたい」
「芝とダートを分けたい」
「一覧をCSVで保存したい」
「TARGETの外部指数として読み込める形式にしたい」
「数字だけでは分かりにくいのでグラフも表示したい」

こうした要望も、少しずつ追加していけます。

以前なら「こんなアプリがあればいいのに」で終わっていたものが、今は本当に作れるようになりました。

大げさに言えば、あとはアイデア次第という状態です。

もちろん、そのアイデアが役に立つかどうかは別の話です。何でも数字にすれば馬券が当たるわけではありません。

でも、試してみたいことを自分で形にできるのは面白いですね。

TARGETのデータを使わない手はない

TARGETには、長年蓄積された競馬データがあります。

このデータを使わない手はありません。

TARGETには多くの検索機能や集計機能がありますが、すべての人が見たい形に対応できるわけではありません。予想方法は人によって違うので、欲しい画面や指数も違います。

僕の場合は、TARGETのデータを別の角度から見たり、複数のデータを組み合わせたりしたいと思うことが多いです。

例えば、単純な成績表だけではなく、競馬場や距離ごとの傾向を色やグラフで見たい。馬場状態やクッション値を過去のレースと並べたい。騎手や調教師の成績を、条件を変えながら確認したい。

TARGETの外部指数も、既存の指数を取り込むだけではなく、自分で作った指数を入れて使うことができます。

その外部指数を、もう少し簡単に作成して更新できるようにしたい。

だったら、自分でアプリを作るしかないですね。

デスクトップアプリとWebアプリ

AIを使って、デスクトップアプリとWebアプリの両方を作っています。

デスクトップアプリは、Windows上で普通のソフトとして動かせます。TARGETと同じパソコンで使う場合や、ローカルにあるCSVファイルを処理する場合には使いやすいです。

データを外に出したくない場合にも向いています。競馬データを自分のパソコンの中だけで処理できるので安心です。

一方、見た目を重視するならWebアプリがいいですね。

グラフ、表、色分け、タブ、検索、絞り込みなどを入れやすく、画面もきれいに作れます。ブラウザで動くので、操作にも慣れています。

Webアプリといっても、必ずインターネット上に公開する必要はありません。自分のパソコンの中だけで動かすこともできます。

データ処理やTARGETとの連携はデスクトップアプリ、分析結果の表示はWebアプリという分け方もできます。

このあたりもAIと相談しながら決めています。

自分専用なので何度でも変更できる

自分で作ったアプリの良いところは、自分専用にできることです。

一般販売されているアプリは、多くの人が使いやすいように作られています。そのため、自分には必要のない機能があったり、逆に欲しい機能がなかったりします。

自分専用なら、必要なものだけを入れられます。

使っていて不便なところがあれば直す。新しいアイデアを思いついたら追加する。見づらいと思ったら画面を作り直す。

何度でもアップデートできます。

「このボタンはほとんど使わないから消したい」
「この数字を一番目立つところに出したい」
「この条件を初期設定にしたい」

こういう細かい部分まで、自分に合わせられるのがいいですね。

完成品を買うというより、自分の予想方法に合わせてアプリを育てていく感じです。

AIがあってもアイデアは人間が考える

AIがプログラムを書いてくれるようになっても、何を作るかは人間が考える必要があります。

TARGETのどのデータに注目するのか。
どんな条件で集計するのか。
その数字をどう指数化するのか。
どんな画面なら予想の時に見やすいのか。

この部分は、競馬を見てきた人でないとなかなか分かりません。

AIは、こちらのアイデアを形にするところを助けてくれます。

だから、プログラミングができるかどうかより、「こういうものが欲しい」と具体的に考えられるかどうかが大事になってきたように感じます。

長くTARGETを使っていて、「ここがもう少しこうだったら」と思った経験が、そのままアプリのアイデアになります。

作った競馬アプリを少しずつ紹介します

まだ作り始めたばかりですが、すでにいくつかの競馬アプリを作っています。

TARGET用の外部指数を作るもの。
過去データを一覧表示するもの。
騎手や調教師を条件別に集計するもの。
競馬場や馬場状態をビジュアル化するもの。

最初は小さな機能だけだったアプリも、使いながら少しずつ機能を増やしています。

AIに頼めばすぐ完成するというほど簡単ではありません。数字が合っているか確認したり、TARGETに正しく取り込めるか試したりする必要があります。

でも、自分でプログラムを最初から書くことを考えれば、かなり楽になりました。

これから、作ったアプリを少しずつ紹介していこうと思います。

どんなデータを使っているのか。
どういう画面にしたのか。
TARGETとどう連携しているのか。
実際に使って便利だったところ。
うまくいかなかったところ。

そのあたりも含めて書いてみるつもりです。

以前は「こんな競馬アプリがあったらいいな」と思うだけでした。

今は、そのアイデアをAIと一緒に形にできます。

競馬予想が当たるかどうかは別として(^^ゞ、やりたかったことを自分で作れるようになったのは、かなり面白いですね。

コメント