執筆日:2026年1月5日**
免責事項 本記事は執筆時点の情報に基づいています。内容は将来変更される可能性があります。
こんにちは!本ブログを閲覧いただきありがとうございます。株式会社NTTデータ九州ビジネス共創部デジタルビジネス推進室D&Iチームの中島です。
D&Iチームでは、TableauやAlteryx、SnowflakeなどのD&I(データ&インテリジェンス)領域におけるツール導入支援や開発を通じて、お客様の業務/意思決定の効率化・高度化のご支援に取り組んでいます。
本記事では、AI×データ利活用の取り組みとして「生成AIを業務で使いたいけれど、データ持ち出しや実装コストがネック」という課題に対し、Snowflake Cortex AI を活用することで SQLだけでAI機能を使える という点に注目しました。
そこで今回は、Snowflake 内にあるデータを活用し、Snowflake Cortex AIの関数の1つであるCOMPLETE関数を用いて分析を行ってみました。
Snowflake Cortex AIについては、下記公式ドキュメントをご参照ください。
★Snowflake Cortex AIの概要
★リージョンごとの対応モデル
概要
1.文章要約 - 問い合わせ内容自動要約
2.カテゴリ分類 - 自動カテゴリ提案
3.優先度判定 - 内容から緊急度を自動分析
4.技術情報抽出 - エラーコードやバージョン情報を自動抽出
5.自動応答生成 - 返信メールのテンプレートを自動作成
事前準備
今回Snowflake Cortex AIを試すにあたり、実際の顧客サポート現場を想定し、以下のような問い合わせデータを用意しました。
またモデルは東京リージョンで使用可能なmistral-large2を使用しました。
| contact_id | customer_name | submitted_date | category | priority | title | description | status |
|---|---|---|---|---|---|---|---|
| TKT-001 | 山田太郎 | 2025-12-15 | 製品不具合 | 高 | アプリが起動しない問題 | 昨日からスマートフォンアプリが全く起動しなくなりました。ホーム画面のアイコンをタップしても、ロゴが表示された後すぐに落ちてしまいます。再インストールも試しましたが改善されません。iOS 17.2を使用しています。早急な対応をお願いします。 | 未対応 |
| TKT-002 | 佐藤花子 | 2025-12-16 | 請求・支払い | 中 | 二重請求について | 今月の請求書を確認したところ、同じサービスの料金が2回請求されています。12月1日と12月3日の両方で9,800円が引き落とされていますが、私は1つのプランしか契約していません。クレジットカードの明細でも確認しました。過剰な請求分の返金処理をお願いします。 | 対応中 |
| TKT-003 | 鈴木一郎 | 2025-12-17 | 機能追加要望 | 低 | ダークモード機能の追加希望 | いつもサービスを利用させていただいています。夜間に作業することが多いのですが、画面が明るすぎて目が疲れます。ダークモードの実装を検討していただけないでしょうか。競合他社のサービスでは既に実装されており、とても使いやすいです。 | 未対応 |
| TKT-004 | 田中美咲 | 2025-12-18 | 製品不具合 | 高 | データ同期エラー | クラウドストレージとの同期が3日前から全く機能していません。エラーメッセージには「同期に失敗しました。ネットワーク接続を確認してください」と表示されますが、インターネット接続に問題はありません。重要なファイルがバックアップされていない状態で不安です。ログファイルも確認しましたが、原因が分かりません。 | 未対応 |
| TKT-005 | 高橋健太 | 2025-12-19 | アカウント管理 | 中 | パスワードリセットができない | パスワードを忘れてしまい、リセットを試みていますが、確認コードが記載されたメールが届きません。迷惑メールフォルダも確認しましたが見つかりません。登録メールアドレスは間違いなく正しいものです。電話での本人確認による別の方法でのリセットは可能でしょうか。 | 対応中 |
| TKT-006 | 伊藤さくら | 2025-12-20 | 使い方・操作 | 低 | エクスポート機能の使い方 | データをCSV形式でエクスポートしたいのですが、マニュアルを見てもよく分かりません。エクスポートボタンを押すと複数のオプションが表示されますが、どれを選べば良いのでしょうか。特定の期間のデータのみを出力することは可能ですか。手順を教えていただけると助かります。 | 未対応 |
| TKT-007 | 渡辺誠 | 2025-12-21 | 製品不具合 | 高 | 決済処理が完了しない | 顧客への請求処理を行おうとしていますが、システムエラーで決済が完了しません。エラーコード「ERR_PAYMENT_503」が表示されます。複数の決済方法を試しましたが全て失敗します。月末の締め処理に間に合わない可能性があり、業務に支障が出ています。至急対応をお願いします。 | 未対応 |
| TKT-008 | 中村陽子 | 2025-12-22 | 請求・支払い | 中 | プラン変更後の請求額について | 先月スタンダードプランからプレミアムプランに変更しましたが、今月の請求額が想定より高くなっています。日割り計算がされていないように見えます。変更は15日に行ったので、残りの半月分だけプレミアム料金になると理解していました。内訳の詳細を教えてください。 | 未対応 |
| TKT-009 | 小林達也 | 2025-12-23 | 機能追加要望 | 低 | モバイルアプリのオフライン機能 | 外出先でインターネット接続がない環境でもアプリを使用できるようにしてほしいです。特に地下鉄での移動中や飛行機内でもデータの閲覧や編集ができると便利です。オフラインで編集した内容は、接続が回復した時に自動で同期されるようにしてほしいです。 | 未対応 |
| TKT-010 | 木村由美 | 2025-12-24 | セキュリティ | 高 | 不審なログイン通知 | 本日早朝、私のアカウントに海外からのログイン試行があったという通知を受け取りました。私は日本にいますし、その時間はログインしていません。すぐにパスワードを変更しましたが、アカウントが乗っ取られていないか心配です。ログイン履歴の確認と、二段階認証の設定方法を教えてください。 | 対応中 |
1.文章要約 - AIによる問い合わせ内容自動要約
はじめに、問い合わせ内容を生成AIに要約させてみたいと思います。
SELECT
contact_id,
customer_name,
submitted_date,
title,
AI_COMPLETE(
'mistral-large2',
CONCAT(
'DESCRIPTION内の文章を1文で要約してください。\n\n',
description
)
) as summary
FROM customer_support;
例えばTKT-002の問い合わせ内容については
before
今月の請求書を確認したところ、同じサービスの料金が2回請求されています。12月1日と12月3日の両方で9,800円が引き落とされていますが、私は1つのプランしか契約していません。クレジットカードの明細でも確認しました。過剰な請求分の返金処理をお願いします。
after
今月の請求書に同じサービスの料金が2回請求されており、過剰な請求分の返金をお願いします。
実際に問い合わせ本文を1文に要約してみたところ、要点を押さえた短縮が行われており、内容把握の初動としては十分でした!
2.カテゴリ分類 - AIによる自動カテゴリ提案
次に今回受けている問い合わせの内容からどのようなカテゴリに分類されるか分析し、こちらが指示したカテゴリに分類してもらいます。
SELECT
contact_id,
title,
category as current_category,
AI_COMPLETE(
'mistral-large2',
CONCAT(
'以下の問い合わせを分析し、最も適切なカテゴリを「技術的問題」「請求問題」「機能要望」「アカウント問題」「セキュリティ」の中から1つだけ選んで回答してください。カテゴリ名のみを出力してください。\n\n',
'タイトル: ', title, '\n',
'内容: ', description
)
) as suggested_category
FROM support_tickets;
多くの場合で妥当と思える結果が返りました。
3.優先度判定 - 内容から緊急度を自動分析
続いて、問い合わせの内容から緊急性を判断し、対応の優先度をつけてもらいます。
SELECT
contact_id,
customer_name,
title,
priority as current_priority,
AI_COMPLETE(
'mistral-large2',
CONCAT(
'以下の問い合わせ内容の緊急度を「高」「中」「低」で判定してください。判定理由も簡潔に述べてください。\n\n',
description
)
) as ai_priority_analysis
FROM customer_support
WHERE status = '未対応'
ORDER BY submitted_date;
本文から緊急度(高・中・低)を推定させたところ、不具合系や業務影響がある文章は「高」と返るなど、一定の整合性が見られました。
4.技術情報抽出 - エラーコードやバージョン情報を自動抽出
次に、技術的な問い合わせから顧客が使用している製品、バージョンなどを抽出してみましょう。
SELECT
contact_id,
customer_name,
AI_COMPLETE(
'mistral-large2',
CONCAT(
'以下の問い合わせ内容から、顧客が使用している製品・バージョン・エラーコードなどの技術情報を抽出してください。該当情報がない場合は「情報なし」と回答してください。\n\n',
description
)
) as technical_info
FROM customer_support
WHERE category = '製品不具合';
想定通り、正常に検出できていることが確認できました。
5.自動応答生成 - 返信メールのテンプレートを自動作成
最後に、お客様からの問い合わせに対して回答するためのメールの文章を作成してもらいます。
SELECT
ticket_id,
customer_name,
title,
AI_COMPLETE(
'mistral-large2',
CONCAT(
'あなたはカスタマーサポート担当者です。以下の顧客からの問い合わせに対して、丁寧で分かりやすい返信メールの案を日本語で作成してください。\n\n',
'【問い合わせ内容】\n',
description,
'\n\n返信は以下の構成にしてください:\n',
'1. お詫びまたは感謝の言葉\n',
'2. 状況の理解を示す\n',
'3. 具体的な対応策\n',
'4. 次のステップ\n',
'5. 締めの言葉'
)
) as suggested_response
FROM support_tickets
WHERE ticket_id IN ('TKT-001', 'TKT-004', 'TKT-007')
ORDER BY priority DESC;
以下TKT-001の問い合わせに対する生成AIが作成した返信文です
件名: スマートフォンアプリの起動に関するご案内
お客様
お世話になっております。この度はスマートフォンアプリが起動しなくなり、ご不便をおかけしていることについて、誠に申し訳ございません。
まず、ご連絡いただきましてありがとうございます。お客様の状況を理解し、早急に対応させていただきます。
以下の対応策を試していただけますと幸いです。
- アプリのキャッシュをクリアする
- 設定 > 一般 > iPhoneのストレージ > [アプリ名] > アプリを削除 > 再インストール
- デバイスの再起動
- デバイスを再起動して、再度アプリを起動してみてください。
- ソフトウェアの更新
- 設定 > 一般 > ソフトウェアの更新 で、最新のiOSに更新していただけますと幸いです。
上記の対応策を試しても問題が解決しない場合は、以下の情報をご提供いただけますと、さらに詳しいサポートを提供させていただきます。
- 使用しているデバイスのモデル名
- アプリのバージョン
- 問題が発生した具体的な日時
ご不便をおかけしていることを重く受け止めております。何卒よろしくお願い申し上げます。
敬具
[あなたの名前]
[あなたの役職]
[会社名]
[連絡先]
文章の構成は指示通りにできており、人手での修正は必要なものの工数削減の観点では効果が期待できる結果となりました!
おわりに
今回は、Snowflake Cortex AIを活用し、顧客サポート現場を対象とした自然言語による分析を試してみました。
実際に操作してみるることで、SQLの知識だけで手軽にAI分析が実現できることを実感しました。特に、複雑なモデルのデプロイやAPIキーの管理といった準備をしなくても要約や情報抽出が簡単に実行できるところは、プロンプトの工夫やコスト管理、リージョンごとの利用可能機能の違いなど、実運用に向けた検討すべきポイントはあるものの、非エンジニアの方のドキュメント活用(ナレッジ管理や顧客サポートの効率化)において非常に有用だと感じました。
今後はこうした点を踏まえながら、私自身のSnowflakeでのデータ活用能力を深めるとともに、生成AIを組み込んだデータパイプラインの可能性をさらに広げていきたいと思います。
本記事が、Snowflake Cortex AIや自然言語によるドキュメント分析に興味を持つ方々の参考になれば幸いです。




