コンテンツにスキップ

手動セットアップ

これは、ガイド付きウィザードを使用したくない技術的なユーザー向けの手動インストール手順です。 手厚いガイドラインが必要な場合は、代わりにセットアップウィザードを使用してください。 ウィザードが.envを作成し、安全なCRYPTO_SECRETを生成し、PostgreSQLを設定し、インストールを実行してくれます。

  • Bun
  • ネイティブにインストールされたPostgreSQL、またはDockerコンテナで実行されているPostgreSQL(ステップ2を参照)

PostgreSQLスキーマ、pgcrypto、シード、および移行は、ボットの起動時に自動的に初期化されます。

Terminal window
git clone https://github.com/Bredrumb/TomoriBot.git
cd TomoriBot
bun install --frozen-lockfile

例から環境ファイルを作成し、必要な値を入力します。

Terminal window
cp .env.example .env

必須:

  • DISCORD_TOKEN: Discordボットトークン (GuildMembers、MessageContent、およびGuildPresences特権インテントを有効にします)。
  • CRYPTO_SECRET: 32文字の暗号化キー (保存されているAPIキーの暗号化に使用されます)。
  • PostgreSQL接続: POSTGRES_HOST、POSTGRES_PORT、POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB。

データベースのバックアップとは別に、暗号化シークレットの保護されたコピーを保管してください。新しいバックアップには .env が含まれません。ローテーションには、CRYPTO_SECRET_V1、CRYPTO_SECRET_V2、またはそれ以降の正の整数バージョンを使用し、オプションで CRYPTO_SECRET_CURRENT を選択できます。

オプションのチューニングは.env.optional.exampleにあります。カスタマイズしたい値 (制限、タイムアウト、機能の切り替え、ローカルサーバー URLなど) をコピーします。

カスタム表現のアップロードは、デフォルトでdata/custom-expressions/の下のローカルファイルにアップロードされます。そのディレクトリを永続ストレージに保存します。EXPRESSION_STORAGE_BACKENDは、local、gcs、またはs3を受け入れます。クラウドバックエンドには、EXPRESSION_STORAGE_BUCKETと対応するSDK認証情報が必要です。S3は、AWS_REGION (デフォルトus-east-1) とオプションのS3_ENDPOINTも使用します。GCSはアプリケーションのデフォルトの資格情報を使用します。式は独自のバケット設定を使用します。アバターのストレージ設定では式バケットは選択されません。オブジェクトはSDKを通じて読み取り可能であり、バイトとして添付されるため、公開されているメディアURLは必要ありません。既存の参照を復元するときに、バックエンド、バケット、およびオブジェクトのキーを保持します。

MAX_CUSTOM_EXPRESSIONS_PER_SERVER はサーバーあたりのカスタム表現を制限します(デフォルト 20、最小 1)。リンクとアップロードされたファイルは、すべてのペルソナ間で制限を共有します。ネイティブの絵文字とスタンプは除外されます。変更後はボットを再起動してください。制限を引き下げても既存の表現は保持され、編集や削除は可能ですが、数が制限を下回るまで新規追加はブロックされます。

Terminal window
bun run dev

TomoriBot up and running!と表示されたら、Discordに移動してサーバーで/setupを実行し、AIプロバイダーを接続してボットを初期化します。 このコマンドはガイド付きのチェックリストパネルを開き、セットアップを完了を押すまで何も書き込まれません。手順についてはクイックスタートを参照してください。

オプションのローカルサーバー(SearXNG、Crawl4AI、ローカルTTS/STT)をボットと一緒に起動したい場合は、bun run devの代わりにbun run launchを使用します。

Terminal window
bun run launch --searxng --crawl4ai
bun run launch --help # see all flags

オプションの追加機能(手動での「フルインストール」)

Section titled “オプションの追加機能(手動での「フルインストール」)”

セットアップウィザードのフルインストールパスでは、基本インストールの上に軽量な追加機能がレイヤー化されます。 ボットの実行に必須のものはありませんが、それぞれが特定の機能をアンロックします。 手動でインストールする場合は、必要なものを追加してください。

pgvector:ドキュメント/RAGメモリー

Section titled “pgvector:ドキュメント/RAGメモリー”

RAG(ドキュメントのアップロードとチャンネル間のリコール)は、エンベディングをvectorカラムに保存するため、pgvector拡張機能が必要です。 お使いのPostgreSQLのメジャーバージョンに合わせてインストールします。

Terminal window
# Debian/Ubuntu, e.g. for PostgreSQL 16
sudo apt-get install -y postgresql-16-pgvector

次に、データベースで一度だけ有効にします。.envのPOSTGRES_*の値を使ってpsqlで接続します(POSTGRES_PASSWORDの入力を求められます)。

Terminal window
# Native / host psql (substitute your own POSTGRES_USER and POSTGRES_DB):
psql -h localhost -p 5432 -U tomori -d tomodb
# Or, if the database runs in the Docker container from step 2:
docker exec -it tomori-db psql -U tomori -d tomori

接続したら、次を実行します。

CREATE EXTENSION vector;

pgvectorがなくてもボットは動作しますが、RAG機能は完全に利用できなくなります。 この拡張機能は、バックアップを復元する前にターゲットデータベースにも必要です。 詳細についてはメンテナンスとバックアップを参照してください。

pg_cron:スケジュールされたクリーンアップジョブ

Section titled “pg_cron:スケジュールされたクリーンアップジョブ”

pg_cronは、オプションの定期的なデータベースメンテナンス(クールダウン/リマインダー行のクリーンアップ)を強力にサポートします。このリポジトリのDocker Composeでは既に設定されています。

自己管理のPostgreSQLの場合は、アクティブな設定ファイルを見つけます。

SHOW config_file;

postgresql.confで拡張機能を有効にします。shared_preload_librariesに他のライブラリがすでにリストされている場合は末尾に追加します。

shared_preload_libraries = 'pg_cron' # e.g. 'pg_stat_statements,pg_cron'
cron.database_name = 'your_dbname'

PostgreSQLを再起動した後、以下を実行します。

CREATE EXTENSION IF NOT EXISTS pg_cron;

NovelAIのテキスト生成およびモデルを意識したロジットバイアスには、ローカルのトークナイザーアセットが必要です。

Terminal window
bun run setup:tokenizers

一部のファミリー(例: Gemma)はゲートで保護されており、ライセンスに同意した後にHuggingFaceトークンが必要です。

Terminal window
# Windows (PowerShell)
$env:HF_TOKEN="hf_xxx"; bun run setup:tokenizers
# macOS/Linux
HF_TOKEN=hf_xxx bun run setup:tokenizers

アセットが見つからない場合、オプションのロジットバイアスは無効になります。NovelAIのテキスト生成には3つのトークナイザーファミリーが必要であり、それらが不足しているか無効な場合はセットアップエラーが返されます。これらのファミリーは固定された公開MIT定義を使用しており、Hugging Faceトークンは不要です。それらのファミリーのみをインストールするには:

Terminal window
bun run setup:tokenizers --family novelai_nerdstash_v2
bun run setup:tokenizers --family novelai_llama3
bun run setup:tokenizers --family novelai_glm

ダウンローダーはリポジトリの tokenizers/ ディレクトリに書き込みます。TOKENIZER_ASSET_DIR が別の場所を指している場合は、ダウンロードしたファミリーディレクトリをそこへコピーしてください。ランタイムがロード失敗をキャッシュするため、アセットのインストールや修復後はTomoriBotを再起動してください。

安全な fetch_url フォールバックと DuckDuckGo の web_search フォールバックはどちらもプロセス内で実行されるため、どちらも追加のインストールは不要です。

メンテナンス、更新とバックアップ

Section titled “メンテナンス、更新とバックアップ”

インストールが完了したら、ホスト側のスクリプト(bun run update、bun run backup、bun run restore-backup、bun run nuke-db、bun run rotate-keysなど)、および更新とバックアップの手順はすべてメンテナンスとバックアップページにあります。 新しいバージョンをプルする前に、まずはメンテナンスとバックアップから始めてください。