AIタロット占いアプリに挑戦!(1)

はじめに

みなさん、こんにちは!普段は専門学校や高専でプログラミングの非常勤講師をしている52歳のおっさんです。今回は、私が最近取り組んでいる「AIタロット占いアプリ」開発について書いていきます。

なんでタロット?

何故タロット占いか、というと、まぁオカルトとかそういうの好きなんです。そしてAI絡めようと思って考えたときにタロットだったんですね。
0年代から人工無能などなんだのと追ってはいたものの、自力では中々難しく、物になってなかった。
でも、自分の力もまずまず付いてきたし、最近は色々楽になる道具もライブラリもある。AIも助けてくれる。ならなんとかなるのではと、挑戦することにしました。

さて、このプロジェクト、まだまだ始まったばかり。というか、データ作りで立ち往生中です。タロットカードのデータベースを作るのが思いのほか大変で...。タロット象徴事典を調べたり、自分なりの解釈をまとめたり、Wikipediaで他の人の解釈を確認したり。結構面倒くさくて、やっては放置の繰り返しです。

でも、この作業が終わらないと先に進めないんですよね。「もう自力は諦めよう。折角だからAIだ」ってことで、プロジェクト開始です。

現状

普段はAccessやMariaDBを触ってるんですが、今回はChromaDBってやつを使うことにしました。ベクターデータベースというもので、コンテンツをAIが使いやすいようにして保存してくれるというもの。いつものRDBとはちがうもの。
環境も違うし、授業で使ってない言語も使ってるので、なんだか新鮮です。

ただまぁ、52歳の頭は固いみたいで、なかなか進みません。「あれ?こうじゃなかったっけ?」「えっ、こんな機能あったの?」の連続です。でも、これが楽しいんですよね。有り体な表現ですが、知らないことだらけで毎日が発見の連続です。

今のところ、データをChromaDBに入れて、インポート・エクスポートする部分を作っています。自力だけだと結構苦労したと思うのですが、Claude3.5 Sonnet のお陰でさくさくです。
と言っても、Webの方では無く、VSCodeのcontinueプラグイン経由で使ってるから、今流行りのArtifactは使ってないですけどね。
continueプラグインはAPI経由で色々なAIを使えるもの。有名な商用のAIやローカルのものも使えます。現在はClaudeとGeminiで運用中。

ローカルLLMの利用

プログラム生成は商用のAIの助けを借りていますが、データ作成についてはローカルLLMを利用したいと思っています。
現在で来ている部分は自分で作ったものですが、残りは現データやAIに判断させながら生成したい。で、まぁAIが生成したデータの著作権についてはAIに聞くと問題ないようなことを言うのですが、自分の調べたところではちょっと不安。
まぁ商用とかにしなければ良さそうですが。
で、折角最近は良いローカルモデルも出てるので、その辺りから使ってみたいな、と。

この先

データが作成出来たら、簡単な占いプログラムにします。
幾つかのスプレッド(カードの展開方法)によって、解釈のやり方に違いがあるので、そこで面白い物が出来ると思います。

普通の占いアプリとの違い

普通の占いアプリでは、クライアントの話を取り入れての占いはできません。カードを展開し、それを告げるだけです。多少バリエーションを入れるとしても、恋愛仕事などのジャンルを切り替えるくらいでしょう。
でも、AIを使えば、クライアントの話を聞いた上で、カードの解釈を織り交ぜた回答を示せるかもしれません。

対面との違い

しかし、これで対面占いが精度で負けるとは思えません。
結局、クライアントがアプリにどのような質問をするか、自分の悩みを書くかというところで、AIと人間では差が出ます。AIは来るものを受け付けるだけですが、対面ではそこから更に突っ込んだり、補完したりすることが出来ます。
AI利用時には利用者にも能力が要求されます。そこはまだ人間が勝つでしょう。

次は

まずはデータの作成ですね。
それが終わったら、CUIで簡単なスリーカード当たりから実装ですかね。
それができたらGUIですね。

タロットの画像

GUIだと、タロットの画像が必要だと思います。ただ、これは既存の画像では無く、できれば自分で作りたい。一番メジャーな「ライダー版」にはパブリックドメインとなった版もありますが、やっぱり自分でも作りたい。
KritaにKrita-ai-diffusionというAIサポートでイラストかけるプラグインがあるので、これでなんとかしたいです。

記事

ChromaDBが運用出来る?ようになったらデータ作成。
CALM2でも割と良い感じのデータができたので、Calm3でやってみても良いですね。簡単にいくと良いのですが。
それではお楽しみに。


この記事が気に入ったらサポートをしてみませんか?