はじめに
PingCAPでは、TiDB Cloud Serverlessの機能を活かしたTiDB Future App Hackathonを行っています。今年の受賞作の中に、AIをうまく活用したSQL Murder Misteryの改良版、QueryHuntがあったので紹介します。
SQL Murder Misteryとは
SQLを使った殺人事件操作ゲームです。シチュエーションが文章で与えられ、手がかりや容疑者、アリバイといった一連のテーブルが与えられるので、SQLを駆使して真犯人を見つけ出します。ゲームはそんなに難しくはありません。一番難しいのは英語を読むことだったりします。
実行
こちらからStreamlitのcommunity cloudにデプロイされたバージョンを試すことができます。
- まずは Playを押してゲームスタート
-
generate story
を押してストーリーを生成します
- ストーリーが生成されたら、テーブル一覧を参考に犯人を探していきます
技術的な詳細
内部では、ベースとなるテーブル構造を定義しておき、そのスキーマをTiDBに格納しておきます。llamaIndexを利用して、そのスキーマをベースとしたストーリーの生成、生成したストーリーからテーブルのレコードの生成、レコードのバリデーションなど一連の作業を llamaIndex Workflows を使って実施しています。
日本語化
LLMアプリケーションの良いところは、プロンプトによって簡単にアプリケーションの挙動を変えられるところでしょう。このQuery Huntを変更して日本語でストーリーを出すようにしたものを作成しました。
OpenAIのAPIキーとTiDB Cloud ServerlessとPython/Streamlit が動く環境があれば楽しめますので、ぜひ挑戦してみてください。
おわりに
Query Huntの作者のOleksandr Arsentievさんに感謝します。
今年のFuture App Hackathonでは、入稿要件のショート動画のナレーションをTTSで作っている応募者が多く見受けられました。英語での説明動画とか、説明はもはや障壁ではないですね。
来年はぜひ日本からも多く応募していただけると嬉しいです!