YYTbit/dsh-plugin-jev-router ↗★ 1

dsh-plugin-jev-router

Per-turn model and reasoning-effort routing for DeepSeek Harness -- one Jev choice question per turn 适合追求性价比与效果平衡的用户,每轮对话根据输入自动选择最合适的模型与思考强度。

パッケージ
dsh-plugin-jev-router
互換性
未検証
バージョン
0.1.0
ライセンス
MIT
最終更新
2026/10/03

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:YYTbit/dsh-plugin-jev-router

ドキュメント

README 全文を読む ↗

Configuration

- id: jev-router
  name: dsh-plugin-jev-router
  inject: []
  config:
    # Routing targets. The rates below are example list prices, in USD per
    # million tokens. Replace them with the rates you are billed.
    candidates:
      - { model: deepseek-v4-fast, effort: low, costPerMTokIn: 0.07, costPerMTokOut: 0.14 }
      - { model: deepseek-v4, effort: low, costPerMTokIn: 0.28, costPerMTokOut: 0.42 }
      - { model: deepseek-v4, effort: high, costPerMTokIn: 0.28, costPerMTokOut: 0.42 }
      - { model: deepseek-reasoner, effort: high, costPerMTokIn: 0.55, costPerMTokOut: 2.19 }
    # Accepts a model@effort label, a bare model name, or a list index.
    # Default: the most expensive candidate, so an undecidable turn is never
    # under-served.
    defaultCandidate: deepseek-reasoner@high
    # A Jev answer below this confidence routes to the default candidate.
    minConfidence: 0.5
    # Turns a candidate stays pinned after an escalation or an expensive Jev
    # choice. 0 disables the hold, which is the setting to use when testing or
    # debugging the Jev path, since a held turn skips the request entirely.
    stickyTurns: 1
    # Extra escalation patterns, appended to the built-in defaults.
    escalateOn: []
    # Extra trivial patterns, appended to the built-in defaults.
    trivialPatterns: []
    # Set false to route with only the patterns given above.
    useDefaultPatterns: true
    # Byte cap for the trivial fast path.
    trivialMaxBytes: 240
    # Byte cap on the summary sent to Jev.
    maxSummaryBytes: 4000
    endpoint: https://api.typesafe.ai/v1/systemone
    apiKey: ''
    timeoutMs: 2500
    question: ''
    # Token profile used to turn per-million rates into a per-turn cost.
    tokensInPerTurn: 12000
    tokensOutPerTurn: 800
    # JSONL receipt log. Empty disables it.
    receiptPath: ''
    # Inject the current route into the system prompt. Off by default because a
    # section that changes every turn rewrites the cached prefix.
    promptSection: false
    # Cost weight used by `jev-route replay --prefer cheap`.
    replayCostAversion: 2

Environment variables fill in the fields that are not set in config.

VariableField
JEV_API_URLendpoint
JEV_API_KEYapiKey
JEV_ROUTER_RECEIPTSreceiptPath
JEV_ROUTER_CANDIDATEScandidates, as a JSON array