よくある質問
このページでは、デプロイの運用と日常の使用における最も頻繁な質問をまとめています。それぞれの回答の末尾には、適切なマニュアルページへのリンクが付属し、詳細については、適切なページを参照してください。
インストールと最初の実行
最初にログインした管理者アカウントはどこから来ましたか?
Aivory は環境変数を介して管理者証明書を事前に設定しません。新しいデプロイ(ユーザー数は 0 である)時には、サイトへのアクセスが自動的に戻ります 初期設定ページ/setup: メールボックス、名前、パスワード(少なくとも8文字)を入力し、アカウントが管理者となり、メールボックスの検証なしに自動的にログインします。
あるアカウントが存在する場合、/setup 就永久失効(再度、409に戻りますので、開きます。/setupインスタンスが初期化されていることを示すエラー メッセージが表示される場合は、通常のログインプロセスに従ってください。
詳細初めての運用。
なぜモデル は選択器に表示されないのですか?
以下の順序でチェックする:
- チャンネル未設定: まず管理コンソール「チャンネル」にアップストリームを追加します(タイプ:Anthropic / OpenAI / Gemini / OpenAI 互換性、Base URL + API Keyを記入します)。
- モデル 作成されていないまたは有効化されていない次に「モデル」ページにモデルを作成します(チャンネルを選択し、アップストリームモデルIDを入力します)と確認します。オープンアクティブなモデルだけがすべてのユーザーのセレクターに表示されます。
- ラベル選択: モデルピッカーの上部にはタグフィルタチップがあり、ターゲット モデルをフィルタリングするタグが現在選択されていないことを確認し、「すべて」に戻すことができます。
最初にインタフェースを体験したい場合は、Compose で設定できますENABLE_MOCK_PROVIDER=true内蔵デモモデルを有効にします(デフォルト)false)。
詳細チャンネルとモデル。
JWT_SECRET は設定する必要がありますか? なぜ誰もが再起動後にログインする必要があるのですか?
二つの状況:
- 開発環境:
JWT_SECRET設定されていないときに自動的にランダムな臨時キーを生成します。副作用は**プロセスを再起動するたびに、セッションはすべて無効になります。**すべての人が再ログインする必要があります。開発環境でセッションを再起動して生き残りたい場合は、固定値を設定します。 - 展開環境(
AIVORY_ENVDev ではなく、DATABASE_URLPostgres への指示):設定する必要があります。少なくとも32文字的JWT_SECRETそうでなければ、サービスは直接起動を拒否します。
カードの有効期限はACCESS_TTL(仮認)30m)およびREFRESH_TTL(仮認)720hつまり 30 日) 制御、Go duration 形式。
詳細コア配置。
機能の使用
なぜ ナレッジベース 検索結果は空ですか?
最も一般的な2つの理由:
- 未配置ベータ後端:
QDRANT_URLデフォルトは空であり、空時ベクトルの回収は無効となり、RAGの全文は再注入に戻ります。小さなドキュメントはまだ利用可能ですが、実際のベクトル回収はQdrantを構成する必要があります(生産コンポーネスは組み込まれている)。 - 未配置 組み込みモデル: ナレッジベース ドキュメンタリー入力 必要 埋め込みモデル 。
EMBEDDING_BASE_URL/EMBEDDING_API_KEY/EMBEDDING_MODEL(仮認)text-embedding-3-small) 設定、または管理コンソールの設定でモデルを埋め込みます。
ファイルの状態が確認済み。ready(ステータスストリーム:pending → parsing → embedding → ready) 中間状態のドキュメントは、リハビリに参加しません。
EMBEDDING_DIM と 埋め込みモデルが一致しないのはどうですか?
EMBEDDING_DIM仮認1536(対応)text-embedding-3-smallQdrant collection は、次元で名前を付けます。aivory_c<维度>異なる入り込みモデルで出力次元を交換する場合は、EMBEDDING_DIM新しいモデルの実際の次元を変更するか、そうでないと、ベクトルが書き込みと回収して間違ったコレクションに落ちる。
次元を変更した後、管理コンソールの「バックアップと移行」へベクトルメンテナンスリベクトル再構築:データベースに保存されている分ブロックテキストからリコール 埋め込みモデルを新しいコレクションに書き込み、元のファイルは必要ありませんが、埋め込みAPIの呼び出しを消費します。
詳細バックアップと移行。
スキャンバージョンのPDFをアップロードした後、コンテンツを解析できませんか?
テキストレイヤーを含む PDF はローカルなミリ秒レベルの解像度で、外部サービスに依存しません。スキャンファイル PDF(およびDOCX / PPTX / XLSX / 画像) MinerU クラウド OCR を取る必要があります。 設定されていることを確認してください:
| 変数 | デフォルト値 | 説明 |
|---|---|---|
MINERU_API_URL | 空(Compose でデフォルト)https://mineru.net) | MinerU API アドレス |
MINERU_API_KEY | 空 | MinerU の API キーが設定されていない場合、スキャナは解消できません |
詳細ナレッジベース。
サンドボックスのコードはインターネットに接続できますか?
仮認できないサンドボックス ネットワークは Compose 変数によって構成されます。SANDBOX_NETWORKコントロール、デフォルト値none(完全にネットワークなし) これは意図的なセキュリティのデフォルト値です サンドボックス内コードがインターネットにアクセスする必要がある場合にのみ変更しますbridge。
ネットワークなしでもほとんどのシーンがカバーできる: モデルは サンドボックス外用 web_fetch / fetch_imageツールは、ウェブページや画像をキャッチし、キャッチしたコンテンツを自動的にサンドボックスの/workspace/uploads/Python コードはファイルを直接読み取ることができます。
SANDBOX_BASE_URL空の時間に、python_executeセキュアモードに入り、簡単な算術のみを実行します。 生産コンポーネントはサンドボックス容器(SANDBOX_BASE_URL=http://sandbox:8000)。
詳細サンドボックス展開与 Python サンドボックスの使用。
サイズ制限はどこで変更するの?
3 レベル:
- サービスの厳しい上限:
MAX_UPLOAD_BYTES仮認52428800(50 MB)は、アップロードがそれを超えることはできません。 - コンソールの制限管理管理人は後ろに押すことができます。写真和文書個別に制限を強化する(硬い上限よりも小さいだけ)。
- リバースプロキシ: Nginx などの逆代行を行えば、代理層の要求体上限を拡大する必要があります(たとえば、
client_max_body_size)の場合、Aivoryに到着する前にリクエストが拒否されます。
バックアップインポートは、別の独立した上限です。MAX_BACKUP_BYTESデフォルトは20 GiB。
ユーザーは1日にどれだけのメッセージを送信し、何枚の画像を生成できますか?
環境変数レベルにおけるグローバルデフォルト値:
| 変数 | デフォルト値 | 説明 |
|---|---|---|
DAILY_MESSAGE_LIMIT | 200 | ユーザー毎日のニュース数 |
IMAGE_DAILY_LIMIT | 30 | ユーザー毎日の画像の生成数 |
さらに、管理者はユーザー グループ、クレジット、モデル クォータ (期間限定、永続 クレジット、送信前の料金の事前確認、コードの交換) でより精密な制御を行うことができます。ユーザーとクォーター。
展開とネットワーク
HTTPでデプロイできますか?
Aivory Front Endは、ブラウザの暗号化能力を検出:非安全なコンテンツ(HTTP テキスト)では、リクエスト署名などの機能が自動的に純粋な JS 実装に戻り、HTTPS のみが提供するものに依存しません。crypto.subtle火を待つ。
テキスト転送は、パスワード、トークン、および 会話のコンテンツがネットワーク上で盗聴できることを意味し、また、PWA インストールなどのブラウザの機能の一部は、セキュアなコンテンツでのみ利用できます。 生産環境では、リバースプロキシまたは Cloudflare で TLS を終了することを推奨します。
ドメイン名を変更するには?
単一容器同源配備の下、Aivoryドメイン名に適応前端と/apiどちらのドメイン名が使用できるかを解析し、変更する必要はありません。ALLOWED_ORIGINSor any origin configuration. ドメイン名を変更するには:
- 新しいドメインの DNS 解析をサーバーに転送し、リバースプロキシを更新します。
server_name証明書とともに。 - OAuth ログインを設定した場合: 複数のドメイン名またはドメイン名変更シーンを設定する
OAUTH_CALLBACK_BASE_URL固定回転scheme://hostまた、OAuth プロバイダー側のリクエストアドレスを同期し、クロスドメインログインにはリクエスト許可の origin を追加する必要があります。OAUTH_RETURN_ORIGINS白いリスト。 - たった前後端分離配備は維持が必要です。
ALLOWED_ORIGINS(先端に注目し、先端に注目)VITE_API_BASE構築期間の変数であり、変更は再構築する必要があります。
SQLite か Postgres か?
DATABASE_URLトップ > トップ > トップ > トップ > トップ > (./data/aivory.db(WAL モード) ゼロ依存で起動可能で、個人の使用と小規模な試用に適しています。postgres://プレフィックスは PostgreSQL に切り替わり、Compose は Postgres 16 を使用してデフォルトで生成されます。
注目:DATABASE_URLPostgres を「デプロイ環境」とみなし、デプロイレベルのセキュリティチェック(強制要件など)を起動します。JWT_SECRET少なくとも32文字)。
バックアップを選択する必要はありません: エンジン中立のバックアップ形式のおかげで、SQLite は起動後、データを失うことなく、すべてのバックアップを Postgres デプロイにインポートできます。SQLite モデル。
データとアップグレード
管理者パスワードを忘れたらどうする?
可用性に応じて高から低まで:
- コードの流れを取り戻すログインページで「パスワードを忘れ」を参照し、メールボックスに送信された6ビットの認証コードをリセットします(認証コードが5回間違えたら無効になり、再起動が必要です)。
- 別の管理者が協力: インスタンスに他の管理者アカウントが含まれている場合は、管理コンソールのユーザー管理でパスワードを変更できます。
- バックアップから回復: 上記のいずれも実行できず、完全なバックアップがある場合は、バックアップのアカウントパスワードでサインインできます。
注意点/setup既存のアカウントのインスタンスで永久に無効となり、管理者を再構築することはできません。アカウント管理与ユーザーとクォーター。
バックアップはデータベースエンジンで復元できますか?
Aivory バックアップ形式のコアデザインです。完全なバックアップは単一の zip:manifest + テーブルごとに JSONL (エンジン中立) + オプションのファイル ディレクトリ + オプションの Qdrant ベクトル ポイントです。SQLite バックアップは Postgres デプロイにインポートできます。
導入時に注意:
- 導入は箱全体の交換確認用語を入力する必要があります。
REPLACE終了後、現在のすべてのセッションが無効となり、バックアップ内のアカウントパスワードで再度サインインします。 - セキュリティメカニズム:「インポートされた管理者メールボックスを実行する」を除き、バックアップがもたらす他の admin はすべて一般ユーザーにダウンロードされます(悪意のあるバックアップを防ぐ権限)。新しいインスタンスの初期管理者のメールボックスは、古いインスタンスの管理者と一致する必要があります。。
- サイズ上限を導入
MAX_BACKUP_BYTES(デフォルトは20 GiB)。 - バックアップにベータが含まれていない場合は、ベクトルメンテナンスでデータベースのブロックからテキストを再構築し、元のファイルを必要としません。
詳細バックアップと移行。
新バージョンにアップグレードするには?
標準的なプロセス:
cd Aivory/deploy
# 建议先在管理后台导出一份完整备份
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d
新しいバージョンの起動時にデータベース構造自動移転SQL を手動で実行する必要はありません. 鏡のタグは.env中のIMAGE_TAGコントロール(仮定)latest具体的なバージョンも含まれる)。
移行は自動的ですが、毎回アップグレードする前に管理コンソール「バックアップと移行」で完全なバックアップをエクスポートすることをお勧めします。