メインコンテンツへスキップ

VillageSQL is a drop-in replacement for MySQL with extensions.

All examples on this page work on VillageSQL. Install Now →
テキスト分類 — 内容に基づいて行をカテゴリに割り当てること — は、通常、データを Python スクリプトにエクスポートし、AI モデルを呼び出し、結果をインポートし直すことを意味します。VillageSQL の ai_prompt() を使うと、分類を SQL の中で直接実行でき、ロジックをデータの近くに置いたまま、エクスポートとインポートの往復をなくせます。

問題: SQL の外での分類

VillageSQL を使わない場合の典型的なワークフローは次のとおりです。
これは動作しますが、分類ロジックはアプリケーションコードの中にあります。マイグレーション、バックフィル、1 回限りの再ラベル付けはどれも、SQL クエリではなくスクリプトの実行を必要とします。

VillageSQL の場合: 分類器としての ai_prompt()

信頼できる分類の鍵は、厳密なプロンプトです。正確なカテゴリを列挙し、そのうちの 1 つだけを返すようにモデルに指示し、必要に応じて例を示します。

分類出力の検証

モデルは時折、予期しない出力を返します。結果をそのまま格納し、別途検証します。

マルチラベル分類

1 つの行が複数のカテゴリに属しうる場合は、JSON 配列を要求し、それを JSON 列に格納します。

信頼度スコアの構築

ラベルと信頼度の両方を持つ構造化された JSON を返すようにモデルに求めます。

効果的なプロンプトのパターン

精度を高めるには、モデルに与える選択肢のカテゴリを少なくします。5〜6 個を超える選択肢は、高速で安価なモデルの信頼性を下げます。 セットアップとプロバイダーの選択肢については、MySQL を AI API に接続するを参照してください。ai_prompt() のより広い使用パターンについては、MySQL のクエリから AI モデルを実行するを参照してください。

よくある質問

AI による分類は、学習済みモデルと比べてどのくらい正確ですか?

Claude Haiku のような高性能なモデルは、単純な分類タスクでは学習データなしで高い精度を達成します。微妙な区別があるドメイン固有のカテゴリでは、プロンプトに例を示すか、より大きなモデルを使う必要があるかもしれません。

トリガーを使って、挿入時に行を分類できますか?

はい。ただし注意が必要です。INSERT のたびに ai_prompt() を呼び出すトリガーを使うと、すべての書き込みに 5〜30 秒かかるようになります。定期的なバッチジョブで分類し、ラベルが利用可能になるまでの短い遅延を受け入れるほうが良いでしょう。

モデルが NULL を返した行はどう扱えばよいですか?

ai_prompt() は API 呼び出しが失敗すると NULL を返します。バッチループでは、NULL がなくなるまで UPDATE を実行し続け、一時的な失敗には再試行ロジックを入れます。

分類にはどのモデルを使うべきですか?

まず claude-haiku-4-5 または gpt-4o-mini から始めます。どちらも高速で安価です。精度が許容できない場合にのみ、より高性能なモデルに切り替えます。

トラブルシューティング

関連項目