Repository navigation
[Frontend] Add /v1/responses/render endpoint and refactor responses preprocessing - #38084
hyeongyun0916 wants to merge 4 commits into
Conversation
Signed-off-by: HyunKyun Moon <mhg5303@gmail.com>
|
Warning Gemini encountered an error creating the review. You can try again by commenting |
| # FIXME: If enable_store=True, this may cause a memory leak since we | ||
| # never remove messages from the store. | ||
| self.msg_store: dict[str, list[ChatCompletionMessageParam]] = {} | ||
| # Stores are managed by OpenAIServingRender so that |
There was a problem hiding this comment.
IMO renderer shouldn't be in charge of dealing with state. Let's keep that part specific to Responses API. Otherwise I'm worried this will interfere with the ongoing effort to move the stateful part out of vLLM (see #feat-responses on Slack).
There was a problem hiding this comment.
I’ve incorporated your feedback in commit 13c8510
|
This pull request has merge conflicts that must be resolved before it can be |
…ses and messages Signed-off-by: HyunKyun Moon <mhg5303@gmail.com>
…onses-render-endpoint Signed-off-by: HyunKyun Moon <mhg5303@gmail.com>
…etter type safety Signed-off-by: HyunKyun Moon <mhg5303@gmail.com>
|
This pull request has merge conflicts that must be resolved before it can be |
|
thanks for working on this. we’ve been prototyping this boundary in we also prototyped token-in/token-out generation and prompt-cache replay in a local vLLM branch. the useful lesson was that vLLM should own deterministic rendering and token identity, while durable Responses state should remain outside the renderer. with that model, I think there’s a similar issue with built-in tools on the GPU-less server: this will also need rebasing onto the current |
|
Hi @hyeongyun0916 , just wondering if you have time to address the changes requested by franciscojavierarceo above or if you no longer have time for this PR |
Purpose
Add a
/v1/responses/renderendpoint for the Responses API, following the same pattern as the existing/v1/chat/completions/renderand/v1/completions/renderendpoints.This refactors the preprocessing logic out of
OpenAIServingResponsesintoOpenAIServingRender, enabling:Changes
vllm/entrypoints/serve/render/serving.py: Addrender_responses(),render_responses_request(), and move Harmony-related methods (_make_responses_request_with_harmony,_construct_responses_input_with_harmony,_construct_responses_harmony_system_message,_extract_responses_system_message) fromOpenAIServingResponsesvllm/entrypoints/openai/responses/serving.py: Addrender_responses_request()(thin wrapper with engine-aware checks), refactorcreate_responses()to delegate to it, remove moved methods, share stores viaOpenAIServingRendervllm/entrypoints/serve/render/api_router.py: AddPOST /v1/responses/renderendpointvllm/entrypoints/openai/generate/api_router.py: Sharetool_serverwithOpenAIServingRenderTest Plan
Essential Elements of an Effective PR Description Checklist
supported_models.mdandexamplesfor a new model.