設定(概要)
このドキュメントは「何を」「どこで」設定するかを俯瞰します。最小構成
- Requester のみ:
LCPD_LND_*(ピアメッセージング / 請求書支払い)を設定してlcpd-grpcdを起動 - Provider: 追加で
LCPD_PROVIDER_CONFIG_PATH(YAML)とLCPD_BACKEND(例:openai)を設定
環境変数(必須/任意)
go-lcpd(共通)
| 変数 | 必須 | 目的 |
|---|---|---|
LCPD_LOG_LEVEL | 任意 | debug/info/warn など |
LCPD_BACKEND | Provider では実質必須(有効化時) | openai / deterministic / disabled |
LCPD_OPENAI_API_KEY or OPENAI_API_KEY | LCPD_BACKEND=openai で必須 | OpenAI API key |
LCPD_OPENAI_BASE_URL | 任意 | OpenAI 互換 API の Base URL |
LCPD_DETERMINISTIC_OUTPUT_BASE64 | 任意 | deterministic backend の固定出力(開発/テスト用) |
lnd 連携(ピアメッセージング / 支払い)
| 変数 | 必須 | 目的 |
|---|---|---|
LCPD_LND_RPC_ADDR | lnd を使うなら必須 | host:port |
LCPD_LND_TLS_CERT_PATH | 通常は必須 | tls.cert パス(空ならシステムルートで検証) |
LCPD_LND_ADMIN_MACAROON_PATH | mainnet では推奨 | admin macaroon(支払い / invoice 操作に必要) |
LCPD_LND_MANIFEST_RESEND_INTERVAL | 任意 | 接続中の peer へ lcp_manifest を定期的に再送(未設定/0s で無効) |
ログ(プライバシー)
lcpd-grpcd のログは、生のユーザー入力を永続化しなくても診断できるように設計しています。
LCPD_LOG_LEVELで詳細度を制御します(debug/info/warn/error。デフォルトはinfo)。- ログには、生のプロンプト / 生のモデル出力 / API key / macaroon / BOLT11 invoice を残してはいけません。
- 生データを残さなくても、ログにはメタデータ(peer id / job id / 価格 / 時間など)が残ります。
Provider(YAML)
| 変数 | 必須 | 目的 |
|---|---|---|
LCPD_PROVIDER_CONFIG_PATH | Provider で必須 | Provider の YAML 設定ファイルのパス(未指定の場合、カレントに config.yaml があればそれを使用) |
LCPD_PROVIDER_CONFIG_PATH)です。YAML がない場合、Provider モードは無効です。
Provider YAML の詳細と例は下の「Provider 設定(YAML)」で説明します。
Provider 設定(YAML)
lcpd-grpcd の Provider 振る舞いは YAML のみで設定します。
- パスは
LCPD_PROVIDER_CONFIG_PATHで渡します - 未指定の場合、カレントディレクトリの
config.yamlを使用します(存在する場合) - ファイルが空/欠落している場合はデフォルトが適用されます(Provider 無効、TTL=300s、
max_output_tokens=4096、内蔵の価格表など)
go-lcpd/config.yaml.sample(go-lcpd/config.yaml にコピーして使用)
例
mainnet 例
regtest 例
モデル命名
modelは OpenAI の model ID です。- 出現箇所:
- wire の
openai_chat_completions_v1_params_tlvs.model(params_bytes) - input stream bytes に入る OpenAI request JSON の
request_json.model - gRPC の
LCPManifest.supported_tasks[].openai_chat_completions_v1.model(広告)
- wire の
- Provider は
modelを allowlist / pricing / backend routing に使います。
フィールドリファレンス
enabled: Provider モードを有効化します。falseの場合、quote/cancel を拒否し、invoice を作りません。quote_ttl_seconds: Quote と invoice の TTL(秒)。デフォルト 300s。pricing.in_flight_surge: 任意の surge pricing。quote 時点の in-flight job 数に応じて価格を倍率調整します。threshold: surge を開始する in-flight job 数の閾値。per_job_bps:thresholdを超えた 1 job あたりの加算倍率(bps。10,000 = 1.0x)。0の場合は無効。max_multiplier_bps: 総倍率の上限(bps)。0の場合は安全なデフォルト上限が使われます。
llm.max_output_tokens: Provider 全体の max output tokens 上限。quote 時の推定と request validation に使います。デフォルト 4096。llm.models: 許可/広告するopenai.chat_completions.v1model ID のマップ。空の場合、任意のmodelを受け付けますが manifest では広告しません。max_output_tokens: 任意の model ごとの上書き(0 より大きいこと)。price: model ごとの価格(msat / 100 万トークン)。input_msat_per_mtokとoutput_msat_per_mtokは必須、cached_input_msat_per_mtokは任意。
デフォルト価格表
YAML がない場合、内蔵の価格表(msat / 100 万トークン)を使用します:gpt-5.2: input 1,750,000 / cached 175,000 / output 14,000,000
Quote → Execute フロー(openai.chat_completions.v1)
- QuoteRequest を検証し、model が許可されているか確認します。
- input stream bytes を OpenAI request JSON として受信・検証します(
request_json.model/request_json.messages/request_json.stream=false)。 - quote 時の推定に使う
max_output_tokensを決定します:llm.max_output_tokens(任意で model ごとの上書き)を上限とする- request が output token 上限(
max_completion_tokens/max_tokens/max_output_tokens)を指定している場合、Provider 上限以下であることを検証し、その値で推定する
UsageEstimator(approx.v1:ceil(len(bytes)/4))でトークン使用量を推定します。QuotePrice(model, estimate, cached=0, price_table)で msat 価格を計算し、任意でpricing.in_flight_surgeを適用してから TermsHash / invoice binding に埋め込みます。- 支払いが確定したら、passthrough request を backend で実行し、result stream を返して
lcp_resultで完了します。
backend に関する補足
openai: 外部 API を呼び出します(課金 / レート制限 / ネットワーク依存)。- OpenAI 互換 Chat Completions API(
POST /v1/chat/completions)を使用します。 - LCP input stream の raw request body bytes をそのまま送信します(non-streaming)。
- OpenAI 互換の response body bytes をそのまま返します(non-streaming JSON)。
- OpenAI 互換 Chat Completions API(
deterministic: 開発用の固定出力 backend(外部 API なし)。disabled: 実行しません(Requester のみ運用で便利)。
関連ドキュメント
- gRPC 開発 CLI:
cli-ja.md - mainnet 手順:
quickstart-mainnet-ja.md - regtest 手順:
regtest-ja.md