Skip to content
dsh.fish
Bundle

dsh-pro-vision-std

dsh-std Community v0.15 ModelProvider: DeepSeek-V4-Pro with images captioned by V4-Flash-Vision-Exp. Requires @dsh-std/adapter-dsh on DeepSeek Harness.

Source
lasdrder0705
License
MIT
Updated
Updated 6 days ago

Readme

# dsh-pro-vision-std

[中文](README.zh.md) · English

**Compatible with dsh-std Community v0.15.**

A portable `ModelProvider` that lets DeepSeek V4-Pro handle image attachments. Images are first captioned by `deepseek-v4-flash-vision-exp`; the resulting text is then sent to `deepseek-v4-pro`. The host facet uses dsh-std contracts and does not import `@deepseek-ai/*`.

## Compatibility

| Item | Value |
|---|---|
| Standard | [dsh-std](https://github.com/Yan-Zero/dsh-std) Community v0.15 |
| `$schema` | `urn:dsh-std:community-draft:dsh-plugin:0.15` |
| Component id | `io.github.lasdrder0705.dsh-pro-vision-std` |
| Host entry | `lib/host.js` |
| DSH host | [`@dsh-std/adapter-dsh`](https://www.npmjs.com/package/@dsh-std/adapter-dsh) |
| Node.js | `22.19+` or `24+` |
| CI | Windows, macOS, and Linux |

## Install

```sh
dsh plugin --profile web add @dsh-std/adapter-dsh
dsh plugin --profile web add github:lasdrder0705/dsh-pro-vision-std
```

To update an existing installation:

```sh
dsh plugin --profile web update dsh-pro-vision-std
```

Restart the DSH profile after installation or update.

## Select the image-capable route

In the model selector, choose:

```text
dsh-pro-vision / deepseek-v4-pro
```

This exact route advertises `text + image`. The previous model id, `dsh-pro-vision / deepseek-v4-pro-vision`, remains available as a compatibility alias.

The official route `deepseek-official / deepseek-v4-pro` remains text-only. dsh-std isolates providers by route, so installing this component does not alter or impersonate the official provider. If DSH reports that V4-Pro cannot accept images, verify that the selected provider is `dsh-pro-vision`.

## API key reuse

On DeepSeek Harness, the component automatically reuses the existing `DEEPSEEK_API_KEY` resolved by the DSH credential service, including a key already saved from the Models page. Users do not need to enter the same key again.

`DSH_PRO_VISION_API_KEY` is an optional per-plugin environment override. Outside DSH, the portable facet falls back to `DSH_PRO_VISION_API_KEY` and `DEEPSEEK_API_KEY` from the launch environment. Credential values are resolved for each operation, are not written to plugin configuration, and are not logged.

Optional environment settings:

```text
DSH_PRO_VISION_BASE_URL              default https://api.deepseek.com
DSH_PRO_VISION_VISION_MODEL          default deepseek-v4-flash-vision-exp
DSH_PRO_VISION_TEXT_MODEL            default deepseek-v4-pro
DSH_PRO_VISION_MAX_VISION_TOKENS     default 8192
DSH_PRO_VISION_REASONING_EFFORT      default high
DSH_PRO_VISION_CACHE_SIZE            default 200
```

## Behavior

1. The provider reads image attachments through the dsh-std `readImage` contract.
2. Flash Vision creates a precise caption for each image.
3. Each image block becomes an `[Image N] ...` text note.
4. V4-Pro streams the final response from the rewritten text-only request.
5. Identical image bytes are cached in process.

The package also publishes the dsh-std Tool `describe_image` for describing one workspace or recently attached image explicitly.

## Relationship to the original plugin

This repository is the dsh-std rewrite of [dsh-pro-vision](https://github.com/lasdrder0705/dsh-pro-vision). The original plugin intercepts a DSH-specific Cordis `llm/stream`; this package instead publishes an isolated, portable ModelProvider. They are separate packages and may coexist.

## Develop

```sh
npm run check
npm pack --dry-run
```

Install

dsh plugin --profile web add github:lasdrder0705/dsh-pro-vision-std

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source