-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
212 lines (185 loc) · 13.2 KB
/
Copy path.env.example
File metadata and controls
212 lines (185 loc) · 13.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
# Chiezo の環境設定の例。使うときは `cp .env.example .env` して必要な行のコメントを外す。
# .env はコミットしない(.gitignore 済み)。
#
# 中身は 3 つに分かれる。1 は本体、2 と 3 は足すかどうかを選ぶ機能。
#
# 1. Chiezo 本体(検索 API・MCP) —— 必須の設定は 1 つも無い
# 2. プラグイン(別リポジトリのソース)—— 差し込むときだけ
# 3. ローカル LLM(「答える」層) —— 既定では丸ごと無効
# =============================================================================
# 1. Chiezo 本体(検索 API・MCP)
# =============================================================================
#
# このファイルを 1 行も書かなくても Chiezo は動く。データの置き場・書き込み先・
# 待ち受けポートは docker-compose.yml に直接書いてあり、.env で与えるものは無い。
# 以下はどれも既定があり、変えたいときだけ書く。
#
# 使うイメージ。どのコミットが動いているかを固定したいときにタグを打ち替える:
#CHIEZO_APP_IMAGE=ghcr.io/rtcode337/chiezo-app:latest
#CHIEZO_INGEST_IMAGE=ghcr.io/rtcode337/chiezo-ingest:latest
# web 検索の SearXNG(設定を焼き込んだ自前のイメージ)
#CHIEZO_SEARXNG_IMAGE=ghcr.io/rtcode337/chiezo-searxng:latest
# --- 絵と音の生成(MCP の image_generate / audio_generate)---
# 置き場・掃除・タイムアウトは絵と音で共通(ジョブの表も同じ)。
# 置き場は既定で CHIEZO_STATE_DIR の下。変えたいときだけ書く
#CHIEZO_MEDIA_DIR=
#CHIEZO_MEDIA_KEEP_DAYS=14
# 自分の GPU で回すなら docker-compose.comfyui.yml を重ねる(--profile comfyui)。
# GPU が別マシンなら、そちらの ComfyUI の URL を書く
# (このリポジトリの compose で立てたなら 7014。素の ComfyUI を自分で動かしたなら既定の 8188)
#CHIEZO_IMAGE_URL=http://192.168.1.x:7014
# 1 つ作るのを待つ上限(秒)。絵と音で共通
# AI に渡したものと返ってきたものを控える日数(0 で控えない)。
# 相手の生の出力(CLI の stdout/stderr)も残すので、シェルを渡している
# 相手が何をしたかを後から読める。
#CHIEZO_AI_TRANSCRIPT_DAYS=14
#CHIEZO_IMAGE_TIMEOUT=300
#CHIEZO_IMAGE_IMAGE=yanwk/comfyui-boot:cu126-slim
# data/ の変化(ブルーグリーン切り替え・.db の差し替え)を拾う間隔。0 以下で無効になり、
# 反映は再起動時だけになる。低速なディスクで走査の負荷が気になるときに伸ばす。
#CHIEZO_RESCAN_INTERVAL=5 # 秒
# 管理画面に出すソース一覧(GET /sources)のキャッシュ。プラグインは実行時に足せるので
# 永久には持たない。0 以下で取り直さない。
#CHIEZO_CATALOG_TTL=300 # 秒
# 別コンテナのソースプラグイン(サイドカー方式)。URL をカンマ区切りで並べる。
# 立てたプラグインの /sources を引いて、取り込めるソースに加える(詳細は
# docs/adding-a-source.md のケース 3a)。**プラグイン側の compose に定義がある場合は
# そちらが設定するので、ここに書く必要はない。**
#CHIEZO_PLUGIN_SOURCES=http://my-plugin:8080
# 「集める」層が 1 回で焼ける素材の大きさ(バイト)。既定は 192 MB。
# 地図辞典から国ぶんの名簿を作るときだけ要る —— 住所・電話・サイトまで運ぶ 1 件は
# 474 バイト(実測)あり、60 万件なら 280 MB を超えて「素材が大きすぎます」で断られる。
# 素材は 1 本の文字列で組むので、上げたぶんはそのままメモリに載る。
#CHIEZO_COLLECT_MAX_MATERIAL_BYTES=402653184 # 384 MB
# /mcp の Host 検証。既定は無効(LAN の別マシンから繋げるようにするため)。絞るなら
# 許可する Host をカンマ区切りで書く。末尾 `:*` でポート任意。
#CHIEZO_MCP_ALLOWED_HOSTS=<LAN の IP>:7010,localhost:*
# =============================================================================
# 2. プラグイン(このリポジトリに入れないソースを差し込む)
# =============================================================================
#
# 公開できないプライベートな情報などは、別リポジトリのモジュールとして書き、コードを
# 読み取り専用でマウントして足せる(Chiezo 側にはコードもデータも入らない)。
# プラグイン側の compose を重ねる指定と、その置き場をここに書く。
# 手順は docs/operations.md「ソースの追加・削除」が正。
#
#COMPOSE_FILE=docker-compose.yml:../my-plugin/docker-compose.plugin.yml
#CHIEZO_PLUGIN_DIR=../my-plugin
#
# `.db` を別マシンで焼いて data/ に置くだけなら、この節も含めて設定は要らない
# (配信側はソース種別を知らないため)。
# =============================================================================
# 3. ローカル LLM(「答える」層。既定では無効)
# =============================================================================
#
# ここから下は「Chiezo を引ける AI と話す」ための設定で、検索 API・MCP としての
# Chiezo には影響しない。
# ---- 推論サーバの指定 --------------------------------------------------------
#
# 下の CHIEZO_LLM_URL を設定して初めて /v1/ask・/ai/chat が有効になる。
# 推論サーバと検索エンジンのコンテナごと起動するなら、上書きを重ねて profile を付ける:
#
# docker compose -f docker-compose.yml -f docker-compose.llm.yml --profile llm up -d
#
# 毎回 -f を並べるのが面倒なら COMPOSE_FILE に並べておける(下の 2 節目を参照)。
#
# 配信側 chiezo-app は数百 MB で動く前提なので、推論は必ず別プロセス(別コンテナ、
# あるいは LAN 上の別マシン)に置くこと。
# 同梱の llama.cpp(compose の chiezo-llm)を使う場合は何も書かなくてよい。
# コンテナ名で辿り着けるので URL は決め打ちが効く(app/providers.py)。
# 立ち上げたら管理画面(/admin)の「話す相手」で on にする。
#
# 推論サーバを別マシンで動かしている場合だけ、その URL をここに書く
# (IP は環境ごとに違うので決め打ちにできない。これが唯一の逃げ道):
#CHIEZO_LLM_URL=http://<推論サーバのIP>:11434/v1 # Ollama を別マシンで動かしている等
# 認証を掛けているなら API キーも要るが、それは管理画面から入れる
# 使うモデル(chiezo-llm 起動時に Hugging Face から取得し ./models にキャッシュする)。
# Q4_K_M で約 2.5GB・メモリ 4GB 見当。CPU だけなら 4B 級までが実用の目安。
#CHIEZO_LLM_HF_REPO=ggml-org/gemma-3-4b-it-GGUF:Q4_K_M
#CHIEZO_LLM_CTX_SIZE=8192
# 回答パイプラインの調整(すべて任意):
#CHIEZO_ANSWER_TIMEOUT=120 # 推論の待ち時間(秒)。CPU 推論は数十秒級になる
#CHIEZO_ANSWER_DOCS=4 # 根拠として本文を取ってくる文書数
#CHIEZO_ANSWER_MAX_CHARS=6000 # 抜粋の合計文字数(モデルの窓を潰さないための上限)
# ---- 話す相手を増やす -------------------------------------------------------
#
# Gemini・OpenRouter・Claude Code・Codex CLI は管理画面(/admin)から追加する。
# 相手の URL は 1 つに決まるので app/providers.py に決め打ちしてあり、
# ここ(.env)に書くことは無い。入れるのは API キーと on/off だけで、
# 保存先は /state(compose がマウント済み)。
# どのモデルを使うかは会話のたびに /ai/chat のセレクトで選べる。
#
# 上の CHIEZO_LLM_URL だけは例外で、環境変数でしか指せない相手。
# LAN の別マシンで動かしている OpenAI 互換サーバは IP が環境ごとに違うため。
#CHIEZO_LLM_LABEL=推論サーバ # 相手を選ぶセレクトに出す名前
# ---- CLI ブリッジ(Claude Code / Codex CLI)------------------------------------
#
# この 2 つは HTTP ではなく CLI なので、OpenAI 互換に見せる小さなコンテナを挟む。
# **docker-compose.yml の chiezo-bridge-* のコメントを外して `docker compose up -d`**
# すれば立つ(profile も追加の -f も要らない)。立てば管理画面で on にできるようになる。
#
# ブリッジは Chiezo の MCP(/mcp)を CLI に繋ぐので、道具は CLI 自身が引く。
# 認証情報は管理画面(/admin の「話す相手」)から登録する。 ブリッジが設定 DB(/state)を
# 読み取り専用でマウントして読むので、ここに書く必要は無い。
# 下の 2 つは設定 DB をマウントできない環境向けの逃げ道(DB に無ければこちらへ落ちる)。
#CLAUDE_CODE_OAUTH_TOKEN= # 手元で `claude setup-token`
#CODEX_AUTH_JSON= # 手元で `codex login --device-auth` → ~/.codex/auth.json の中身
# CLI は道具を何度も引くので、推論サーバより長い待ち時間を見込む(秒)。
# chiezo-app 側の待ち時間(CHIEZO_ANSWER_TIMEOUT、既定 900)より短くすること
#CHIEZO_BRIDGE_TIMEOUT=840
# ---- GPU で動かす場合(NVIDIA)------------------------------------------------
#
# 上書きファイルを重ねて起動する(ホストに nvidia-container-toolkit が要る):
#
# docker compose -f docker-compose.yml -f docker-compose.llm.yml \
# -f docker-compose.llm.cuda.yml --profile llm up -d
#
# 既定は Qwen3-8B Q4_K_M(約 5GB)・コンテキスト 16k・全層 GPU・思考オフ。
# VRAM 12GB 級ならそのままでよい。変えたいときだけ次を書く:
#CHIEZO_LLM_HF_REPO=Qwen/Qwen3-8B-GGUF:Q4_K_M
#CHIEZO_LLM_CTX_SIZE=16384 # KV キャッシュとして VRAM を食う(16k で約 2.5GB 節約)
#CHIEZO_LLM_GPU_LAYERS=999 # 999 = 全層。auto にすると載る分だけになる
#CHIEZO_LLM_PARALLEL=1 # 同時に処理する会話の数。増やすとホスト側メモリも増える
#CHIEZO_LLM_CACHE_RAM=512 # ホスト側プロンプトキャッシュの上限(MiB)。既定の 8192 は大きい
#CHIEZO_LLM_THINK_BUDGET=0 # 0 = 思考させない。-1 で無制限(品質↑・待ち時間↑)
#CHIEZO_LLM_MEM_LIMIT=4g # 推論コンテナのホスト側メモリ上限
#
# 画面も同じ GPU が描いているなら、VRAM は 2GB 以上余らせること。
# 空きが尽きると Windows が GPU メモリをシステムメモリへ退避し、ホストごと
# ページングで固まる(実測: ctx 32768 で空き 0.9GB → フリーズ)。
# ---- 会話の既定(/localllm/chat の画面と /v1/ask・/v1/chat) ------------------
#
# 素の既定は rag + grounded=1(小さな機械でも安全に動く側)。GPU で 8B 級を動かしていて
# 「Chiezo の知識を持った相手と普通に話す」使い方をしたいなら、次の 2 つを入れる。
#CHIEZO_ASK_DEFAULT_MODE=agent # rag / agent
#CHIEZO_ASK_DEFAULT_GROUNDED=0 # 1 = Chiezo で取れたことだけ / 0 = 知識で補ってよい
# ---- web 検索(既定では無効) -------------------------------------------------
#
# agent モードの道具に web_search が加わる。Chiezo に無いこと(取り込んだダンプより
# 新しい出来事、いま現在の状態)を聞かれたときだけモデルが使う。
# 出典には web と分かる形で並び、本文は取りに行かない(タイトル・要約・URL だけ)。
#
# 同梱の SearXNG(compose の searxng。--profile llm で推論と一緒に立つ)を使う場合:
#CHIEZO_WEB_SEARCH_URL=http://searxng:7012/search # 同居(サービス名で引く)
#CHIEZO_WEB_SEARCH_URL=http://<立てたホストのIP>:7012/search # LAN の別ホストのもの
#CHIEZO_WEB_SEARCH_PROVIDER=searxng # searxng(既定)/ brave
#CHIEZO_WEB_SEARCH_API_KEY= # brave のときだけ
#CHIEZO_WEB_SEARCH_RESULTS=5 # 1 回に見る件数
#CHIEZO_WEB_SEARCH_TIMEOUT=10 # 秒
#CHIEZO_WEB_SEARCH_SECRET= # 同梱 SearXNG の secret_key(既定のままで動く)
# ---- agent モード(/v1/ask?mode=agent) ---------------------------------------
#
# LLM 自身に Chiezo の道具(search / doc / filter / tags / titles / links)を引かせる
# 経路。既定は rag(search を 1 回)のままで、mode=agent と明示したときだけ使う。
# ツール呼び出しが安定するモデル(8B 級以上)+ GPU が実質の前提。
#
# 必要なコンテキスト長の目安 = MAX_STEPS × TOOL_CHARS(+ 質問と道具の定義で 2〜3k)。
#CHIEZO_AGENT_MAX_STEPS=6 # 道具を呼べる回数の上限。使い切ったら道具なしで答えさせる
#CHIEZO_AGENT_TOOL_CHARS=3000 # 1 回の道具の結果をモデルに返す上限文字数
#CHIEZO_AGENT_TIMEOUT=180 # ループ全体の締め切り(秒)
# --- 実行ユーザー ---
# data/ に書き込むユーザー。未設定なら 10001:10001(ホストに実在しない番号)。
# data/ をホストから直接編集・書き戻ししたいときだけ `id -u` / `id -g` を設定する
# (所有者合わせは起動前に chiezo-init が自動で行う)
#CHIEZO_UID=1000
#CHIEZO_GID=1000