AIで競馬アプリを作り始めて2ヶ月半。18本できたので、始まりを記録しておきます

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

TARGETを使っていると、「このデータをもう少し違う角度から見られないかな」と思うことが増えてきます。これまでは、それを形に出来なかった。でも、今はAIがあるので自分が見たいと思うデータを見れるようなんとか出来るようになった。

で、今年の5月あたりから、それを自分でアプリにしてみることを始めました。気がついたら競馬関連のアプリが18本になっていたので、今のうちに始まりを記録しておこうと思います。うまくいった話だけではないです。

最初はCodexで作っていた

一番古いフォルダを見ると5月16日でした。補9(TARGETの絶対指数)を分析するデスクトップアプリです。これはClaude Codeではなく、OpenAIのCodexで作っていました。

ただ、正直に書くと、けっこう詰まりました。

作業が途中で止まる。エラーが出る。出てきたものが自分の思っていたものと違う。そのたびに僕はChatGPTのほうに「これってどういう意味ですか」「こう直すにはどうしたら」と聞きに行っていました。Codexで作りながら、隣でChatGPTに相談している、みたいな変な状態です(^^ゞ

まあ、非エンジニアなので当然といえば当然です。僕は技術的な実装は一切していません。やっているのは指示を出すことと、出てきたものを見て「これは違う」と言うことだけなので。

5月22日、Claude Proに課金した

Codexってデザインがいまいちなんです。ClaudeでいくつかWEBアプリを作ったのでClaude codeなら好みのデザインになるかもと思い、試しに1か月だけ課金して使ってみました。

Claude Proにサブスク課金したのが5月22日ごろです。Claude Codeの作業フォルダの日付も5月22日から始まっていたので、たぶん課金したその日に触り始めています。

Claude Codeで最初に作った競馬アプリは、日曜の夜にやっていた手作業の自動化でした。TARGETからCSVを出して、ダッシュボードのHTMLを作って、レンタルサーバーにアップロードする。毎週5分くらいの作業ですが、5分の面倒くささって毎週やると効いてくるんですよね。

ただ、ここからしばらくはCodexとの併用が続きます。理由は単純で、Claudeはすぐに使用制限が来るからです。乗ってきたところで止められる。そうすると作業が中断するので、その間はCodex側で進める。そんな行ったり来たりをしていました。

それでもClaude Codeが中心になった理由

併用しながらも、だんだんClaude Code側に寄っていきました。理由は2つあります。

ひとつはUI/UXです。出てくるアプリの見た目や操作感が、僕の好みに合っていた。これは本当に好みの問題なので、人によって逆になると思います。でも自分専用のアプリなので、自分の好みに合うかどうかは、けっこう大事なんですよ。

もうひとつは、LLMとしての動きの良さです。こちらの言いたいことの汲み取り方というか。「ここが違う」と言ったときに、直してくる方向が合っている確率が高かった。

Fable 5が来て、できることの段が変わった

作業の記録を数えてみたら、使っているモデルがはっきり移り変わっていました。

  • 5月:Sonnet 4.6(この月のセッションは全部これ)
  • 6月:Opus 4.8とFable 5が混在
  • 7月:Fable 5が主力(20セッション中15)

やりとりの数で言うと、Fable 5が7,163、Sonnet 4.6が3,231、Opus 4.8が2,556でした。6月にFable 5を使い始めてから、明らかにできることの段が上がったのは事実です。

具体的にどう変わったかというと、こういうことができるようになりました。

TARGETのデータファイルを直接読めるようになった。 それまではTARGETの画面からCSVやExcelを書き出して、それをアプリに読ませていました。今は`C:\TFJV`の中のファイルを直接解析しています。18本のうち13本がこの方式です。書き出しの手間がまるごと消えました。

JRA-VANのデータラボから直接データを取れるようになった。 時系列オッズを2012年まで遡って集めるアプリでは、単勝だけで427万時点、データベースが1.39GBになりました。これはCSV経由では現実的に無理な量です。

扱えるデータの桁が変わった。 調教のアプリは坂路とウッドのラップ1,260万件、種牡馬のアプリは6年分275,456走、調教師のアプリは263,055走を集計しています。以前ならExcelが固まって諦めていた規模です。

ただ、先回りされて困ることもある

いいことばかりではないです。

できることが増えるのと引き換えに、勝手に作業を進めてしまうことが増えました。こちらが「まずここまで」と言っているのに、その先まで作ってしまう。しかもその先回りした部分に穴があって、結局やり直し、ということが何度もありました。

今に始まったことではないですし、そういうふうにできているものなので、文句を言っても仕方ないんですけどね。ただ、作る側としては「先に進むな」と言い続ける必要があります。

実際、こんなことがありました。オッズのアプリで「このパターンの馬は買ってはいけない」というルールを見つけたつもりでいたんです。ところが検証のコードをよく見たら、判定の時点より後のデータまで見て判断していた。レースが終わってからでないと分からない情報を使って「これは避けるべき」と言っていたわけです。実際に買える条件で取り直したら、その数字はほとんど平均に戻りました。

これは僕の指示が甘かったせいでもあるので、AIのせいだけにする気はありません。ただ、出てきた結果を疑うのは人間の仕事だな、と思い知らされました。この失敗はメモに残して、同じ間違いをしないようにしています。

skillという「覚えてもらう場所」

もうひとつ、大きかったのがskillの仕組みです。

やっていくうちに分かった知識、たとえばTARGETのファイルのどこに何が入っているかとか、調教データの読み方の癖とか、そういうものを文書にして置いておくと、次からそれを読んでから作業してくれる。毎回ゼロから説明しなくてよくなりました。知識が積み上がっていく感じがあります。

別のプロジェクトで作ったskillを持ってこられるのも良かったです。調教のアプリ用に書いたデータの読み方が、そのまま新馬戦のアプリでも使える。同じことを2回説明しなくていいのは、地味ですがかなり効きます。

2ヶ月半で18本

月別に並べるとこうなりました。

  • 5月:3本(補9分析、日曜夜の自動化、競馬新聞)
  • 6月:7本(レースシミュレーション動画、タイム分析、騎手エージェント、出走馬分析、過去20年レポート、逃げ馬メーター、種牡馬コース適性)
  • 7月:8本(巻き返し検知、新馬チェッカー、調教師分析、オッズ異常検知、追いきりマスター、セレクトセール、予想の合議システム、ほか)

だんだんペースが上がっているのは、たぶん自分の指示の出し方が慣れてきたのと、skillに知識が溜まってきたのと、両方だと思います。

もちろん全部が完成しているわけではありません。今も週次で動かしているのが数本、作りかけが数本、いったん保留にしたものもあります。オッズのアプリは「これ単独では勝てない」という結論が出たので、いったん止めて別のアプリと合体させる方向で考えています。

気をつけていること

これらのアプリで扱っているのは、自分のPCの中にあるTARGETのデータと、公式に配信されているデータだけです。処理も表示も全部PC内で完結していて、インターネットに公開されるものではありません。ブログ用に出しているHTMLだけ、中身を確認してからアップしています。

※各アプリは個人使用を目的に作成しています。

AIがあっても、何を見たいかは自分で決める

18本を並べてみて思ったのは、結局どれも「僕がずっと見たかったもの」だということです。

誰がハナを切るのか。調教でいつもと違うことをしている馬はどれか。着順は悪いけど本当は強い競馬をしていた馬は。そういう問いは、AIが出してきたものではありません。28年TARGETを触ってきて溜まった「気になること」です。

AIがやってくれたのは、その問いを形にする部分だけなんですよね。逆に言うと、問いがなければ何も始まらない。ここは変わらないなと思います。

競馬の予想が当たるようになるかどうかは、また別の話ですけど(^^ゞ、見たかったものを自分で作れるようになったのは、やっぱり面白いです。

競馬アプリ一覧 — nobita

コメント