🚀

データウェアハウスでアプリ開発!? 新機能Databricks Appsで社内アプリを作った話

に公開

はじめに

本記事は、#IVRy_AIブログリレー の9月19日(13日目)の記事です。昨日は、デザイナーのtorimizunoさんが「AIと協業するデザイン実践──プロトタイピングで見えた変化」という記事を公開しました。ブログリレーの記事一覧はIVRy AIブログリレー全記事まとめをぜひご覧ください。


こんにちは! IVRyのデータサークルでインターンをしている、おおしろはるきと申します!

この記事では、インターンの期間中に取り組んだ「Databricks Appsを使った社内アプリ開発」について紹介します!

3行でまとめ

  • 2025年7月にやってきた新機能Databricks Appsを使って社内アプリを開発した
  • Databricks Appsなら簡単にアプリが作れる
  • データ整備やコーディングにはCursorなどを活用して進めた

Databricks Appsとは?

Databricks Appsは、Databricks上でPythonやJavaScriptを使って手軽にアプリを作れる機能です。

たとえば……

  • Databricksの認証をそのまま使えるので、面倒な認証管理が不要!
  • インフラの設定やデプロイ作業もDatabricks内で完結するのでサーバー構築や運用の手間が激減!

さらに、従来のダッシュボードと比べて……

  • ️ Python/JSが動くので自由度が高い!
    • たいていのことはPython/JSで実現可能!
    • デザインを凝ったり、インタラクティブなUIも作れる!
  • データの書き込みも可能!

このように、Databricks Appsはデータに関わるアプリ開発をグッとシンプルにする機能です。

アイブリーとは

アイブリーは、電話業務を効率化する対話型音声AIのSaaSです [1]

アイブリーでは、着信時の応答方法を「受電ルール」として柔軟に設計できます。

例えば、

  • プッシュ分岐(「〜のかたは1番を押してください」のことです)に応じて対応を変える
  • 音声認識で要件を判別して、要件に応じて対応を変える
  • 分岐に応じてSMSを送信
  • 分岐に応じて担当者に電話転送をする
  • 営業時間などによって使う受電ルールを変える

など幅広い対応ができます。

アイブリーのAI電話応答サービスにおけるユースケースを示した図。エンドユーザーからの「行き方を知りたい」「予約したい」といった電話問い合わせに対し、AIが内容を判断して「完全AI対応」「担当者への取次」「オペレーター対応」などに自動で振り分け、業務を効率化する流れが描かれている。
アイブリーでできること

この柔軟さは強力ですが、クライアント数や機能数が増えるほど「どの企業がどのルールや機能をどう使っているか」を把握することは難しくなります。

IVRyのセールスやカスタマーサクセスにとって、それを俯瞰して把握することはとても重要です。

そこで、社内向けにクライアントの受電ルール設定を検索・可視化するアプリを作ることにしました!

Databricks Appsで作成した社内アプリの紹介

こうした背景から、アイブリーの受電ルール設定の検索・可視化アプリを作りました。

実際に作ったアプリの画面。使用している機能や業種でクライアントを絞り込んでいる
実際に作ったアプリの画面。使用している機能や業種でクライアントを絞り込んでいる

アプリのフィルターのUIの画像。セールスセグメントやJSIC(日本産業分類)によるフィルタリングや、使っている機能でのフィルタリングができる
絞り込まれたクライアントの、機能の使用状況がグラフで可視化されている。機能名を隠したため抽象画のようになっている

コードを書く

今回のアプリ開発では、AI(特にCursor)を最大限に活用し、誇張なしに「AIと一緒に開発している」感覚すらありました[2]

実装の多くはAIのサポートでサクサク進み、全体の8割ほどはAIに任せられました。

とはいえ、人が手を動かす必要があるところもいくつかありました。

主な人が行う必要があった作業は、

  • 最初の環境構築

    • ローカル/デプロイ先の両方で認証が通るようなコード・環境の設定
      • 地味にハマりました
  • SQLクエリ作成の一部分

  • AIへの指示出し

などです [3]

一度環境構築さえできればそのあとの手作業は非常に簡単で、databricks apps run-local でアプリが動きますし、SQLウェアハウスの設定も app.yaml に設定を書いて GUI/CUIから権限の設定をすれば完了します。

Databricksへのデプロイも、databricks syncdatabricks apps deploy
と2コマンド打つだけでデプロイできるところがとても便利です。

LLMを使いデータ整備をした話

上述の「機能の利用割合」といった定量データだけでなく、定性的なデータの整理や可視化も進めるために、DatabricksのAI関数を使いました。

Databricksには、ai_query() をはじめとするAI関数が用意されています。これらを使えば、SQLからそのままLLM(大規模言語モデル)に処理をさせて、その結果をデータとして取得できます。

汎用的な処理をするai_query()以外にも、個人情報や人名といった特定の要素をマスクするai_mask()や、翻訳をするai_translate()といった関数もあります。

Document :

今回は、クライアントがどんな目的でアイブリーのルール設定をしているのかを知るために、
受電ルールをSQLで抽出して、ai_query() で「問い合わせ対応(音声案内)」や「予約キャンセル対応(電話転送)」のようにタグ付けしました。

SQL Editorのスクリーンショット。 ai_query()関数を使ってLLMを呼び出し、引数にプロンプトを渡し、その結果を列に格納している
DatabricksのSQLで、ai_query() 関数を使うと、Gemma3やGPT-OSSといったLLMを呼び出せる

上の画像のように、Databricks上のSQLエディタで

ai_query.sql
SELECT 
  rule_description
  ,ai_query('model', concat('prompt here', rule_description))
  AS ai_tag
FROM some_table;

などと実行すると、以下の画像のように受電ルールを一言で表したタグが複数得られます。


受電ルールをタグで表すクエリの実行結果(一部)

ちなみに : ai_query() は速い

ai_query() 関数はバッチ処理で推論されるため、大量のデータに対して高いスループットで処理されます。

今回の作業では合計約5000万文字の文章に対して、Gemma 3を呼び出す処理を行いましたが、10分もかからずに処理が完了しました。

クエリの実行結果を表す画像。5000回の推論が9.64分で終わっていることを示している。
5000行(約5000万文字)に対する推論でも10分未満で完了している

バッチ推論の料金について

ai_query() 関数やその他のAI関数を呼び出すと、バッチで実行されます。

バッチ推論での料金計算は単純なトークン数課金ではないため、計算は難しくなります。
そのため、シミュレータを使ってコストを試算する方法が簡単でしょう。

Document :

おわりに

ここまで読んでいただき、ありがとうございました!

Databricks Appsを使った社内アプリ開発は、思っていた以上に手軽でした。データ基盤上でそのままアプリを作れることで、権限管理やDBの設定が簡単に一気通貫で完結するところは爽快でした。

また、AI関数やLLMが進化すると、これまで手作業では到底無理だったデータ整備や分析も現実的になってくるかもしれません。そう考えると、非常にワクワクしませんか?

この記事が、Databricks AppsやAI活用に興味がある方の参考になれば嬉しいです!

もし記事が参考になった・面白いと思った方は、ぜひ「いいね」やコメントをお願いします!もらえると大変励みになります! 🚀🚀🚀

いいねマークが突如ロケットへ変わり、銀河へと向かうアニメーション。いいねマークをクリックすると、突如ハートが立体的になり回転しだし、炎を吐き、銀河へと飛び出すロケットに変わる
いいねマークが突如ロケットへ変わり、銀河へと向かう


IVRyでは「イベントや最新ニュース、募集ポジションの情報を受け取りたい」「会社について詳しく話を聞いてみたい」といった方に向けて、キャリア登録やカジュアル面談の機会をご用意しています。ご興味をお持ちいただけた方は、ぜひ以下のページよりご登録・お申し込みください。

https://ivry-jp.notion.site/209eea80adae800483a9d6b239281f1b

https://herp.careers/v1/ivry/wmZiOSAmZ4SQ

また、私が所属するDataチームでも新卒・インターンを募集しています。優秀で面白い社員さんたちと一緒に働けるチャンスです。ぜひ一度、お話ししてみてください!!!!

脚注
  1. ちなみに、「IVRy」は会社名で「アイブリー」はプロダクト名という区別があります ↩︎

  2. 誇張です ↩︎

  3. 面倒な作業が人間に残ってる気がします ↩︎

IVRyテックブログ

Discussion