この記事ではRAGに特化して解説します。RAG全般は RAGとは?仕組み・構築・ベクトルDB選定まで【2026年完全ガイド】 をご覧ください。

📌 Docker Compose導入の手順を探している方へ
本記事はOnyx AIの概要解説です。実装手順・コネクタ設定・チューニング詳細は Onyx導入ガイド|Docker Composeで構築・運用する にまとめています。

Onyx AIとは:社内データをAIで横断検索するOSSプラットフォーム

Onyx(旧Danswer)は、GitHubスター22,000超を獲得した企業向けのオープンソースRAGプラットフォームだ。社内に散在するドキュメント・Slack・メール・データベースなど50以上のデータソースを接続し、AIが自動で検索・回答するチャットボット基盤を構築できる。

Onyx AIの最大の特徴は「セルフホスティング」に対応していること。クラウドにデータを預けることなく、自社サーバーやプライベートクラウド上で完全にデータを管理できる。機密情報を扱う企業にとって、データ主権を維持しながらAI検索を導入できる点が決定的な差別化要因だ。

Onyx Demo

Onyx AIの3つの核心価値
① セルフホスティング——データが社外に流出しない設計
② 50+コネクタ——Slack・Confluence・Google Drive等をGUIで接続
③ マルチLLM——OpenAI・Claude・Gemini・ローカルLLMに対応

RAGベースの社内検索は他にも選択肢があるが、RAGFlowがPDF・表データの高精度パーサーに強みを持つのに対し、Onyxはコネクタの豊富さとセットアップのシンプルさで差別化している。

Onyx AIの主な機能と特徴

マルチソースコネクタ(50+対応)

Onyxは以下のデータソースに対応している。管理画面のGUIからOAuth認証やAPIキーを設定するだけで接続できる。

カテゴリ 対応サービス例
チャット・メッセージ Slack、Microsoft Teams、Discord
ドキュメント管理 Confluence、Notion、SharePoint
ファイルストレージ Google Drive、OneDrive、S3
コード管理 GitHub、GitLab、Bitbucket
CRM・業務ツール Salesforce、HubSpot、Zendesk
データベース PostgreSQL、MySQL
ローカルファイル PDF、Word、Excel、Markdown

RAGベースの質問応答

Retrieval Augmented Generation(RAG)により、社内データに基づいた正確な回答を生成する。単純なキーワード検索ではなく、ハイブリッド検索(ベクトル検索 + BM25全文検索)を採用しているため、自然文の質問にもキーワード的な検索にも対応する。

セルフホスティングとアクセス制御

Docker Composeで自社サーバーにデプロイし、ユーザー・グループ単位でアクセス権限を設定できる。SlackのプライベートチャンネルやGoogle Driveの共有設定がそのままOnyxの権限に反映されるため、既存の権限構造を活かせる。

Web検索・コード実行・カスタムエージェント

LLMの基本的なチャット機能に加え、Web検索結果の統合、Pythonコードの実行、カスタムエージェント機能をサポートする。社内データだけでは不足する場合にWeb検索で補完し、データ分析にはコード実行を使うといった複合的な活用が可能だ。

Onyx AIの使い方:Docker Composeでのセットアップ

Onyxの導入はDocker Composeが公式推奨されている。ワンラインスクリプトで最速起動し、本番運用に移行する際にdocker-compose.ymlを調整する流れが効率的だ。

クイックスタート(ワンラインインストール)

# 公式インストールスクリプトで一括起動
curl -fsSL https://onyx.app/install_onyx.sh | bash

本番環境向けの手動セットアップ

# リポジトリのクローン
git clone https://github.com/onyx-dot-app/onyx.git
cd onyx/deployment/docker_compose

# 環境変数ファイルの作成
cp .env.example .env

.envファイルで最低限設定する項目は以下の通り。

# LLMプロバイダの設定(OpenAIの場合)
GEN_AI_MODEL_PROVIDER=openai
GEN_AI_MODEL_VERSION=gpt-4
GEN_AI_API_KEY=sk-xxxxxxxxxxxxxxxx

# Anthropic Claudeを使う場合
# GEN_AI_MODEL_PROVIDER=anthropic
# GEN_AI_MODEL_VERSION=claude-sonnet-4-20250514
# GEN_AI_API_KEY=sk-ant-xxxxxxxxxxxxxxxx

# PostgreSQL設定
POSTGRES_USER=onyx
POSTGRES_PASSWORD=your_secure_password_here

# セキュリティ設定
AUTH_TYPE=basic
SECRET_KEY=$(openssl rand -hex 32)

設定完了後にDocker Composeで起動する。

# 全サービスの起動(バックグラウンド)
docker compose -f docker-compose.dev.yml -p onyx-stack up -d

# 起動状態の確認
docker compose -f docker-compose.dev.yml -p onyx-stack ps

初回起動時にはPostgreSQL、Vespa(検索エンジン)、バックエンドAPI、フロントエンドの各コンテナが立ち上がる。全サービスがhealthyになれば、http://localhost:3000でWeb UIにアクセスできる。

推奨サーバースペック
公式推奨はCPU 4コア以上、メモリ16GB以上、ストレージ50GB以上。ドキュメント数が多い場合は32GB以上を検討する。GPU搭載サーバーの場合はローカルLLMの利用も可能。

Onyx AIのアーキテクチャ:RAGパイプラインの仕組み

Onyxの内部処理フローを理解しておくと、チューニングやトラブルシューティングが効率的になる。

graph TD A["データソース
Slack / Confluence
Google Drive / PDF"] -->|コネクタが定期取得| B["ドキュメント取得
Document Ingestion"] B --> C["チャンク分割
テキストを意味単位に分割"] C --> D["埋め込み生成
Embedding Model"] D --> E["Vespa
ベクトルインデックス保存"] F["ユーザーの質問"] --> G["クエリ処理
質問の意図解析・拡張"] G --> H["ハイブリッド検索
ベクトル検索 + BM25"] E --> H H --> I["リランキング
関連度スコアで再順位付け"] I --> J["プロンプト構築
検索結果 + 質問をLLMへ"] J --> K["LLM回答生成
引用元ドキュメント付き"] K --> L["ユーザーに回答表示"]

各ステップの詳細

  1. データインジェスション — コネクタが各データソースから定期的にドキュメント・メッセージを取得
  2. チャンク分割と埋め込み生成 — ドキュメントを意味単位に分割し、テキスト埋め込みベクトルを生成
  3. インデックス化 — 埋め込みをVespa検索エンジンに保存。メタデータ(ソース、日時、権限情報)も格納
  4. ハイブリッド検索 — ユーザーの質問に対し、ベクトル検索(意味的類似度)とBM25(キーワード全文検索)を組み合わせて関連文書を取得
  5. リランキング — 検索結果を関連度スコアで再順位付けし、最も関連性の高い文書をLLMに渡す
  6. 回答生成 — 取得したドキュメントをコンテキストとしてLLMに送信し、引用元付きの回答を生成

Onyx AI 競合ツールとの比較

項目 Onyx ChatGPT Enterprise Copilot for M365 Dify RAGFlow
ホスティング セルフホスティング クラウドのみ クラウド統合 セルフ/クラウド セルフホスティング
対応データソース 50+種類 ChatGPT接続のみ Microsoft 365統合 API経由 10+種類
LLM選択 複数LLM対応 GPT系のみ Copilot固定 複数LLM 複数LLM
セットアップ シンプル 最小限 ITAdmin必須 シンプル やや複雑
アクセス制御 ユーザー・グループ 組織全体 ユーザー単位 ワークスペース データセット単位
料金 無料(OSS) 有料(月額) ライセンス型 無料(OSS) 無料(OSS)
特徴 コネクタ豊富 GPT統合 M365統合 ワークフロー 高精度パーサー

既存SaaSからドキュメント集約ならOnyx、ノーコードワークフローならDify、PDF・表データの高精度解析ならRAGFlowという使い分けが目安になる。LangChainで独自パイプラインを構築する方法と比較して、Onyxはインフラの構築・運用コストが低く、非エンジニアでも検索インターフェースを利用できる。

Onyx AI 実践ユースケースと使い方

社内ナレッジベース統合型ヘルプデスク

企業の各部門ドキュメント(HR規則、IT手順書、製品仕様書、FAQ)をOnyxで統合する。従業員が「有給休暇の申請方法は?」と質問すると、Onyxが自動的にドキュメント内から手順を検索・要約して回答する。

複数データソースの統合検索

Slack、Google Drive、Confluenceなど、組織内に散在する情報源をOnyxで一元管理する。ユーザーは単一のチャットインターフェースで複数のソースを横断検索でき、引用元のリンクも表示される。

API経由の外部連携

OnyxはREST APIを提供しており、Slackボットやカスタムアプリケーションから質問応答機能を呼び出せる。

import requests

ONYX_URL = "http://localhost:8080"
API_KEY = "your_onyx_api_key"

headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

# チャットセッションの作成
session = requests.post(
    f"{ONYX_URL}/api/chat/create-chat-session",
    headers=headers,
    json={"persona_id": 0, "description": "API質問"}
)
session_id = session.json()["chat_session_id"]

# 質問の送信
response = requests.post(
    f"{ONYX_URL}/api/chat/send-message",
    headers=headers,
    json={
        "chat_session_id": session_id,
        "parent_message_id": None,
        "message": "社内のデプロイ手順を教えてください",
        "prompt_id": 0,
        "retrieval_options": {"run_search": "auto", "real_time": True}
    }
)

より詳細なDocker Composeセットアップ、コネクタ設定手順、Python APIの活用、運用チューニングについては、Onyx導入ガイド:Docker Composeでの構築・運用を参照してほしい。

Onyx AIの注意点と制限事項

導入前に把握しておくべきポイントを整理する。

項目 内容 対策
LLMコスト 外部LLM利用時、クエリ増加に伴い料金が増加 ローカルLLM(Llama等)で軽減可能
初期設定 データソースの接続に技術知識が必要 GUI設定で主要コネクタは簡易化
ドキュメント品質 入力データが不正確だと回答精度が低下 定期的なデータ監査を実施
日本語対応 英語比率の高い環境の方が精度が高い 多言語埋め込みモデルに切替
スケーラビリティ 大規模導入時に検索エンジンの負荷増大 Vespaの負荷分散を検討
日本語環境での精度改善
デフォルトの埋め込みモデルでは日本語の検索精度が不足する場合がある。環境変数でmultilingual-e5-large等の多言語対応モデルに切り替えると改善するケースが多い。

関連記事: RAGとは?仕組み・構築・ベクトルDB選定まで【2026年完全ガイド】

まとめ:Onyx AI は社内RAG基盤の有力候補

Onyx AIは、セルフホスティング対応・50+コネクタ・マルチLLMという3つの柱で、企業向けRAGチャットボットの有力な選択肢だ。Docker Composeで30分程度でセットアップが完了し、管理画面からデータソースをGUIで接続できる。

  • データを社内で管理したい組織 — セルフホスティングでデータ主権を維持
  • 既存SaaSのナレッジを統合したい — 50+コネクタで主要ツールと接続
  • LLMを選びたい — OpenAI・Claude・Gemini・ローカルLLMに対応
  • 非エンジニアにもAI検索を提供したい — Web UIのチャットインターフェース

大規模なドキュメント資産を保有し、セルフホスティングで運用したい組織にとって、Onyx AIは実用的な基盤となる。

参照ソース