VillageSQL is a drop-in replacement for MySQL with extensions.
All examples on this page work on VillageSQL. Install Now →
ai_prompt() がそれを追加します。
VillageSQL の場合: SQL の中の要約
構造化された要約
特定のフィールドを抽出する必要がある用途では、JSON 出力を求めます。複数列の内容を要約する
複数のフィールドを結合して、より豊富なコンテキストをモデルに与えます。LEFT(body, 3000) は、過度に長いテキストをモデルに送ることを防ぎます。ほとんどの AI モデルにはトークンの上限があります。非常に長いドキュメントでは、最初の数千文字を要約するか、内容をチャンクに分割してください。
長さとスタイルの制御
プロンプトの言い回しが出力の長さとトーンを制御します。
UI のプレビューで使う要約では、あふれを防ぐために文字数の上限を指定してください。
モデルの選択
要約は一般に、より高速で安価なモデルで十分にこなせます。一括要約にはclaude-haiku-4-5 または gpt-4o-mini を使ってください。次の場合は claude-sonnet-5 に切り替えます。
- 元のテキストが長く複雑である
- ニュアンスのあるフィールドを含む構造化 JSON 抽出が必要である
- 抽出した事実の正確さがコストより重要である
よくある質問
元のテキストはどのくらいの長さまで扱えますか?
実用的な上限は 1 回の呼び出しあたり数千語です。AI モデルにはトークンの上限があります(現在のモデルでは通常 100K〜200K トークン)が、非常に長い入力はコストが高く、時間もかかります。約 5000 語を超えるドキュメントでは、最初のセクションを要約するか、チャンクに分割して各チャンクを要約してください。要約を全文検索インデックスで使えますか?
はい。要約列にデータを入れた後、その列に FULLTEXT インデックスを追加します。要約は短くキーワード密度が高いため、生の内容よりも全文検索の対象として優れていることがよくあります。同じドキュメントからは常に同じ要約が生成されますか?
いいえ。AI モデルは確率的です。同じプロンプトでも、呼び出しごとにわずかに異なる出力が生成されることがあります。一貫性が重要な場合は、要約を一度生成して保存し、読み取りのたびに再生成しないでください。すでに要約済みの行はどう扱いますか?
元の内容が変わらない限り、再要約しないでください。WHERE summary IS NULL を使って、新規または更新された行だけを処理します。変更を追跡する必要がある場合は、summary_updated_at 列を追加し、内容の最終更新タイムスタンプと比較してください。
トラブルシューティング
関連項目
- MySQL のクエリから AI モデルを実行する — このガイドの基礎となる ai_prompt() 関数
- MySQL データのセンチメント分析 — ai_prompt() を使った別のテキスト分析パターン
- MySQL で AI を使ってテキストを分類する — 同じ手法でテキストを分類する