dsh-vision-3090-fix
Run the following command in DeepSeek Harness:
dsh plugin install pureexe/dsh-vision-3090-fix
Paste the following prompt into your AI chat to install this plugin:
Install the plugin in DeepSeek Harness by running the install command; source is available at https://github.com/pureexe/dsh-vision-3090-fix .
About this plugin
Self-hosting a vision model on a single RTX 3090 with vLLM typically means launching with --limit-mm-per-prompt image=1, so any request carrying more than one image content part is rejected with a 400. DeepSeek Harness's built-in LLM adapters throttle images only by accumulated byte size, never by count, so a multi-turn conversation or a single turn where two tools each return one image will silently breach the cap and fail. dsh-vision-3090-fix exists to close exactly that gap: a local HTTP reverse proxy managed by the plugin lifecycle, slotted in front of your existing provider baseURL, that counts every image_url content part across the entire messages array (including tool-role replies), replaces the oldest images beyond maxImagesPerRequest with a stable text placeholder, then forwards the rewritten body upstream. Responses stream back byte-for-byte, so SSE chunking behaves identically to a direct connection.
No existing configuration structure changes: dsh-llm-pi-ai still owns the provider route, model list, and credentials. You simply point that provider's baseURL at the local proxy port. The optional models field scopes which model IDs the cap applies to; out-of-scope requests pass through the proxy byte-for-byte untouched. The request body is fully buffered before forwarding (necessary to parse and rewrite the JSON), which is fine for chat and vision payloads but not intended for large file uploads. There is no retry logic and no request queueing—the proxy is deliberately a thin pass-through, not a load balancer.
If you are running a single-GPU vLLM vision deployment, calling it through DeepSeek Harness's OpenAI-compatible interface, and hitting repeated 400 errors in multi-turn conversations or parallel tool-call turns, this plugin is the lightest fix available: no model redeployment, no Harness core changes, just one baseURL line to point at the proxy and your multi-image sessions work again.
Use Cases
- Attaching one image per turn across a multi-turn conversation
- Multiple tools in a single turn each returning one image
- Single-GPU vLLM vision deployment rejecting requests with 400
Best For
- Users self-hosting a vision model on a single RTX 3090
- Developers calling OpenAI-compatible vision endpoints via DeepSeek Harness
- vLLM deployers repeatedly hitting 400 errors on multi-image requests
Related Plugins
A unified suite combining hot runtime injection, task-aware thinking-mode routing, and a graded session protocol with red-team gates to sustain model diligence across long-horizon inference.
ModLens is a vision plugin for DeepSeek Harness that gives text-only models sight by reading images pasted directly into chat, with zero-config setup and multiple vision engines.
On-demand vision for text-only DeepSeek Harness agents: built-in free keyless vision chain and 14 vision tools, routing image turns as tool calls to vision models with pixel fidelity, no Python needed, one-command install.
Give text-only models in DeepSeek Harness eyes, enabling image Q&A, long-screenshot OCR, UI restoration, and GUI visual tasks.