製品紹介
Aivory はオープンソースで自己管理可能なマルチモデル AI セッション プラットフォームで、バックエンドは Go 1.24 シングル プロセス サービス、フロントエンドは React 19 シングル ページ アプリケーションで、両方とも同じコンテナにパッケージされています。/api同領域、聴取:8787ご自身のサーバーで利用できます。docker compose up -d完全な AI ワークボックス:Claude、GPT、Gemini、OpenAI 互換モデル ユニット アクセス、ストリーミング、マルチ ツール コール、Python サンドボックス、ナレッジベースの RAG、ディプリサーチ、チーム ワークスペース、画像生成、完全な管理コンソールがすべて内蔵されています。

| プロジェクト | 説明 |
|---|---|
| 現在のバージョン | 2.2.0 |
| オープンソースライセンス | Apache 2.0 |
| コード倉庫 | github.com/hjxwz123/Aivory |
| 公式の鏡 | ghcr.io/hjxwz123/aivory-app、ghcr.io/hjxwz123/aivory-sandbox、ghcr.io/hjxwz123/aivory-sandbox-sidecar |
| サービスポート | 容器内8787(生産 Compose デフォルトマッピングホスト80) |
| スタック依存 | postgres:16-alpine / redis:7-alpine / qdrant:v1.12.4(すべて選択可能、詳細は以下の通り) |
| テクノロジースタック | Go 1.24 + React 19 + TypeScript 5 + Tailwind 4 |
アイドルとは何が違うのか。
ほとんどのデプロイされたチャットフロントは、リクエストをモデル API にリダイレクトし、ストリーミングされたテキストを戻します。Aivory は、実際の日常の使用に影響を与えるいくつかの場所でさらに進みます。
- 道具は本物の流水線: モデルは、1 つのユーザー メッセージで最大 48 回のツール呼び出し (12 つのプロバイダー サイクル) を実行し、異なる領域のツールが自由に連続できます。
- 会話は木であって、線形日記ではない過去の質問を編集し、答えを再生し、モデルを変更し、操作ごとに新しい支部を開く
< 2/3 >コントロールを切り替えると、データベースは完全な樹形構造を維持します。 - 管理コンソール 変更は即時効力: チャンネル、モデル、スキル、ユーザー、システム設定はすべて管理ユーザーインターフェイスで動作し、次のリクエストが保存されるとすぐに有効になり、プロセスを再起動する必要はありません。チャンネルAPIキーは環境変数ではなくデータベースに存在し、ロータリングキーはホストにログインする必要はありません。
コア能力
多チャンネル 多 モデル チャット
マネージャーは「チャンネル(チャンネル)」の次元をフォーカスしてアップストリーム(タイプ:Anthropic/OpenAI/Gemini/OpenAI兼容、Base URL+API Key)にアクセスし、「モデル(モデル)」ページでユーザーに見えるモデルエントリを作成し、名前、アイコン、価格、ビジョン能力、ツールパターンを設定できます。native / prompt / none同じタイプは複数のチャンネルで設定できます。
モデルピッカーの上部には、管理者が定義したタグフィルタチップ(「高速」「マルチモダル」「プログラミング」など)が表示され、タグを選択したリストが狭くなり、各メッセージが実際に使用したモデルを記録します。チャンネルとモデル。
流式出力と思考プロセス
すべてのモデル リクエストはストリーミングで、前端は SSE でリアルタイムで受信されます: プリントマシン出力、Markdown レンダリング、コードのハイライト、LaTeX 公式。思考プロセス(thinking)の折りたたみ表示をサポートし、推論型モデルの思考チェーンと正式な回答パーティションが表示されます。Redis を構成した後もストリーム回復をサポートします:ページをリフレッシュしてリスクを失わない。
リアルタイムの複数のツール呼び出し
モデル どのツールを呼び出すか、どの回転を調整するかを自分で決め、すべてのプロセスは SSE イベントを通じてリアルタイムで推進され、ユーザーは各ステップで何をしているかを見ることができます。
| ツール | 機能 |
|---|---|
web_search | SearXNG (デプロイ自体) または Serper 互換バックエンドで完全な Web 検索 |
web_fetch | 指定された URL をクロックし、テキストを抽出し、robots.txt とコンテンツのセキュリティフィルタに従う |
fetch_image | 写真をサンドボックスにダウンロード/workspace/uploads/後続コードの使用 |
python_execute | Python コードを分離されたサンドボックスで実行し、完全な標準ライブラリ、pip インストール、ファイル I/O をサポート |
image_generate | 構成された画像を呼び出す モデル 画像を生成し、製品として保存 |
search_knowledge_base | 吊るされた ナレッジベース ハイブリッド リクエストを実行する(密度ベクトル + BM25,RRF 融合) |
save_memory | ユーザーメモリに書き込み、その後の会話 自動注入 |
use_skill | 管理者によって事前に定義されたスキルを実行する(ヒントのテンプレート + 資産パッケージ) |
シングルツール呼び出し予算(乱用防止とコストのコントロール外)
| ツール | 通常モデルの上限 | ディプリサーチモデル |
|---|---|---|
web_search | 16 | 40 |
web_fetch | 12 | 25 |
fetch_image | 16 | 12 |
image_generate | 8 | 4 |
python_execute | 16 | 8 |
| すべてのツール合計 | 48 | 150 |
重要なメカニズムは自動文書保存: 毎回python_executeこのセッション中にユーザーがアップロードしたファイルは、image_generate生成された画像、ユーザーが利用できるスキル資産はすべて自動的にサンドボックス ファイルシステムにありますので、「data.csv を分析し、柱状図を描き、PPT にします」といったツールワークフローは、1 回に 1 つずつ送信され、ユーザーは中間操作を必要としません。
ネイティブの function calling をサポートしていないモデルでは、アドバイザー設定でアドバイザー プロトコルに戻ることができます(アドバイザー モードでは、プロバイダー サイクルの上限は 6 です)。
ディプリサーチ
独立した複数のリサーチエンジン: モデル氏は研究計画を立て、最大40回のウェブ検索と25回のページスキャンを並行して実行し、主張のクロステストを行い、最終的にリクエストを含む完全な概要レポートを生成し、全コースにリアルタイムの進捗パネルを提供します。ディプリサーチ。
Python サンドボックス
各 セッション には、独立した サンドボックス コンテナ (HTTP sidecar サービス) があります。
- セッション セッション ライフサイクル セッション セッション セッション セッション セッション ライフサイクル セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション セッション
- コード出力(stdout / stderr / 異常)リアルタイムストリーム再生; 書き込み
/workspace/output/ファイルが製品となり、以下のカード形式がチャットインターフェイスに表示されます。 - サンドボックス認定ネットワークなし(
SANDBOX_NETWORK=noneネットワークデータが必要な場合web_fetch/fetch_imageサンドボックスの外に取り出してから入れる。 - サンドボックスアドレスが設定されていない場合、
python_executeセキュアモードに入り、簡単な算術のみを実行し、デバッグとデモの開発に適しています。
詳細Python サンドボックスの使用与サンドボックス展開。
ナレッジベースとRAG
各アカウントは複数のナレッジベースを作成し、テキスト / PDF / DOCX / XLSX / 画像のアップロードをサポートし、ドキュメントの状態を追跡できます(pending → parsing → embedding → ready)。
- レベルの切断:small-to-big、約12%の重複、構造感覚(コードブロック、テーブル、公式の全体ブロックを保有);それぞれのブロックは、根から現在の位置にタイトルパンを持ちます。
- 混合検索: Qdrant 密集ベクトル + BM25 キーワードの検索、RRF 融合の順序、同様に動的 Top-K を引用して回答します。
- 検索ルートタスクモデル 検索前にクエリを分類する
retrieve/full_doc/noneまた、リクエストを書き換え、小さなドキュメントを直接全文に注入し、リクエストコストを無駄にしない。 - MinerU OCR: テキストレイヤーの PDF をローカルミリ秒レベルで解析し、PDF、DOCX、PPTX、XLSX、画像をスキャンして MinerU クラウド OCR を取得します。 オリジナル ファイルは自分の S3 / Ali クラウド OSS バレルに保存され、MinerU は事前署名 URL のみを受け取ります。
Qdrant が構成されていない場合、RAG は自動的にレベルをダウンロードして全文を注入し、機能は引き続きご利用いただけます。ナレッジベース。
チームワークスペース
ワークスペースを作成して、同僚に招待リンクを送信して参加できます。 会話、プロジェクト、ナレッジベースは、すべてのメンバーに共有され、すべてのメンバーの個人的なスペースと完全に隔離されます。誰が誰に請求するのか; バブルは著者に属します(自分は右、他の人はAIと左に、頭部は名を付けます); 作成者は人々を叩き、招待リンクをリセットし、スペース全体を削除することができます。チームワークスペース。
画像生成
独自の図形モード: タスクモデル タスクモデル タスクモデル タスクモデル タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ タグ画像生成。
完全な管理コンソール
| モジュール | 管理コンテンツ |
|---|---|
| チャンネル | 各プロバイダーの Base URL + API key は、同じタイプのチャンネルを複数回使用できます。 |
| モデル | 起動、表示名、コンテンツウィンドウ、価格設定、 モデルごとに UI コントロール、 ディプリサーチ 曝露スイッチ、ラベル |
| モデル ラベル | タグを作成し、モデルに割り当て、選択器の上部でフィルタチップとしてレンダリング |
| スキル | キーワード + 資産パッケージuse_skillツール呼び出し |
| ユーザー | 役割、ユーザーグループの割り当て、リアルタイムのブロック、クォータとクレジット |
| ワークスペース | メンバー / 会話 / プロジェクト / ナレッジベース , 会議 直接完全なレコードを表示 |
| 使用量 | ユーザー、 モデル、用途(チャット / タスク / 画像 / 埋め込み)によるレポート |
| 設定 | サンドボックス アドレス、S3/OSS 認証、検索バックエンド、ホワイトリストアップロード、オフツール、圧縮戦略など |
| バックアップと移行 | 完全バックアップ輸出輸入、設定輸出輸入、ベクトルメンテナンス |
| サンドボックス検査器 | 特定のセッションのサンドボックス ワークスペース ファイルの閲覧および清掃 |
すべての変更が保存され、完全に再起動する必要はありません。コンソール管理の概要理解し始める。
バックアップと移行
コンソールの管理 完全なバックアップを一キーでエクスポートする: 単一の zip に manifest 、各テーブルに JSONL (エンジン中立) 、プロダクト ファイルのアップロード、コレクションごとに Qdrant ベクトル ポイントを含む。データベースエンジン:SQLite バックアップは、Postgres デプロイにインポートできますが、逆に、チャンネル、モデル、スキルなどの管理資産のみを移動させ、ユーザーデータを動かすことなく「インポート/エクスポートを設定」することもできます。バックアップと移行。
PWAと多言語
- PWAをインストールできます。: デスクトップ/メインスクリーンに追加し、モバイルエンドインターフェイスが完全に再起動されます。
- 5 言語インターフェイス: 簡体中国語、英語、日本語、フランス語、カバー各ページ、会話ボックス、Toastとエラー情報、管理コンソールを含む。
- 明るい二重テーマ、編集感のあるデザインシステム。
もっと能力
| 能力 | 説明 |
|---|---|
| 会話の木 | 編集/再試行 真部門開設< N/M >スイッチを切り替えてストリームを中断せず、スリップ可能なスケーラブルな概要ノードマップ、長い会話 右端のプレビューライン 秒レベルの位置 |
| 複数のモデル 相互審査(Verify) | 第2 モデル 回答の事実検証を対照的に実行し、出力の引用と深刻なレベルの構造化された findings と信頼のバッグ |
| 会話の記憶 | 毎回、ユーザーの事実を非同期的に抽出し、古いメモリが自動的に失効すると判断し、ユーザーは専用のページで管理することができます。 |
| プロジェクトとスキル | プロジェクト コンテナ(共有ライブラリ + プロジェクト レベルのコマンド); 管理者スキル パッケージの実行時に段階的にロード |
| 上下の圧縮 | 最近の N ラウンドのオリジナルテキストを保持し、以前のラウンドは タスクモデル スロール 概要、前置きキャッシュフレンドリーで、オリジナルアーカイブを変更しません |
| クレジット と ユーザー グループ | 定時料金 + 永久クレジット 、 モデル クォータ 、 送信前の料金事前チェック、 交換コード |
| 安全基盤 | API key フルバックエンドエージェント、要求ごとに HMAC 署名、機能トークン共有/招待、HTML サンドボックスプレビュー、アップロード拡張名と MIME ホワイトリスト、全速制限 |
構造概要
Aivoryの生産形態は、以下の5つのコンテナです。app単一コンテナを同時にホスト前端のSPAと/api(同じソース、CORSの問題なし)、残りはデータと実行コンポーネントです。
| コンテナ | 鏡像 | 役割 |
|---|---|---|
app | ghcr.io/hjxwz123/aivory-app | Go HTTP + SSE サービス、同ソースホスティングフロントエンド SPA |
postgres | postgres:16-alpine | ユーザー、 会話、 ナレッジベース、 設定、 使用記録 |
redis | redis:7-alpine | キャッシュ、制限周波数、配列およびストリーム回復 |
qdrant | qdrant/qdrant:v1.12.4 | RAG ベータ検索 |
sandbox | ghcr.io/hjxwz123/aivory-sandbox-sidecar | コード実行 サンドボックス(内部のみ) |
Redis、Qdrant、サンドボックス すべてオプションコンポーネント:不可REDIS_URLプロセス中にキャッシュおよびコレクションを使用する場合;適用されないQDRANT_URLRAG が完全に注入されるときに戻ります; 値しないSANDBOX_BASE_URLタイムコードの実行はセキュアモードに移行します。データベースはデフォルトでは、埋め込まれたSQLiteでさえ使用できます。SQLite モデル。
なぜアイドルを選ぶのか
データ自体
すべてのデータはあなたのインフラストラクチャに落とされます:データベース、ベクトルライブラリ、アップロードファイルとプロダクト(ホストに貼り付けます)DATA_DIRモデルAPIキーはデータベースに存在し、バックエンドでエージェントされ、ブラウザに暴露されません; 文書 OCR シーンでは、MinerU はあなたのオブジェクトに保存されている事前署名の URL のみを受け取ります。
単独配備命令
docker compose up -d配備が完了し、5つのコンテナがすべて準備が整いました。/apiどちらのドメイン名が使用できるかを解析し、構成する必要はありません。PUBLIC_ORIGINまたは CORS; 環境変数の設定ではなく、スタートページで管理者アカウントを作成し、その後、ほぼすべての設定(チャンネル、モデル、検索バックエンド、ホワイトリストのアップロードなど)が管理コンソールのリアルタイムの変更で保存され、再起動する必要はありません。
エンジン中立バックアップ
完全なバックアップは、それぞれのテーブルに JSONL が含まれており、特定のデータベースエンジンとは無関係です。今日、SQLite で始まり、明日 Postgres デプロイに同じバックアップをインポートすることもできます(逆に)と、セレクションと外部キーが自動的に処理されます。Qdrant ベクトルはバックアップとともに、データベースから保存された分割テキストを後で再構築することができます。あなたのデータはエンジンやマシンに閉じ込められません。
次のステップ
| 目標 | ページ |
|---|---|
| Aivory を 5 分で展開する | 早速スタート |
| 管理者を作成し、最初の モデルを設定する | 初めての運用 |
| 生産レベルの Docker Compose デプロイ | Docker Compose デプロイ |
| HTTPSとリバースプロキシの設定 | リバースプロキシ / Cloudflare |
| 主要な環境変数を理解 | コア配置 / 進階配置 |
| 日常会話機能一覧 | 会話機能 |
| コンソールの管理 | コンソール管理の概要 |
| 疑わしいスピード | よくある質問 |