ローカルで動くAI搭載BIツール「Papillon」を開発しています
木村 優志
Published: 7/15/2026, 5:27:00 AM
現在Convergence Lab.では、AI搭載のデスクトップBIツール「Papillon(パピヨン)」を開発しています。
データ分析には、SQLの作成、データの前処理、グラフの設計、ダッシュボードの共有など、いくつもの工程があります。高機能なクラウドBIサービスが普及する一方で、「分析対象のデータを外部サービスに置きにくい」「小さく試すためにサーバーを用意するのは大変」「SQLを書ける人に分析が集中してしまう」といった課題も残っています。
Papillonは、こうした課題に対して、データを手元に置いたまま、SQL・可視化・データ加工・AIによる分析支援を一つのデスクトップアプリで扱うことを目指しているプロジェクトです。本記事では、Build in Publicの一環として、Papillonを開発している背景と、現在実装している機能を紹介します。
なぜ、いまデスクトップBIなのか
BIツールはクラウド型が主流ですが、すべてのデータをクラウドへ移せるとは限りません。製造、医療、金融をはじめ、機密性の高いデータを扱う現場では、社外へのデータ送信や新しいサーバーの導入が障壁になることがあります。
そこでPapillonでは、RustとTauriによるデスクトップアプリとして、サーバーを構築しなくてもローカル環境から利用できるBIを目指しました。ローカル分析エンジンにはDuckDBを採用し、アプリの設定やダッシュボードなどのメタデータはSQLiteへ保存します。
必要なデータを手元で処理できることに加え、データベースへ直接接続し、分析結果をそのままダッシュボードへつなげられることがPapillonの基本的な考え方です。
自然言語からSQLとグラフを作る
Papillonの中心機能の一つが、生成AIを活用したText-to-SQLです。
たとえば「商品カテゴリ別に、直近12か月の売上推移を見たい」と入力すると、接続先データベースのスキーマを参照しながらSQLを生成します。さらに、生成したSQLだけでなく、どの列をグラフの横軸、縦軸、色分けに使うかというチャート設定の候補も作成します。
AIへ単純に質問文を渡すだけではありません。テーブル間の結合候補、ラベルとして適した列、日付や数値の型といったスキーマ上の情報を補い、実際の分析で使いやすいSQLを生成できるよう改善を続けています。日本語のカラム名や日本語での質問も想定しており、日本の業務データで試せるサンプルデータも用意しています。
なお、Text-to-SQLではOpenAIまたはAnthropicのAPIを利用します。データ本体をLLMへ送るのではなく、質問文とスキーマ情報を送信する設計ですが、完全にオフラインで動作するAIではありません。この境界を明確にしながら、データを可能な限りローカルに保つ構成を採用しています。
SQLからダッシュボードまでを一つのアプリで
現在のPapillonには、次の機能を実装しています。
- SQLワークスペース:複数タブのSQLエディタ、スキーマブラウザ、保存クエリ、実行履歴、パラメータ、CSV出力
- ダッシュボード:棒・折れ線・面・散布図・円・KPI・テーブル・ピボットなどの可視化
- 分析操作:グローバルフィルタ、ドリルダウン、自動更新、編集のUndo・Redo
- AIによる支援:Text-to-SQLに加え、グラフやダッシュボードの内容を自然言語で質問できるAsk Chart / Ask Dashboard
- Data Prep:source・transform・sinkで構成するETLパイプライン
- データ接続:DuckDB、PostgreSQL、MySQL、Redshiftに加え、SnowflakeとBigQueryのPoCコネクタ
- 持ち運び:ダッシュボード一式をZIP形式でエクスポート・インポート
SQLに慣れた人は自分でクエリを書き、慣れていない人は自然言語から始められます。どちらか一方に操作を限定せず、AIが生成したSQLを確認・修正できることを重視しています。生成AIをブラックボックスとして使うのではなく、分析の過程を人が追える道具にしたいと考えているためです。
Rust、Tauri、Svelte、DuckDBで構築
Papillonのデスクトップ部分はRustとTauri 2、画面はSvelte 5とTypeScriptで開発しています。チャート描画にはVega-Lite、SQLエディタにはCodeMirror 6、クエリ結果の受け渡しにはApache Arrowを利用しています。
Rust側は、ドメインモデル、データベースコネクタ、クエリエンジン、LLM連携、デスクトップシェルをそれぞれ分離しています。画面とデータ処理の責務を分けることで、今後コネクタや分析機能を追加しやすい構成を目指しています。
また、Papillonのコア部分はAGPL-3.0のオープンソースとして開発しています。個人のデータアナリストやデータエンジニアが手元で試し、フィードバックを開発へ反映できるプロジェクトにしていく方針です。
現在地と、これから
Papillonは現在バージョン0.1.0の開発段階です。SQLからダッシュボードを作成し、Text-to-SQLやドリルダウンを使って分析する基本的な流れは形になってきましたが、正式な製品版ではありません。
特に、SnowflakeとBigQueryの接続はPoC段階であり、Data PrepのUIもまだシンプルなものです。SSO、監査ログ、組織内共有といったEnterprise向け機能についても、これから実用レベルへ仕上げていく必要があります。
今後は、実際の業務データを使った検証を重ねながら、次の領域を重点的に改善していきます。
- 日本語の業務データに対するText-to-SQLの精度向上
- ダッシュボード作成・編集体験の改善
- データベースコネクタとETL機能の安定化
- セキュリティ要件の厳しい組織で利用するための管理機能
Papillonは、クラウドBIを置き換えることだけを目的にしたものではありません。データを手元に保ちたい人が、複雑な準備なしに分析を始め、SQLとAIの両方を使いながら自分の手で結果を確かめられる、新しい選択肢を作る試みです。
開発中だからこそ、現場で分析に携わる方の率直な意見を必要としています。「こういうデータを分析したい」「既存のBIではここが使いにくい」「セキュリティ上、クラウドBIを導入できない」といった課題がありましたら、ぜひお聞かせください。今後も本ブログで開発状況を紹介していきます。


