Skip to content

[Feature] Let the vision-sidecar description model be any configured provider's vision model (e.g. Doubao/volcengine) instead of only OpenAI/Anthropic forward models #1937

Description

@ShuaiHui

Area

Provider adapter

What are you trying to accomplish?

I use several text-only routed models through the vision sidecar, which describes images before feeding them to the text-only model. Right now my only choice for the "describer" is an OpenAI-native or Anthropic model that runs through the ChatGPT forward backend. I'd like to be able to pick any configured provider's vision model — for instance a Doubao/volcengine vision model I already have configured in opencodex — as the describer.

What prevents this today?

The vision sidecar (visionSidecar.model) sends the describe request through forwardProvider (the ChatGPT forward backend) to /responses, so model is effectively limited to OpenAI-native (or Anthropic) model ids. A model hosted on a custom provider (cliproxy, volcengine/doubao, etc.) can't be selected because the describe path doesn't know how to reach that provider.

What should OpenCodex do?

Allow the vision-sidecar description model to be resolved against any configured provider, not just the forward/ChatGPT backend — for example, per-provider or a routed model id for the describer, so a Doubao/volcengine (or any other) vision-capable model can act as the image describer for text-only routed models. This mirrors how noVisionModels lets operators choose which models get the sidecar; the companion ask is letting them choose who does the describing.

Checks

  • I searched existing issues and documentation.
  • I removed secrets, tokens, account details, request credentials, and personal data.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is neededneeds-design설계 필요. Implementation waits on a written design.providerProvider adapters, OpenAI-compat presets, upstream API quirksroadmapAccepted long-term work item; needs its own project cycle

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions