環境変数設定
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 を編集しないでください。 誰も読みません — スタックは変わりません。
下表の *_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 など) |
redundant | compose デフォルト値をそのまま繰り返した行 |
derived | PP_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_LANG | ko | インストールの既定言語 — メール · 予約実行 · 保存文のようにリクエストのない場面の言語です。自動化の要約 · 回次の理由 · PDF の節名 · Excel のシート名のように、サーバーが書く自動化の文章もこの言語です → 自動化 — 報告書のタイトル。コパイロット画面は自分で選んだ言語 → ブラウザの言語が優先され、どちらも韓国語 · 英語でない場合にのみこの値です → 画面の言語。管理コンソールはホームカード名のみこの値に従い、他の画面はログイン画面の言語切替(English · 한국어)が決めます · 値は ko · en の 2 つだけです。空またはそれ以外の値ではサービスが起動しません(インストールテンプレートの既定は ko) |
PP_TZ | Asia/Seoul | インストール 1 つのタイムゾーン — 全サービスとホスト OS がこの 1 つを使います。インストーラが選択します(インストール時に与えた値 → 既に env にあった値 → ホストのタイムゾーン(UTC でなければ) → Asia/Seoul の順) |
LIGHTRAG_SUMMARY_LANGUAGE | Korean | RAG が知識を要約する言語 |
要約言語を画面言語と別に持つ理由は、画面は英語で使っていてもコーパス(現場 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 へ移されます。
インストーラと 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 で購読します(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_NAME | aura-lite | 生成モデルを呼ぶ名前。ビジョン兼用です |
EMB_NAME | aura-embedding-4b | 埋め込みモデル名 |
RERANK_NAME | aura-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-prefill | vLLM 起動引数。重み(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_PASSWORD | admin · admin123! | LiteLLM 管理画面(:4000/ui)のログイン。パスワードは必須です → 初期パスワード変更 |
PI_LITELLM_PORT | 4000 | LiteLLM をホスト側に公開するポート。このホストで別の 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_UTIL | 0.4 · 0.10 · 0.08 / 0.53 · 0.13 · 0.10 | vLLM 3 本の GPU メモリ配分 |
TS_GPU_UTIL | 0.13 / 0.15 | 時系列推論サーバーの配分 |
ASR_GPU_UTIL | 0.03 / 0.04 | 音声書き起こし vLLM の配分 — 映像 · 音声を有効にしたインストール(PI_MEDIA_ENABLED=true)でのみ起動しますが、無効でも合計に含めます(有効にする日に上限を超えないように) |
PP_GPU_BUDGET_CEILING | 0.75 / 0.95 | 5 つの配分の合計上限。超えると起動前に停止します |
GB10 は統合メモリのため上限が 0.75(合計 0.74)、専用 VRAM 機器(AWS g7e)は 0.95(合計 0.95)です。
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_* がすべてそうです。
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-max | 6 | 1 つの自動化が 1 人に 1 日に送るメール数 |
automation.deliver.webhook.daily-max | 12 | 1 つの自動化が 1 チャネルに 1 日に送るメッセンジャー件数 |
automation.deliver.role.max-members | 50 | 受信者をロールで選択した際に展開される人数 |
画面上での操作は コパイロット管理コンソール — 通知チャネル にあります。
コパイロットチャット — 思考モードと 3 つの上限
対話型コパイロット(copilot-web)がゲートウェイを呼ぶ方式を決める 3 つの値です。3 つとも同じ 1 つの失敗を異なるつまみで扱います — モデルが答える前に «考え»、その思考も生成トークンを消費するということです。
| 変数 | デフォルト値 | 意味 |
|---|---|---|
CO_LLM_THINKING_ENABLED | true (compose、2026.10 再リリース(2026-10-20) から。アプリ単体のデフォルトは空) | 思考モードのスイッチ → chat_template_kwargs.enable_thinking。空にすると送信しません(モデルのデフォルト値に従います — AURA-Lite のテンプレートデフォルト値は «オフ» です) |
CO_LLM_MAX_COMPLETION_TOKENS | 4096 (自社スタック配備は 16384) | 呼び出し 1 回の生成トークン上限。思考と回答が共に収まるだけ大きくする必要があります。0 なら上限を送信しません |
CO_TOOL_RESULT_MAX_CHARS | 24000 | ツール結果 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_TIMEOUT | 3600 | エンティティ抽出 LLM 呼び出しの制限(秒)。ワーカー制限はこの値の2 倍です |
LIGHTRAG_LLM_MAX_TOKENS | 32768 | 抽出呼び出し 1 回が生成できる最大トークン — 暴走の天井 |
LIGHTRAG_MAX_ASYNC | 4 | 同時 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_KEY | RAG API 呼び出しキー |
PI_INBOUND_API_KEY | バックエンドサービス(RAG · 時系列インサイト · 文書理解 · ビジョン · デジタルスレッド)へ入ってくるリクエストのキー。空だと起動前判定がスタックを止めます(後述「バックエンドインバウンドキー」) |
これらの値はファイルを書き換えるだけでは完了しません — Neo4j のようにサーバーアカウントが正本のものはサーバー側も
併せて変更する必要があります。bin/passwd.sh がその手順を踏んでくれます →
パスワード · API キー変更。
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/nullecho "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_PUSH | false | デジタルスレッドが読んだプラットフォームイベントを時系列インサイトへ送るかどうか |
TS_EVENTS_SOURCE | direct | 時系列インサイトがプラットフォームイベントをどこから受け取るか — direct(直接読む) · shadow(直接読み、送られたものと突き合わせる) · digital_thread(送られたものだけを使う — 上記スイッチが有効である必要あり) |
DT_PLATFORM_READ · CO_PLATFORM_READ · TS_PLATFORM_READ | db | プラットフォーム台帳を読む経路 — db(プラットフォームのテーブルを直接) · shadow(両方読んで db で応答し差分を集計) · api(プラットフォーム V5 REST、既存の PP_API_URL · PP_API_TOKEN を使用) |
コネクタの定期同期と鮮度 (2026.10 再リリース 3)
有効なコネクタを定期的に再同期します。同期は消失した接続を削除せず «クローズ»(終了時刻を記録)するため、 過去時点で問い合わせる履歴が正しく残ります。デフォルト値のままが正常です。
| 変数 | デフォルト値 | 意味 |
|---|---|---|
DT_CONNECTOR_SYNC_ENABLED | true | 定期同期。false なら停止し、管理コンソールの «今すぐ同期» だけが残ります |
DT_CONNECTOR_SYNC_INTERVAL_S | 0 | 同期間隔(秒)。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_DISABLED | false | true でありキーが空のときだけ 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 false | true · 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_BUCKET | plantpulse-rag | そのバケット名。同じプラットフォームを AI インストール 2 つで共用するときだけ、2 つ目のインストールに別の名前を与えます |
→ データベース
図面収集 — 既定で無効
図面(DXF · テキストレイヤーのあるベクタ PDF)を表題欄 · 寸法 · 公差 · BOM 行として読み取りインデックスする機能です。無効の状態で 出荷され、無効の場合は rag-api の図面 API と関連テーブルがそもそも作成されません(この機能が無かった頃と同じです)。
| 変数 | デフォルト値 | 意味 |
|---|---|---|
DRAWING_INGEST_ENABLED | false | true なら 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_ingestDB に作成します — 手動で行う移行はありません。
映像 · 音声収集 — 既定で無効、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)を取得します。無効のインストールでは取得しません |
| GPU | ASR_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 만 받는다で停止します。
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_MB | rag-api | 2048 | 映像 1 ファイルの上限(MB)。文書の上限とは別です |
MEDIA_MAX_DURATION_MIN | rag-api | 120 | 映像 1 本の長さ上限(分) |
MEDIA_TEXT_TRACKS | rag-api | subtitles | 映像内の文字 — off · subtitles(埋め込み字幕トラック · 外部字幕 srt/vtt) · all(+ 画面に焼き込まれた字幕 · 画面上の文字を LLM が読む) |
MEDIA_SPAN_TARGET_SEC | rag-api | 0 | インデックス区間の長さ(秒、20〜300)。0 なら書き起こし断片 1 つ(約 120 秒)が 1 区間。範囲外の値は警告を残して 0 として読みます。変更すると再インデックスしたものから適用されます |
MEDIA_PROCESSING_WINDOW | rag-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 | 文書理解 · asr | aura-asr · vllm | サービング名 · エンジン(vllm のみ受け付けます) |
ASR_MODEL_PATH | asr | /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 に任せます(韓国語は読めません) |
関連文書
- インストール概要 — どこにインストールされ、何が起動するか
- サービスポートマップ
- サービス運用