From 7d842a3065fb002a2a32407ca27348ec6cfe685e Mon Sep 17 00:00:00 2001 From: James Burton Date: Fri, 31 Jul 2026 11:30:17 +0100 Subject: [PATCH] docs(server): drop the unimplemented lora_adapter request field (#425) docs/SERVER.md documented a lora_adapter field on the chat-completions request body. It appears nowhere in src/DotLLM.Server, and it is not part of the OpenAI surface it claimed parity with either, so a user sending it got it silently ignored. LoRA is roadmap step 47 and is not implemented at all: the engine has the IAdapterManager abstraction and InferenceRequest.AdapterId, but there is no adapter loader, no admin endpoint, and no per-request selection. The doc now says so, and points at merging the adapter offline plus --model / POST /v1/models/load as the way to serve an adapted model today. Also marks docs/LORA.md as a design spec so the two docs agree. --- docs/LORA.md | 4 ++++ docs/SERVER.md | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/docs/LORA.md b/docs/LORA.md index 9310c110..ae9a1c54 100644 --- a/docs/LORA.md +++ b/docs/LORA.md @@ -1,5 +1,9 @@ # LoRA Adapter Support — dotLLM +> **Status**: design spec, not implemented. This is roadmap step 47. Only the `IAdapterManager` +> abstraction and `InferenceRequest.AdapterId` exist today — there is no adapter loader, no server +> endpoint, and no per-request adapter selection. Everything below describes the intended design. + ## Overview LoRA (Low-Rank Adaptation) enables fine-tuned model behaviors without modifying base weights. Multiple adapters can coexist on the same base model, with per-request adapter selection. diff --git a/docs/SERVER.md b/docs/SERVER.md index a8ae065f..41ee2432 100644 --- a/docs/SERVER.md +++ b/docs/SERVER.md @@ -28,11 +28,18 @@ Primary chat endpoint. Accepts OpenAI-compatible request format. "logit_bias": {"1234": -100}, "frequency_penalty": 0.5, "presence_penalty": 0.3, - "n": 1, - "lora_adapter": "customer-support" + "n": 1 } ``` +> **Adapter selection**: there is no `lora_adapter` request field (it is not part of the OpenAI +> surface either, and the server ignores unknown fields silently). LoRA serving is roadmap step 47 +> and is not implemented: the engine has the `IAdapterManager` abstraction and +> `InferenceRequest.AdapterId`, but there is no implementation, no adapter admin endpoint, and no +> way to select an adapter per request. Until then, serve an adapted model by merging the adapter +> into the weights offline and loading the merged model — via `--model` at startup or +> `POST /v1/models/load`. See [LORA.md](LORA.md) for the planned design. + **Response** (non-streaming): ```json {