メインコンテンツまでスキップ

環境変数設定

PlantPulse AI の設定は /etc/kopens/plantpulse-ai.env という 1 つのファイルから始まります。

sudo vi /etc/kopens/plantpulse-ai.env
設定の正本は /etc/kopens/ の下にある

パスは /etc/kopens/plantpulse-ai.env です。インストールディレクトリ (/opt/kopens/plantpulse-ai-docker) の中ではなく repo ツリーの外にあり、権限は 0600 です。platform · ai · studio の 3 製品が同じ規約で /etc/kopens/plantpulse-<product>.env を使います。

🔴 compose/.env を編集しないでください。 誰も読みません — スタックは変わりません。

パスワード・API キーを直接編集しないでください

下表の *_PASSWORD · *_API_KEY は、ファイルを書き換えるだけでは反映が完了しません。Neo4j のように サーバーアカウントが正本である値はサーバー側も併せて変更する必要があり、順序を誤ると認証が壊れたまま 残ります。専用ツールを使ってください — パスワード・API キー変更。

値は 3 か所にあります (2026.10)​

2026.10 からホスト env にはこのインストール固有の値だけを置きます。それ以外はリリースと共にバージョン管理されます。

どこ何を変更方法
ホスト env /etc/kopens/plantpulse-ai.envハードウェア構成(PP_HW_PROFILE) · サイト値(言語 · タイムゾーン · 証明書名) · プラットフォーム接続 · シークレットこのファイルを編集してサービスを再作成します
ハードウェアプロファイル compose/profiles/<모양>.envハードウェアごとに異なる値 — vLLM 3 本の GPU 配分とその合計の上限リリースが決めます
compose デフォルト値製品デフォルト — イメージ · モデル名とパス · サービスチューニングリリースが決めます。ホスト env に異なる値を書くと、そのインストールのみ上書きされます

PP_HW_PROFILE は gb10(GB10 · aarch64) または g7e(AWS g7e · x86_64) です。テンプレートが既に記載しており、無い場合や マシンのアーキテクチャと食い違う場合は起動しません。

以下の表でホスト env テンプレートに無い変数(デフォルト値が記載されているもの)は compose デフォルト値です。そのまま使うのが 正常で、変更するときだけその行をホスト env に別の値で記載します。

値を変更した後はサービスを再作成する必要があります(docker restart は env を読み直しません)。

cd /opt/kopens/plantpulse-ai-docker
bin/restart.sh

起動スクリプトは起動前に bin/lint-env.sh でこのファイルの行ごとに所定の位置にあるかを判定し、 以下のいずれかがあれば起動しません。

判定内容
releaseイメージ参照 — DOCKER_REGISTRY · DOCKER_NAMESPACE · UPSTREAM_* · *_IMAGE · PI_IMAGE_TAG_* · 値のある PP_IMAGE_TAG
profileハードウェアプロファイルのキー(LLM_GPU_UTIL など)
redundantcompose デフォルト値をそのまま繰り返した行
derivedPP_HOST — PP_DATALAKE_ADMIN_URL のホストから算出されます
unknownどこからも読まれないキー
renamed名称が変わった旧キー(CH_* → CO_*) — **「削除せよ」ではなく「移せ」**と言います(後述「コパイロット設定」)

そのほか、値の位置の ${…} 置換、PP_HW_PROFILE の不在、GPU 配分の超過も起動を止めます。compose デフォルト値と異なる 値は意図した上書きとみなし、通知([note])のみ表示します。判定は行ごとに理由を出力し、削除すべき行を一度に削除する sed コマンド(バックアップを残す形式)も併せて出力します。renamed の行は削除リストに入れず、名称のみを変更する sed を別途 出力します。値は出力しません。

そのままでも何も変わらない行は [warn] とだけ表示し、起動は妨げません — 今回のリリース中は旧名でも 読む別名(alias)、新名と同じ値で残っている旧行(oldname)、映像 · 音声スイッチが与える値と同じ行(media-same)です。 判定はこれらを一度に整理する sed を 1 行併せて出力し、bin/doctor.sh はこれらの行を «bad» ではなく «old or redundant lines» として別に表示します。映像 · 音声スイッチの値が true · false 以外であるか PI_INBOUND_API_KEY が 空の場合は起動を止めます(後述「映像 · 音声収集」 · 「バックエンドインバウンドキー」)。


イメージとレジストリ​

🔴 2026.10 からイメージ参照はホスト env に記載しません。 どのイメージ · どのタグで起動するかはリリースの compose が決め、ホスト env に下記の変数があると起動前判定が release で起動を止めます。ホストに残ったピンが 次のリリースを覆い隠し、バンドル作成時にそこへ漏れ出た事例があったためです。

変数意味
DOCKER_REGISTRY · DOCKER_NAMESPACE自社イメージの取得元 (docker.kopens.io / pi)
UPSTREAM_DOCKERHUB · UPSTREAM_NVCR外部イメージを代理取得する社内プロキシ
PP_IMAGE_TAGセットの既定タグ。テンプレートには空行としてのみ残っています
PI_IMAGE_TAG_<component>1 コンポーネントだけを別のスナップショットに固定する場合(ホットフィックス · ロールバック)。13 個あり、サフィックスはイメージ名を大文字にしたものです(plantpulse-timeseries-insight-api → PI_IMAGE_TAG_TIMESERIES_INSIGHT_API)

緊急時に 1 コンポーネントだけ別のタグで起動する必要がある場合は、ファイルではなくシェル環境でその実行限りに与えます。次の通常の 起動はリリースタグに戻ります。

cd /opt/kopens/plantpulse-ai-docker
PI_IMAGE_TAG_RAG_API=<태그> bin/up.sh

2026.10 で自社イメージが 12 個になりました — デジタルスレッド(plantpulse-digital-thread-api)が 新たに加わり、LightRAG と LiteLLM も元イメージをそのまま使わず当社がラップしたイメージ (pi/plantpulse-lightrag · pi/plantpulse-litellm)に変わりました。ラップした 2 つのイメージも他の自社イメージと同様に 月次タグ(2026.10)に従い、個別に固定する場合は PI_IMAGE_TAG_LIGHTRAG · PI_IMAGE_TAG_LITELLM を使います。 ラップのベースは LightRAG v1.5.7 · LiteLLM v1.103.0 です。

2026.10 再リリース 3 でもう 1 つ増え 13 個です — 音声書き起こしサービングが使うオーディオライブラリイメージ pi/plantpulse-asr-audio(約 130 MB、固定時は PI_IMAGE_TAG_ASR_AUDIO)です。映像 · 音声を有効にしたインストールでのみ起動しますが バンドルには常に含まれます(後述「映像 · 音声収集」)。

PP_IMAGE_TAG は空のままにします

空にしておくと compose に埋め込まれた CalVer リテラルを使います。そのリテラルはリリースごとに bin/bump-version.sh が移すため、リリース月の置き場所は 1 か所だけになります。値を記載すると起動前判定が 起動を止めます。

YYYY.MM は «動く» タグです

同じ月内に再リリースすると上書きされます。時点を固定するには日付タグ (YYYY.MM-YYYYMMDD)を上記のシェル環境方式で与えますが、イメージごとに存在するかを確認し、存在するものだけを個別に固定してください — すべてに存在するわけではないため、一括で変更すると存在しないものが pull に失敗します。

管理コンソールはイメージが 2 つです — 固定に使う変数は PI_IMAGE_TAG_ADMIN_API と PI_IMAGE_TAG_ADMIN_WEB です(両方空なら PP_IMAGE_TAG に従います)。同じコミットから生成されるため、個別に固定する場合も2 つを常に一緒に 揃えてください。食い違うと、コンソールが自分が呼ばない API を持つバックエンドと組み合わされます。


言語とタイムゾーン​

変数デフォルト値意味
PP_LANGkoインストールの既定言語 — メール · 予約実行 · 保存文のようにリクエストのない場面の言語です。自動化の要約 · 回次の理由 · PDF の節名 · Excel のシート名のように、サーバーが書く自動化の文章もこの言語です → 自動化 — 報告書のタイトル。コパイロット画面は自分で選んだ言語 → ブラウザの言語が優先され、どちらも韓国語 · 英語でない場合にのみこの値です → 画面の言語。管理コンソールはホームカード名のみこの値に従い、他の画面はログイン画面の言語切替(English · 한국어)が決めます · 値は ko · en の 2 つだけです。空またはそれ以外の値ではサービスが起動しません(インストールテンプレートの既定は ko)
PP_TZAsia/Seoulインストール 1 つのタイムゾーン — 全サービスとホスト OS がこの 1 つを使います。インストーラが選択します(インストール時に与えた値 → 既に env にあった値 → ホストのタイムゾーン(UTC でなければ) → Asia/Seoul の順)
LIGHTRAG_SUMMARY_LANGUAGEKoreanRAG が知識を要約する言語

要約言語を画面言語と別に持つ理由は、画面は英語で使っていてもコーパス(現場 SOP)が 韓国語である場合が多いからです。


プラットフォームから借用するもの​

🔴 AI スタックは PostgreSQL · Aster TSDB · Redis · RustFS を起動しません。 プラットフォームのインストール分を 共用します。これらの値が誤っていると、AI は起動はしても何も保存できません。

プラットフォーム資格情報はコンテナが «起動時» に受け取ります​

2026.10 からプラットフォームストレージのアカウント · パスワード · ポート(PG · Aster TSDB · Redis · RustFS)を compose が コンテナに渡しません。それらを使う 6 サービス(copilot-web · timeseries-insight-api · lightrag · rag-api · digital-thread-api · litellm)が起動時にプラットフォームの資格情報 API から受け取り、自分の名前に 置き換えてからアプリを起動します。ホスト env に記載するのは、その API を呼ぶアドレスとキーの 2 つだけです。

変数意味
PP_DATALAKE_ADMIN_URLプラットフォームデータレイク管理 API — https://<플랫폼 호스트>:4950。この URL のホストがそのままプラットフォームホストです
PP_DATALAKE_ADMIN_API_KEYその API のキー。プラットフォームホスト /etc/kopens/plantpulse-platform.env の同名の行をそのまま移します

テンプレートには 2 行がプレースホルダ値で入っており、対話型インストール(INTERACTIVE=1)は 2 つの値を尋ねます。受け取りに必要な準備は インストール概要 にあります(プラットフォーム許可リスト · トラストアンカー root.crt)。

受け取れなければそのコンテナは «停止します»
  • 2 つの値のうち片方だけを記載するとコンテナが拒否します。
  • 受け取りに失敗すると FATAL で停止します(接続失敗 · 5xx は短時間リトライ、4xx は即時)。前回の値で起動するキャッシュはありません。
  • サーバー証明書は /etc/kopens/ca/root.crt でのみ検証します。ファイルが無ければ FATAL であり、検証を無効にする手段はありません。

プラットフォーム側でパスワードを変更した場合、AI 側で修正するファイルはありません — そのコンテナを再起動すれば新しい値を 受け取ります。受け取った値はログにキー名と件数のみが残ります(docker logs <컨테이너> 2>&1 | grep credentials:)。

ホストスクリプトも同じ経路で受け取ります。 起動前の DB プロビジョニング(provision-platform-db.sh)、手動で実行する DB 移行スクリプト、install.sh START=1 の事前確認が同じ API を同じ規則(root.crt で検証)で呼びます。 そのためホスト env にもプラットフォームのアカウント · パスワードはありません。 失敗すると [FATAL] [platform-credentials] … の 1 行で 理由(到達不可 · 401/403 · キー無し · URL/キー/CA 無し)を示して停止します。プラットフォームに到達できない場所で試験する ときだけ、その実行のシェル環境で値を与えればそれが優先されます。

ホスト env に残るプラットフォーム値は以下だけです。

変数意味
PP_DATALAKE_ADMIN_URL · PP_DATALAKE_ADMIN_API_KEY上記 — 資格情報の取得先
PP_API_URL · PP_API_TOKENプラットフォーム V5 API — 資格情報ストアに無い値のためホスト env に残ります(後述「プラットフォーム統合 MCP」)
PP_PG_PORT · PP_CASSANDRA_PORTテンプレートにはコメントとしてのみあります。ホストスクリプトのみが読み、プラットフォーム既定ポートなら空のままにします

プラットフォームホスト(PP_HOST)は記載しません — PP_DATALAKE_ADMIN_URL のホストがそれであり、コンテナと ホストスクリプトが同じ規則で算出します。AI が使う PG データベース名(PP_LIGHTRAG_PG_DB デフォルト lightrag など)は compose デフォルト値です。

AI アプリ自身の PG データはプラットフォーム PG の DB pi にアプリごとのスキーマを分けて置きます(コパイロット co · デジタルスレッド dt、アカウントは PP_PG_USER)。旧インストールの DB ch は起動時に pi.co へ移されます。

2026.10 へ上げるとき — 旧 env はそのままでは起動しません

インストーラと update.sh は既存の env を再作成しません。 2026.09 以下の env には、もはや 所定の位置ではない行 — イメージ参照、GPU 配分、compose デフォルト値と同じ値、PP_HOST、プラットフォームのアカウント · パスワード (PP_PG_USER · PP_PG_PASSWORD · PP_CASSANDRA_* · PP_REDIS_PASSWORD · PP_S3_* など) — が多く残っており 起動前判定が起動を止めます。 上げる前に整理してください。

cd /opt/kopens/plantpulse-ai-docker
sudo bash bin/lint-env.sh # 무엇이 남았나 — 바꾸지 않습니다
sudo cp -p /etc/kopens/plantpulse-ai.env ~/plantpulse-ai.env.bak-$(date +%Y%m%d-%H%M)
# lint-env 가 찍은 sed 한 줄을 그대로 실행한 뒤, 하드웨어 모양을 더합니다(GB10 = gb10 · g7e = g7e)
grep -q '^PP_HW_PROFILE=' /etc/kopens/plantpulse-ai.env || echo 'PP_HW_PROFILE=gb10' | sudo tee -a /etc/kopens/plantpulse-ai.env >/dev/null
sudo bash bin/lint-env.sh && bin/restart.sh
  • 削除する前に入れるもの — PP_DATALAKE_ADMIN_URL · PP_DATALAKE_ADMIN_API_KEY を新たに入れ、トラストアンカーを配置します。 旧プラットフォームアカウントの行は判定が «削除せよ» としか言わないため、この 2 つを先に入れてください。
  • 旧 CH_* の行は判定が renamed として検出し、名称のみを変更する sed を別途出力します — それを実行すれば値はそのまま CO_* へ移されます(後述「コパイロット設定」)。
  • 意図的にデフォルト値と異なる値にしているもの(例: モデルパス)は override 通知として残り、削除されません。
設備アラームは MQTT で受け取ります

コパイロットはプラットフォームの設備アラームを MQTT で購読します(2026.09、従来は Kafka)。ブローカーアドレスは PP_API_URL のホストに従い、ポートのデフォルト値は 1884(TLS)のため別途記載する値はありません。 以前の PP_KAFKA_PORT は廃止されました — 残っていても誰も読みません。


プラットフォーム統合 MCP​

コパイロットチャットがプラットフォームのリアルタイムデータを取得する経路です。

変数意味
PP_API_URLプラットフォーム server-web のベース URL
PP_API_TOKENプラットフォームが発行した API トークン
トークンが «誤っていても» 起動はします

2 つの値は compose が必須として受け取ります — 空だとスタックが起動しません。 プレースホルダが残っていると bin/up.sh が起動させません。 しかし誤ったトークンの場合、スタックは正常に起動し、チャットのプラットフォーム MCP ツールだけが静かに 0 個になります。「ツールが見えない」という症状ならここから確認してください。


モデルとゲートウェイ​

モデル · ゲートウェイの値はすべて compose デフォルト値であり(キーはインストーラが生成するシークレットのみホスト env にあります)、vLLM が v0.31.0、docling-serve が v1.36.0 です。イメージ(VLLM_IMAGE · DOCLING_IMAGE)は上記「イメージとレジストリ」の 規則に従うためホスト env には記載しません。モデルの配置は LLM_MODEL_PATH · EMB_MODEL_PATH · RERANK_MODEL_PATH (デフォルトは /opt/kopens/models 配下の Aura-* ディレクトリ)です。

変数デフォルト値意味
LLM_NAMEaura-lite生成モデルを呼ぶ名前。ビジョン兼用です
EMB_NAMEaura-embedding-4b埋め込みモデル名
RERANK_NAMEaura-reranker-0.6bリランクモデル名
LLM_MODEL_PATH/opt/kopens/models/Aura-Lite-NVFP4生成モデルの重みフォルダ。最後のフォルダ名として Aura-Lite-NVFP4.tar.zst を受け取ります
LLM_MODEL_ARGS--tool-call-parser gemma4 --reasoning-parser gemma4 --async-scheduling --enable-chunked-prefillvLLM 起動引数。重み(Gemma 4 系)に合わせたパーサのため、重みと一緒にのみ変更します
VISION_LLM_MODEL(空)ビジョンリクエストに別のモデルを使う場合のみ。空にすると LLM_NAME を使います
PI_VLLM_API_KEYインストーラが生成vLLM 前段のキー
PI_LLM_API_KEYインストーラが生成LiteLLM マスターキー
PI_LITELLM_SALT_KEYインストーラが生成LiteLLM が保存値を暗号化する際に使うソルト
PI_LITELLM_UI_USERNAME · PI_LITELLM_UI_PASSWORDadmin · admin123!LiteLLM 管理画面(:4000/ui)のログイン。パスワードは必須です → 初期パスワード変更
PI_LITELLM_PORT4000LiteLLM をホスト側に公開するポート。このホストで別の LiteLLM が既に 4000 を使っている場合のみ変更します。スタック内の利用側はコンテナネットワークで plantpulse-litellm:4000 を呼ぶため、この値とは無関係です。変更後は bin/restart.sh plantpulse-litellm で再作成します
LITELLM_IMAGE は廃止されました

2026.10 からゲートウェイイメージは自社イメージ(pi/plantpulse-litellm)のため、上記のイメージタグ規則に従います。 旧 env に残った LITELLM_IMAGE の行は起動前判定がイメージ参照(release)として検出し、起動を止めます — 削除してください。

モデル名は aura-* です — 旧名の別名はありません

ゲートウェイに登録される名前は aura-lite · aura-vision(ビジョン別名) · aura-embedding-4b · aura-reranker-0.6b です。LLM のサービング名は 2026.09 に gpt-4o → aura-35b、 2026.10 再リリース(2026-10-20) に aura-35b → aura-lite と変わり、旧名の互換別名は設けません — 旧名で呼ぶと 404 になるため、外部連携の model の値を新しい名前に変更する必要があります。VLM_NAME も 廃止されました(ビジョン別名はゲートウェイ設定が保持します)。

サービング名(LLM_NAME)と重みフォルダ(LLM_MODEL_PATH、デフォルト /opt/kopens/models/Aura-Lite-NVFP4)は別々の設定です。 再リリース(2026-10-20) で両方とも変わりました — 重みフォルダは Aura-35B-A3B-NVFP4 → Aura-Lite-NVFP4(バンドルモデルファイル Aura-Lite-NVFP4.tar.zst)。 この 3 つ(LLM_NAME · LLM_MODEL_PATH · LLM_MODEL_ARGS)をデフォルト値と同じ値でホスト env に記載すると、起動前判定(lint-env)が redundant として起動を妨げます — 別のモデルを試すときだけ «異なる値» で記載します。

PI_LITELLM_SALT_KEY は変更しないでください

管理コンソールのモデル登録画面で入力した外部プロバイダ API キーを暗号化する鍵です。変更すると既に保存された ものを復号できません — コンテナは healthy で起動しモデル一覧もそのままなのに、呼び出しだけが静かに失敗します。 最初に決めた値をそのまま維持し、バックアップ対象に含めてください。

GPU メモリ配分​

vLLM 3 本(生成 · 埋め込み · リランク)と音声書き起こし vLLM(plantpulse-asr)、時系列推論サーバーが同じ GPU を分け合います。 それぞれの配分とその合計の上限はすべてハードウェアプロファイル(compose/profiles/<PP_HW_PROFILE>.env)が持ちます — ホスト env に記載すると起動前判定が profile で起動を止めます。

変数gb10 / g7e意味
LLM_GPU_UTIL · EMB_GPU_UTIL · RERANK_GPU_UTIL0.4 · 0.10 · 0.08 / 0.53 · 0.13 · 0.10vLLM 3 本の GPU メモリ配分
TS_GPU_UTIL0.13 / 0.15時系列推論サーバーの配分
ASR_GPU_UTIL0.03 / 0.04音声書き起こし vLLM の配分 — 映像 · 音声を有効にしたインストール(PI_MEDIA_ENABLED=true)でのみ起動しますが、無効でも合計に含めます(有効にする日に上限を超えないように)
PP_GPU_BUDGET_CEILING0.75 / 0.955 つの配分の合計上限。超えると起動前に停止します

GB10 は統合メモリのため上限が 0.75(合計 0.74)、専用 VRAM 機器(AWS g7e)は 0.95(合計 0.95)です。

合計を超えると vLLM が 24 秒ごとに落ちて復活します

vLLM は起動時に «残りメモリ ≥ 自分の配分» を確認し、足りなければ落ちます。合計が超過すると先に起動する 方が勝つ競争になり、負けた方は再起動を繰り返してチャットが停止します — ログのどこにも「設定が 過大だ」という表示は出ません。そのため起動前に算術でブロックします。減らす必要があるなら最も大きい配分から 減らしてください。

GB10 は GPU メモリがシステム RAM と同じプールのため、上限を上げると OS · DB が使う分がなくなります。 テンプレートとマシンのアーキテクチャが食い違うとインストーラが停止するのもこのためです。


コパイロット設定 — プレフィックスは CO_ です​

コパイロット(copilot-web)に渡す環境変数は 2026.10 から CO_ で始まります(従来は CH_)。 CO_LLM_* · CO_TOOL_RESULT_MAX_CHARS · CO_API_V1_KEY · CO_JAVA_OPTS · CO_NAVIGATOR_CRON · CO_ANOMALY_CRON · CO_INCIDENT_DIAG_CONCURRENCY · CO_OTEL_* がすべてそうです。

2026.10 へ上げるとき — CH_* の行は削除せず «移してください»

旧名へのフォールバックはありません。 インストーラは既存の env を再作成しないため、以前の env の CH_API_V1_KEY · CH_LLM_MAX_COMPLETION_TOKENS · CH_OTEL_GENAI_CONTENT のような行はそのまま残りますが、コパイロットは その名前を読みません。行を削除するだけではその値がデフォルトに戻ります — 例えば CH_API_V1_KEY で開けて いた公開 API は、そのキーではもう入れなくなります。

起動前判定(bin/lint-env.sh)はこれらの行を renamed として検出して起動を止め、行ごとにやるべきことを示します。

判定が出力する表示意味 · やること
only the old name is set — rename it旧名だけがあります。併せて出力される sed の 1 行(バックアップを残す)が名称だけを変更し、値はそのまま維持します
both set with the same value新名が既に同じ値で存在します。旧行を削除します
both set and DIFFERENT両方あり値が異なります。新名が優先されます — どちらの値が正しいか確認した上で旧行を削除します
sudo grep -n '^CH_' /etc/kopens/plantpulse-ai.env # 남은 옛 줄

移した後 bin/restart.sh plantpulse-copilot-web で再作成します。

自動化の出力先 — メール · メッセンジャー · PDF​

自動化の結果をメール · メッセンジャーへ出力する経路は既定で閉じており、以下の値があってはじめて開きます。PDF は変換サービスに到達できるときだけ生成されます。

何をどこで設定するか空の場合
PDF 変換サービス(Gotenberg)環境変数 CO_GOTENBERG_URL — compose デフォルト値 http://plantpulse-gotenberg:3000(スタックと共に起動する変換コンテナ)値が空であるか、そのアドレスの変換コンテナが応答しない場合は PDF だけが無効になります。 レポートの PDF ダウンロードと自動化メールの PDF 添付ボタンが無効になり、画面がその理由を表示します。Excel · CSV はこの値とは無関係です
メール許可ドメイン管理コンソール › 通知チャネルの «メール許可ドメイン»(設定キー automation.mail.allowed-domains、カンマ区切り · 20 件まで)🔴 自動化メールが無効です。 社内ドメインを記載すると有効になります
メールサーバー管理コンソール › システム設定の smtp.host · smtp.port · smtp.username · smtp.password · smtp.starttls、送信者 navigator.report.email.fromメールが送信されません(実行履歴に「メールサーバーが設定されていません」)
メッセンジャーチャネル(Teams · Slack)管理コンソール › 通知チャネルで Webhook アドレスを登録 — 環境変数ではありません自動化の «送信» でメッセンジャーチャネルを選択できません
メール · メッセンジャー本文のリンク管理コンソール › システム設定の app.base.url(このインストールの外部アドレス)本文にリンクを含めません

CO_GOTENBERG_URL は http:// · https:// のアドレスである必要があります。それ以外の値の場合は警告を残して PDF を無効にします。画面の PDF ボタン · 添付チップは、アドレスが記載されているかではなく 変換器が現在応答しているか(/health、30 秒ごとに再確認)に従います — アドレスだけあってコンテナが無いインストールでは無効に見えます。変換器に到達できない場合、メールは PDF だけを除いて送信され (実行履歴に「添付できませんでした」)、レポートのダウンロードは「現在は PDF を生成できません。」と返します。変換器の状態は /actuator/health/deps の gotenberg に off · unreachable · up として表示され、 変換器が停止してもコパイロットの起動判定には含まれません。

1 日の送信上限はシステム設定の値です(再起動なしで変更されます)。一度も変更したことがなくても管理コンソール › システム設定にデフォルト値と共に表示され、そこで変更したりデフォルト値に戻したりできます。 自動化の周期 · トークン上限(agentdef.*)と 2 名承認ツール(access.two_person.tools)も同じ一覧にあります → コパイロット管理コンソール — システム設定

設定キーデフォルト値意味
automation.deliver.mail.daily-max61 つの自動化が 1 人に 1 日に送るメール数
automation.deliver.webhook.daily-max121 つの自動化が 1 チャネルに 1 日に送るメッセンジャー件数
automation.deliver.role.max-members50受信者をロールで選択した際に展開される人数

画面上での操作は コパイロット管理コンソール — 通知チャネル にあります。

コパイロットチャット — 思考モードと 3 つの上限​

対話型コパイロット(copilot-web)がゲートウェイを呼ぶ方式を決める 3 つの値です。3 つとも同じ 1 つの失敗を異なるつまみで扱います — モデルが答える前に «考え»、その思考も生成トークンを消費するということです。

変数デフォルト値意味
CO_LLM_THINKING_ENABLEDtrue (compose、2026.10 再リリース(2026-10-20) から。アプリ単体のデフォルトは空)思考モードのスイッチ → chat_template_kwargs.enable_thinking。空にすると送信しません(モデルのデフォルト値に従います — AURA-Lite のテンプレートデフォルト値は «オフ» です)
CO_LLM_MAX_COMPLETION_TOKENS4096 (自社スタック配備は 16384)呼び出し 1 回の生成トークン上限。思考と回答が共に収まるだけ大きくする必要があります。0 なら上限を送信しません
CO_TOOL_RESULT_MAX_CHARS24000ツール結果 1 件がモデルに載せられる最大文字数。超えると深い配列から削り、_truncated の印を残します。0 なら切り詰めません
思考を切ると速くなりますが «でっち上げます»

Qwen3.5 系で CO_LLM_THINKING_ENABLED=false としてオフにすると応答が数秒に短縮されますが、モデルがツールを呼ばずに存在しない資産・アラームをでっち上げます(2026-09-18 ステージング実測)。速度と品質を天秤にかける問題ではなく、回答が正しいか誤っているかの問題です。

オフにする選択肢は、思考なしでもツールを呼ぶモデルでのみ意味があります。

思考の深さ — 経路別デフォルト値​

2026.10 再リリース(2026-10-20) から、思考のオン · オフに加えてどれだけ考えるか(reasoning_effort)を選択します。env ではなくコパイロット 管理 › システム設定(/admin/config)のキーであり、保存すれば再起動なしで次の呼び出しから適用されます。

キー画面名
llm.reasoning.chatチャット思考深度のデフォルト値
llm.reasoning.automation自動化の思考深度
llm.reasoning.diagnosis異常診断の思考深度
llm.reasoning.proposal対応提案の思考深度
llm.reasoning.otherその他の生成の思考深度
  • 値は none(オフ) · low · medium · high、または空(«サーバーデフォルト値に従う»)。none は思考をオフにし、それ以外は思考をオンにしたままその深さで送信します。
  • 決定の順序はユーザーが問い合わせで選んだ値 → 上記の経路別キー → CO_LLM_THINKING_ENABLED です。
  • 問い合わせ画面の 思考深度 ボタンは、グローバル値または llm.reasoning.chat が定められているときのみ表示されます。
回答が «空のまま» 終わる場合は上限を確認してください

思考が上限内に終わらないと、生成が length で打ち切られ本文が 0 文字になります。ストリームは正常終了するため、画面上は「答えが出ない」としか見えず、ゲートウェイ障害のように受け取られます。

同じ質問をステージングで並べて計測した結果です。

設定結果
思考オン + 4096空の回答 — 思考が上限を使い切ります
思考オフ速いがツールを飛ばしてでっち上げます
思考オン + 16384ツールを呼び、正しい回答 (質問により 20 秒〜4 分)

上限を上げても終わらない場合は、プロンプトやツール結果のサイズ(CO_TOOL_RESULT_MAX_CHARS)を減らす方向を検討します。


文書インデックス(LightRAG)の時間予算​

デフォルト値のままが正常です。「この機器ではもっと必要だ/少なくてよい」を実測した上で変更するときだけ手を入れます。

変数デフォルト値意味
LIGHTRAG_LLM_TIMEOUT3600エンティティ抽出 LLM 呼び出しの制限(秒)。ワーカー制限はこの値の2 倍です
LIGHTRAG_LLM_MAX_TOKENS32768抽出呼び出し 1 回が生成できる最大トークン — 暴走の天井
LIGHTRAG_MAX_ASYNC4同時 LLM 呼び出し数。🔴 減らすとかえって遅くなります
Worker execution timeout でインデックスが失敗する場合

思考するモデルは呼び出し 1 回で多くのトークンを使います。以前のデフォルト値(240 秒、ワーカー 480 秒)では大きな PDF が インデックス途中で丸ごと失敗していました。このエラーが見られる場合は LIGHTRAG_LLM_TIMEOUT を上げつつ LIGHTRAG_LLM_MAX_TOKENS も併せて確認してください — 上限が無いと暴走 1 件が GPU スロットをその分占有します。


公開 API のマシン認証​

外部システムがコパイロットの公開 API(/api/v1)を呼ぶ際に使うキーです → API 連携ガイド

変数デフォルト値意味
CO_API_V1_KEY(空)ヘッダー X-API-Key: <value> で受け取るキー。2026.09 までの名称は CH_API_V1_KEY です — 移してください
空にするとこのキーでは «入れません» — 素通しではありません

空の場合、この環境変数キーは受け付けません。そのとき X-API-Key で入れるのは、コパイロット管理 コンソールの API キー画面(/admin/api-keys)で名前を付けて発行したキーだけであり、それも無ければセッションログインのみ受け付けます。 設定を忘れた配備が認証なしの公開 API にならないようにしたものです。いずれのキーも権限は公開 API にのみ 及び、管理画面(/admin/**)と API ドキュメントには及びません。

環境変数キー 1 つでは誰に渡したものか区別できず、漏洩すると利用先が一斉に遮断されます。外部システムごとに 個別に発行するには、コパイロット管理コンソールで発行する方を使ってください → コパイロット管理コンソール — API キー


管理コンソールと API キー​

変数意味
PI_ADMIN_USER · PI_ADMIN_PASSWORD管理コンソールのログイン。ID のデフォルトは admin、パスワードはインストール時に人が決めます
PI_ADMIN_SESSION_SECRET管理コンソールのセッション署名キー — インストーラが生成します
ADMIN_SESSION_MAX_AGEセッション有効時間(分)。デフォルト 480
PI_ADMIN_WEB_PORT管理コンソールの HTTP ポート。デフォルト 5959
PI_ADMIN_WEB_TLS_PORT管理コンソールの HTTPS ポート。デフォルト 5960 — プロキシが受けて同じコンソールへ渡します(証明書は :443 と同じ一式)
PI_NEO4J_USER · PI_NEO4J_PASSWORDグラフアカウント — Neo4j 2 インスタンス(LightRAG 知識グラフ plantpulse-neo4j · 工場グラフミラー plantpulse-digital-thread-neo4j)が同じアカウントを使います
PI_RAG_API_KEYRAG API 呼び出しキー
PI_INBOUND_API_KEYバックエンドサービス(RAG · 時系列インサイト · 文書理解 · ビジョン · デジタルスレッド)へ入ってくるリクエストのキー。空だと起動前判定がスタックを止めます(後述「バックエンドインバウンドキー」)

これらの値はファイルを書き換えるだけでは完了しません — Neo4j のようにサーバーアカウントが正本のものはサーバー側も 併せて変更する必要があります。bin/passwd.sh がその手順を踏んでくれます → パスワード · API キー変更。

管理コンソールのポートが 9080 から 5959 · 5960 へ移りました (2026.10)

2 つの入口が同じコンソールを呼び、両方とも開きます(平文を HTTPS へリダイレクトしません)。空にしておくと上記の デフォルト値になり、変更するとインストーラがファイアウォールをその値で開けます。変更後は bin/restart.sh plantpulse-admin-web plantpulse-proxy で 2 つのコンテナを再作成します。

保存資格情報の暗号化キー — PI_COPILOT_SECRET_KEY · PI_DT_SECRET_KEY​

画面で入力した資格情報を DB に AES-256-GCM で封じる鍵です。値は base64 で記述した 32 バイトであり、 初回インストール時にインストーラが生成します。

変数何を封じるか空の場合
PI_COPILOT_SECRET_KEYコパイロットが保存する資格情報 — 外部 MCP コネクタの認証値、LLM キー、SMTP パスワード、Slack Webhook、Web Push 秘密鍵🔴 コパイロットだけが起動を拒否し、記載すべき 1 行をログに出力します。他のスタックは起動します
PI_DT_SECRET_KEYデジタルスレッドのコネクタ登録簿のコネクタ資格情報コネクタ登録簿だけが config_error(503)です。グラフミラーは動作します
変更したり紛失すると保存済みの資格情報を復号できません
  • /etc/kopens/plantpulse-ai.env のバックアップにこの 2 つの値が併せて含まれている必要があります。 DB だけを復元して鍵が無いと コネクタ · 通知の資格情報を入れ直す必要があります。

  • 2026.09 以下から上げたホストにはこの行がありません。 インストーラは既存の env に行を追加せず、 起動前判定が «保存資格情報の暗号化キーが無い» と知らせます。手動で入れてください(値を画面に出力しない形式で)。

    echo "PI_COPILOT_SECRET_KEY=$(openssl rand -base64 32)" | sudo tee -a /etc/kopens/plantpulse-ai.env >/dev/null
    echo "PI_DT_SECRET_KEY=$(openssl rand -base64 32)" | sudo tee -a /etc/kopens/plantpulse-ai.env >/dev/null
  • bin/passwd.sh はこの 2 つのキーをローテーションしません。 交換は旧値を _PREVIOUS に置く手順でのみ行います → パスワード · API キー変更


デジタルスレッド​

plantpulse-digital-thread-api は 2026.10 からスタックに既定で含まれています(ホストにポートを開かず、 スタック内で 7140 として呼びます)。工場グラフミラーは専用 Neo4j(plantpulse-digital-thread-neo4j)に 置き、コネクタ登録簿は PG DB pi のスキーマ dt に置きます。プラットフォームイベントリーダーは有効な状態で出荷されます。

ホストで操作できるつまみです。デフォルト値のままが正常です。

変数デフォルト値意味
PI_DT_SECRET_KEYインストーラが生成コネクタ資格情報の暗号化キー(上記)
DT_INSIGHT_EVENTS_PUSHfalseデジタルスレッドが読んだプラットフォームイベントを時系列インサイトへ送るかどうか
TS_EVENTS_SOURCEdirect時系列インサイトがプラットフォームイベントをどこから受け取るか — direct(直接読む) · shadow(直接読み、送られたものと突き合わせる) · digital_thread(送られたものだけを使う — 上記スイッチが有効である必要あり)
DT_PLATFORM_READ · CO_PLATFORM_READ · TS_PLATFORM_READdbプラットフォーム台帳を読む経路 — db(プラットフォームのテーブルを直接) · shadow(両方読んで db で応答し差分を集計) · api(プラットフォーム V5 REST、既存の PP_API_URL · PP_API_TOKEN を使用)

コネクタの定期同期と鮮度 (2026.10 再リリース 3)​

有効なコネクタを定期的に再同期します。同期は消失した接続を削除せず «クローズ»(終了時刻を記録)するため、 過去時点で問い合わせる履歴が正しく残ります。デフォルト値のままが正常です。

変数デフォルト値意味
DT_CONNECTOR_SYNC_ENABLEDtrue定期同期。false なら停止し、管理コンソールの «今すぐ同期» だけが残ります
DT_CONNECTOR_SYNC_INTERVAL_S0同期間隔(秒)。0 ならファミリ別 — そのファミリの鮮度上限の半分、最小 300 秒
DT_CONNECTOR_MAX_AGE(空)コネクタデータの鮮度上限。가족=기간 のリスト(例: mes=2h,erp=1d、単位 s · m · h · d)。空ならファミリ別デフォルト — ehs 1h、mes · sched · wms 2h、cmms 4h、lims 12h、その他 1d。上限より古いコネクタがあると、回復 · 影響の数値を出しません
DT_LINK_HISTORY_DAYS(空 — 180)クローズした接続を保持する期間(日、1〜3650)

現在動作している値と同期状態はデジタルスレッドの /api/v1/config(dt_connector_max_age_effective など)と /health の connector_sync に表示されます。connector_sync は情報にすぎず、サービスを degraded にはしません。


バックエンドインバウンドキー — 空だと起動しません​

RAG(rag-api) · 時系列インサイト API · 文書理解 · ビジョン · デジタルスレッドは同じ 1 つのキー(PI_INBOUND_API_KEY)で 入ってくるリクエストを検証します。compose がこの値をサービスごとに自分の名前(RAG_INBOUND_API_KEY · TS_INBOUND_API_KEY · INBOUND_API_KEY …)で振り分け、コパイロットと管理コンソールのバックエンドも同じ値でこれらのサービスを呼びます。

キーが空の場合、«たまたま» 認証なしで開いたまま起動する経路はありません。

どこでキーが空の場合
起動前判定(bin/lint-env.sh)[fail] PI_INBOUND_API_KEY is empty and PI_INBOUND_AUTH_DISABLED is not true としてコンテナを 1 つも作らずに停止します
各サービス自分のキーが空なら起動を拒否し、FATAL: … is empty — refusing to start … のような 1 行を残します

認証なしで起動する経路は明示的なスイッチ 1 つだけであり、開発 · 試験用です。

変数デフォルト値意味
PI_INBOUND_AUTH_DISABLEDfalsetrue でありキーが空のときだけ 5 つのサービスが認証なしで起動します。compose がサービスごとに RAG_INBOUND_AUTH_DISABLED · TS_INBOUND_AUTH_DISABLED · DT_INBOUND_AUTH_DISABLED · INBOUND_AUTH_DISABLED(文書理解 · ビジョン)として渡します

起動前判定がこのスイッチについて示す内容です。

出力意味
[fail] PI_INBOUND_AUTH_DISABLED=<value> — write true or falsetrue · false 以外の値
[note] PI_INBOUND_AUTH_DISABLED=true is ignored — PI_INBOUND_API_KEY is set and the key winsキーがあればキーが優先されます — 認証は有効なままです

認証なしで起動したサービスは /health にその事実を載せます(文書理解 inbound_auth: "disabled"、デジタルスレッド auth.inbound=disabled など)。本番インストールではキーを入れるのが答えです。

認証なしで開くのはヘルスパス /ping · /health の 2 つだけです(厳密にそのパスのみ)。メトリクス /metrics もキーの後ろに あります → ログおよびモニタリング

プレースホルダはこの検査を通過します

CHANGE_ME_… は空の値ではないため compose もサービスもブロックせず、その文字列はすべてのインストールで同一です。インストーラが初回 インストール時に新しい値へ変更しますが、手作業で作成した env であれば bin/passwd.sh --generate PI_INBOUND_API_KEY で新しい値を 入れてください → パスワード · API キー変更


文書 · 写真ツールに社内 URL を受け取らせる​

文書理解 · ビジョンツールはファイルではなく URL を受け取って自ら取得します。そのアドレスがループバック · プライベートネットワーク · リンクローカルに 解決される場合は拒否します → MCP ツールマップ

社内ファイルサーバーのように意図的に開放する先は許可リストに記載します。compose がこの値を文書理解とビジョンの2 サービスに まとめて渡します。

変数デフォルト値意味
FETCH_ALLOWED_HOSTS(空)内部アドレスでも取得するホスト。カンマで複数指定。URL のホスト名と完全に一致する必要があります(大文字小文字は無視) — files.example.local または files.example.local:8080 のようにポートまで記載するとそのポートのみ、IP で呼ぶサーバーなら IP をそのまま記載します
echo 'FETCH_ALLOWED_HOSTS=files.example.local,10.0.0.15' | sudo tee -a /etc/kopens/plantpulse-ai.env >/dev/null
cd /opt/kopens/plantpulse-ai-docker
bin/restart.sh plantpulse-document-understanding-api plantpulse-vision-api
  • ワイルドカード · レンジ(CIDR)はありません。サブドメインも 1 つずつ記載します。
  • 許可したホストでも http · https のみ受け付け、サイズ上限(文書 200 MiB · 写真 32 MiB)はそのままです。リダイレクトは 1 回 たどるごとに再検査するため、許可したホストが許可していない内部アドレスへ転送すればそこで拒否されます。
  • この行は compose デフォルト値(空の値)を上書きするものなので、起動前判定が override 通知を表示します — 正常です。

RAG オブジェクトストレージバケット​

rag-api は手動でアップロードした文書原本 · 図面構造とプレビュー · 映像再生用ファイルと書き起こしを、プラットフォーム RustFS の 1 つのバケットに置きます。

変数デフォルト値意味
RAG_S3_BUCKETplantpulse-ragそのバケット名。同じプラットフォームを AI インストール 2 つで共用するときだけ、2 つ目のインストールに別の名前を与えます

→ データベース


図面収集 — 既定で無効​

図面(DXF · テキストレイヤーのあるベクタ PDF)を表題欄 · 寸法 · 公差 · BOM 行として読み取りインデックスする機能です。無効の状態で 出荷され、無効の場合は rag-api の図面 API と関連テーブルがそもそも作成されません(この機能が無かった頃と同じです)。

変数デフォルト値意味
DRAWING_INGEST_ENABLEDfalsetrue なら rag-api が図面収集を有効にします。.dxf は常に図面として、PDF はアップロード時に種別を «図面»(document_kind=drawing)として指定した場合のみ図面として読みます。true · false 以外の値は警告を残して無効として扱います
echo 'DRAWING_INGEST_ENABLED=true' | sudo tee -a /etc/kopens/plantpulse-ai.env >/dev/null
cd /opt/kopens/plantpulse-ai-docker
bin/restart.sh plantpulse-rag-api
  • DWG は受け付けません — DXF か PDF にエクスポートしてアップロードします。1 ファイルの上限は 50 MB です。
  • プラットフォーム資産文書も図面として取り込まれます(2026.10 再リリース 3)。プラットフォーム資産に紐づけた文書を取り込む同期が .dxf ファイルと «文書種別» が DRAWING の PDF を図面経路に投入します。こうして取り込まれた図面はプラットフォームが正本のため、管理 コンソールで上書きアップロードや削除を行うと 409(「drawing is platform-managed …」)になります — 修正や削除はプラットフォーム側で 行い、検索からのみ除外する場合は管理コンソールの文書テーブルで «コーパスから除外» します(2026.10 再リリース 4 からコンソールのボタンが台帳図面に対して有効になります。 直接アップロードした図面は依然として除外できません)。無効の場合、.dxf はカウントのみ行い(drawing_disabled)投入せず、PDF は 通常文書として取り込まれます。
  • 図面の版(リビジョン)が今作業すべき版かはデジタルスレッドに問い合わせます(PLM の出図版 · 未完了の設計変更)。表題欄に品番 · 版が無いか、デジタルスレッドが応答できない場合、版の状態は unknown となり «最新» としては表示されません。
  • 有効にすると rag-api が起動時に図面用テーブル(rag_drawing_*)を rag_ingest DB に作成します — 手動で行う移行はありません。

映像 · 音声収集 — 既定で無効、1 行で有効化​

映像 · 音声を書き起こし(音声 → タイムスタンプ付きテキスト)してインデックスする機能と、コパイロットチャット入力の音声で問い合わせは同じ書き起こし サービング(plantpulse-asr)を使います。無効の状態で出荷され、有効にするのはホスト env の 1 行 PI_MEDIA_ENABLED=true です (テンプレートにはコメント #PI_MEDIA_ENABLED=true として入っています)。使い方は 動画 · 音声検索 にあります。

この 1 行が併せて決めるもの内容
起動するサービスplantpulse-asr-audio — オーディオライブラリをボリューム pi-asr-audio へ移して終了するワンショットサービス · plantpulse-asr — vLLM Whisper large-v3-turbo、サービング名 aura-asr、内部 8000(ホストには公開しません)。運用スクリプトが compose プロファイル media を付けて起動します
コンテナの値rag-api MEDIA_INGEST_ENABLED=true · 文書理解 ASR_URL=http://plantpulse-asr:8000(インストール分の compose/media/true.env)
モデルbin/fetch-models.sh が書き起こしモデル Aura-ASR-Turbo(ダウンロード約 1.5 GB、展開後約 1.6 GB)を取得します。無効のインストールでは取得しません
GPUASR_GPU_UTIL は無効のときも合計に含まれており、有効にしても上限を超えません
cd /opt/kopens/plantpulse-ai-docker
sudo cp -p /etc/kopens/plantpulse-ai.env /etc/kopens/plantpulse-ai.env.bak-media-$(date +%Y%m%d-%H%M)
sudo sed -i '/^#\?PI_MEDIA_ENABLED=/d' /etc/kopens/plantpulse-ai.env && echo PI_MEDIA_ENABLED=true | sudo tee -a /etc/kopens/plantpulse-ai.env >/dev/null
sudo bash bin/fetch-models.sh # Aura-ASR-Turbo — 이미 있으면 건너뜁니다
sudo bash bin/lint-env.sh && bin/restart.sh # rag-api · 문서 이해가 새 값으로 다시 만들어집니다
bin/status.sh # 켠 설치는 23/23 — plantpulse-asr-audio 는 «Exited (0)» 이 정상입니다

有効になっているかは 3 か所で確認します。

# rag-api — "media_ingest_enabled":true
curl -s -H "X-API-Key: <PI_INBOUND_API_KEY>" http://127.0.0.1:7115/api/v1/config | grep -o '"media_ingest_enabled":[a-z]*'
# 문서 이해 — components.asr.status 가 "up"
docker exec plantpulse-document-understanding-api python3 -c \
"import urllib.request;print(urllib.request.urlopen('http://localhost:7120/health').read().decode())"

bin/status.sh は «終了コード 0» で終わったワンショットサービス(plantpulse-asr-audio)を正常としてカウントします。0 でなければ plantpulse-asr も起動しません — そのログから確認します。

  • 無効化 — その行を削除するか PI_MEDIA_ENABLED=false にして bin/restart.sh した後、残った 2 つのコンテナを docker rm -f plantpulse-asr plantpulse-asr-audio で削除します(プロファイルが無効になると運用スクリプトはその 2 つを扱わなくなります)。
  • 閉域網 — イメージはバンドルに常に含まれています。モデルだけを別途持ち込みます → 閉域網インストール
  • true · false 以外の値の場合、起動前判定が [fail] PI_MEDIA_ENABLED=<value> — true 또는 false 만 받는다 で停止します。
旧名 MEDIA_INGEST_ENABLED — 今回のリリース中のみ別名です

2026.10 より前の版でホスト env に MEDIA_INGEST_ENABLED · ASR_URL を手動で記載していた場合、アップグレードは停止せずその値で 動作し続けます(PI_MEDIA_ENABLED の行が無ければ旧名をスイッチとして読みます)。運用スクリプトが最初に動作する際に旧名を PI_MEDIA_ENABLED へ移し、スイッチが与える値と同じ ASR_URL の行は削除します。

起動前判定意味
alias [warn]旧名だけがあります — 起動はできます。併せて出力される sed の 1 行で移します。2026.11 で別名を廃止すると、移していない行は renamed [fail] になります
media-same [warn]ホスト env の ASR_URL がスイッチの与える値と同じです — 削除して構いません
media [fail]ホスト env の ASR_URL がスイッチの与える値と異なります — 何を意図したのかを決めた上で削除します。有効にするのは PI_MEDIA_ENABLED=true の 1 行です
2 つの名前が異なる値[fail] — どちらを意図したのかを人が決めます

env ファイルに書き込めないアカウントで動作している場合は自動で移せず、[paths] [warn] cannot write … と人が実行する sudo sh -c '…' コマンドを出力します。コンテナ(rag-api)内で読む名前は依然として MEDIA_INGEST_ENABLED です — それはスイッチが決めるため ホスト env には記載しません。

つまみは compose デフォルト値です。デフォルト値のままにしておくのが正常です。

変数サービスデフォルト値意味
PI_MEDIA_ENABLED(ホストスイッチ)false上記 — 映像 · 音声収集と音声での問い合わせを併せて有効にします
MEDIA_MAX_FILE_MBrag-api2048映像 1 ファイルの上限(MB)。文書の上限とは別です
MEDIA_MAX_DURATION_MINrag-api120映像 1 本の長さ上限(分)
MEDIA_TEXT_TRACKSrag-apisubtitles映像内の文字 — off · subtitles(埋め込み字幕トラック · 外部字幕 srt/vtt) · all(+ 画面に焼き込まれた字幕 · 画面上の文字を LLM が読む)
MEDIA_SPAN_TARGET_SECrag-api0インデックス区間の長さ(秒、20〜300)。0 なら書き起こし断片 1 つ(約 120 秒)が 1 区間。範囲外の値は警告を残して 0 として読みます。変更すると再インデックスしたものから適用されます
MEDIA_PROCESSING_WINDOWrag-api(空 — 20:00-06:00)映像処理を開始してよい時間帯(PP_TZ 基準 HH:MM-HH:MM、開始が終了より遅い場合は深夜をまたぎます)。常に処理するには always。空または形式が誤っている場合は rag-api のデフォルト 20:00-06:00 です。ウィンドウは処理の開始にのみ適用されます — 開始した処理はウィンドウが閉じても最後まで実行されます。処理はチャットと同じ LLM を分け合います
ASR_URL文書理解(スイッチが決定)書き起こしサービングのアドレス。有効なら http://plantpulse-asr:8000、無効なら空の値(書き起こしの入口が 503)。🔴 ホスト env に記載しないでください — 上表の media · media-same
ASR_NAME · ASR_BACKEND文書理解 · asraura-asr · vllmサービング名 · エンジン(vllm のみ受け付けます)
ASR_MODEL_PATHasr/opt/kopens/models/Aura-ASR-Turbo書き起こしモデルの配置
OCR_URL · OCR_BACKEND文書理解http://plantpulse-llm:8000 · vlm映像内の文字を読むサービング LLM。書き起こしが有効なときのみ使います

ビジョンの文字読み取りエンジン​

変数デフォルト値意味
VISION_OCR_ENGINE(空 — ビジョンのデフォルト vlm)vision_ocr のエンジン。vlm はサービング中の LLM が読み、3 回中 2 回文字列が一致してはじめて回答します(韓国語を読めます)。docling は文書理解の OCR に任せます(韓国語は読めません)

関連文書​