FioneのLLMアシスタント案でデータを相談し学習条件を確認する

FioneのPython刷新案に、データセットやモデルについて自然な言葉で質問できる「Fione-kun」の実装が追加されています。列の欠損やモデルの結果を確認し、学習条件の提案を画面で確認するためのLLMアシスタントです。

読み取りと提案を行い、学習開始は人が確認する

プロジェクトのメニューからFione-kunを開き、「欠損の多い列はどれか」「この列を予測する学習条件を提案して」といった質問を送ります。アシスタントは、利用者が読めるデータやモデルについて、型の決まったツールを使って調べます。

学習の提案は、対象データセット、予測する列、タスク、時間制限、除外候補の列などをカードで表示します。編集権限のある人が内容を確認して「学習開始」を押すと、サーバーに保存した条件で1回だけジョブを開始します。閲覧者には実行ボタンを表示しません。モデルの返答だけで学習を開始したり、データを変更・削除したりする仕組みではありません。

データ内の文章に影響されて誤った回答や提案をする可能性は残るため、目的変数や除外列、評価結果は人が確認します。

初期値は直接起動とComposeで異なる

Fioneプロセスを直接起動する場合、FIONE_LLM_BASE_URLの初期値は未設定で、アシスタントは無効です。一方、PRのCompose構成はhttp://host.docker.internal:11434/v1を初期値として渡し、ホスト上のOllamaへ接続します。ComposeではURLを追記しなくても、LLMサーバーがある前提の構成になります。

モデル名はgemma4:12b-mlx、Composeのプロバイダーはollamaが初期値です。Fione本体のプロバイダー初期値はopenaiなので、Compose外でOllamaを使う場合は明示します。モデルの自動取得はFIONE_LLM_AUTO_PULL=falseで、初期状態では管理者がシステム画面から取得します。Fioneはモデルを同梱しません。

試すには正式版と別の作業コピーでPRを取得します。

git clone https://github.com/codelibs/fione.git fione-assistant-review
cd fione-assistant-review
git fetch origin pull/16/head
git switch --detach FETCH_HEAD
cp docker/.env.example docker/.env

docker/.envのS3用アクセスキーと秘密キーに、それぞれopenssl rand -hex 16、openssl rand -hex 32などで生成した値を設定し、Gitへ登録しません。DockerとCompose v2を用意して、次を実行します。

docker compose -f docker/compose.yaml --env-file docker/.env up -d --build

Web画面の初期ポートは127.0.0.1:8080です。初回はdocker compose -f docker/compose.yaml --env-file docker/.env logs fioneで確認したSetup tokenを使って管理者を作成します。既定の管理者パスワードはありません。

macOSの標準経路はホストのOllamaアプリです。Ollama側のコンテキストをOLLAMA_CONTEXT_LENGTH=16384へ設定して起動し、モデルを取得します。これはFione側の初期値FIONE_LLM_CONTEXT_TOKENS=16384だけを設定しても代わりにはなりません。モデルの準備中や接続できない間は質問欄が無効になり、通常のFione機能は使えます。

LinuxなどでCompose内のOllamaを使う場合は、.envの次の設定を有効にします。

COMPOSE_PROFILES=ollama
FIONE_LLM_BASE_URL=http://ollama:11434/v1
FIONE_LLM_MODEL=gemma4:12b
FIONE_LLM_AUTO_PULL=true

このプロファイルはCPU動作で、Ollamaのポートをホストへ公開しません。初回はイメージ約3.8GBとモデル約8GBの取得があり、応答も遅くなります。サイズはPRでの目安です。別の互換サーバーならURL、FIONE_LLM_PROVIDER=openai、モデル名、必要に応じてAPIキーを設定します。

送信する情報と実行上限を確認する

質問とともに、プロジェクト名、データセット名、列名、型、欠損率や範囲などの統計、モデルの結果をLLMサーバーへ送ります。セルの例示値は初期状態では送らず、管理者がその接続先に対して許可した場合に頻出値などを含めます。接続先アドレスを変えると、この許可は無効に戻ります。例示値を許可しなくても名前や統計は送られる点を確認します。

会話は作成者だけが画面から参照でき、管理者にも共有されません。ただしデータベースでは暗号化せず保存します。外部サーバーへの接続では利用者へホスト名の警告が出ますが、送信の可否は運用側で判断します。

質問は4,000文字、1会話100質問、利用者とプロジェクトの組み合わせにつき100会話が上限です。1回答は初期値でツールの往復6回、180秒、サーバー全体で同時2回答です。利用者ごとは3件、待機は8件が上限です。Fione再起動時に進行中の回答は中断されます。PR内の自動試験は模擬LLMが中心で、実モデルの試験は任意実行です。

MCPは有効化する

FIONE_MCP_ENABLEDの初期値はfalseです。必要な検証環境でtrueにすると、Fione自身のポートの/mcp、例えばhttp://127.0.0.1:8080/mcpへ対応クライアントから接続できます。

認証はアカウント画面で発行する通常のfull APIトークンをAuthorization: Bearerで渡します。ログインCookieやNotebook用トークンは使えません。MCPはトークン所有者が読めるプロジェクトの情報を参照し、学習条件の提案を返せますが、提案の保存や学習開始は行わず、セルの例示値も返しません。

MCPのツールは読み取り用途でも、使うトークン自体は通常のREST APIと同じ権限を持ちます。読み取り専用の資格情報だと誤解せず管理します。同時呼び出しは2件で、ほかのレート制限はありません。リバースプロキシ越しにFioneを公開している場合、MCPも同じポートに出るため、外部利用を認めないなら/mcpへのアクセスをプロキシ側で制限します。

関連PR

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です