openai-serve は、OpenAI API の一部を実装する小さな HTTP ゲートウェイです。
受け取ったリクエストをローカルの lcpd-grpcd(Requester)へ gRPC で転送します。
Requester は Lightning 接続、見積もり(quote)/支払い、結果取得を担います。
これにより、既存の OpenAI 互換クライアント(SDK / LangChain / curl など)は、主に base_url を切り替えるだけで
LCP 上の Provider にリクエストを投げられます。
アーキテクチャ
openai-serveは意図的にステートレスで、Lightning へ直接接続しません。- sats を支払う権限を持つのは Requester(
lcpd-grpcd)です。
ログとプライバシー
ログはセンシティブとして扱います。openai-serve は、生のユーザー入力を永続化しなくても診断できるように設計しています。
- ログには、生のプロンプト(
messages[].content)や生のモデル出力を残してはいけません。 - ログは運用メタデータ(model/peer/job id、価格、時間、byte/token カウント)のみに寄せます。
OPENAI_SERVE_LOG_LEVEL=debugはリクエストログがより詳細になります。運用では(必要になるまで)デフォルトのinfoを推奨します。
対応エンドポイント
POST /v1/chat/completions(JSON またはstream:trueの SSE パススルー)POST /v1/responses(JSON またはstream:trueの SSE パススルー)GET /v1/modelsGET /healthz
クイックスタート
前提:lcpd-grpcd は別プロセスで起動(Requester モード)し、Lightning node と LCP peers に到達できる状態にします。
ビルド:
CLI ツールから使う
openai-serve は OpenAI Chat Completions / Responses API(stream:true 含む)互換です。
多くの OpenAI 互換 CLI ツールは、base_url と API key を設定することで openai-serve を利用できます。
Codex CLI
Codex CLI をopenai-serve に向けるには、カスタムの model provider を定義します(wire format は Chat Completions)。
~/.codex/config.tomlに追記:
- 実行(API key は
openai-serve側の設定と一致させてください):
stream:true)は SSE としてそのままパススルーします。フィールドのサポート可否は選択された
Provider に依存します。
LLM(llm)
llm は OpenAI 互換 base URL に向けて実行できます。llm の user directory に extra-openai-models.yaml を作成し、
以下を追加してください:
リクエスト/レスポンスの挙動
openai-serveは Chat Completions / Responses の request/response bytes をそのまま運ぶパススルーゲートウェイです。- ルーティング前に最小限の検証のみ行います:
- body が JSON object であること
modelが存在し、空でなく、前後に空白がないことmessages(chat)またはinput(responses)が存在し、空でないこと- HTTP
Content-Encodingは省略またはidentity(圧縮されたリクエストボディは拒否)
stream:trueのとき、text/event-streamの bytes を順次パススルーします。streamなし/falseのときは JSON body をまとめて返します。- リクエストボディは 1 MiB までです。
- Provider の結果 bytes はそのまま返し、HTTP の
Content-Type/Content-Encodingは LCP result metadata から取得します。
LCP メタデータヘッダ
POST /v1/chat/completions と POST /v1/responses のレスポンスには以下が含まれます:
X-Lcp-Peer-Id: 選択された Provider の peer idX-Lcp-Job-Id: job id(hex)X-Lcp-Price-Msat: 受諾した quote の価格X-Lcp-Terms-Hash: 受諾した quote の terms hash(hex)