Skip to content

Add OrcaRouter plugin#2413

Merged
crazywoola merged 4 commits into
langgenius:mainfrom
zhenjunchen-png:add-orcarouter-plugin
May 19, 2026
Merged

Add OrcaRouter plugin#2413
crazywoola merged 4 commits into
langgenius:mainfrom
zhenjunchen-png:add-orcarouter-plugin

Conversation

@zhenjunchen-png
Copy link
Copy Markdown

@zhenjunchen-png zhenjunchen-png commented May 15, 2026

Plugin Submission Form

1. Metadata

2. Submission Type

  • New plugin submission
  • Version update for existing plugin

3. Description

OrcaRouter is an OpenAI-compatible LLM gateway routing requests across 40+ upstream providers (OpenAI, Anthropic, Google, DeepSeek, Qwen, Grok, Kimi, MiniMax, z.ai, etc.) with adaptive routing, fallback chains, and below-list-price billing.

This plugin exposes 120 models across three Dify model types:

  • LLM (108) — including a virtual router orcarouter/auto (configurable strategies: cheapest / balanced / quality / adaptive LinUCB / gated_adaptive)
  • Text Embedding (5) — OpenAI 3 + Google 2
  • TTS (7) — OpenAI tts-1 / tts-1-hd / gpt-4o-mini-tts variants

Key features:

  • Native reasoning controls per upstream style: OpenAI reasoning_effort (flat) for gpt-5 / o-series, Anthropic thinking block for Claude 4.x, DeepSeek auto-reasoning for r1 / reasoner
  • extra_body routing exposure: per-request fallback model list via orcarouter_fallback_models + orcarouter_route parameters
  • customizable-model mode enabled — users can add any model not in the predefined list without waiting for a plugin update

Tested locally on Dify 1.14.1: 505 offline pytest pass, 108 LLM + 5 embedding + 7 TTS live API tests pass, 7 functional scenarios verified through Dify UI.

Previously submitted to langgenius/dify-official-plugins as PR #3103 (Issue #3102); migrated here per maintainer's guidance.

4. Checklist

  • I have read and followed the Publish to Dify Marketplace guidelines
  • I have read and comply with the Plugin Developer Agreement
  • I confirm my plugin works properly on both Dify Community Edition and Cloud Version
  • I confirm my plugin has been thoroughly tested for completeness and functionality
  • My plugin brings new value to Dify

5. Documentation Checklist

  • Step-by-step setup instructions
  • Detailed usage instructions
  • All required APIs and credentials are clearly listed
  • Connection requirements and configuration details
  • Link to the repository for the plugin source code

6. Privacy Protection Information

Data Collection

This plugin does not collect any user personal data on its own. It is a thin client for the OrcaRouter API that transmits only:

  • The user-provided API key (sent as Authorization: Bearer header to OrcaRouter)
  • The prompt / messages / parameters submitted through Dify (forwarded to OrcaRouter for upstream routing)
  • Input text for embedding and TTS endpoints

OrcaRouter's own data handling (request logging, billing data retention) is governed by the OrcaRouter privacy policy: https://www.orcarouter.ai/privacy.html

Privacy Policy

  • I confirm that I have prepared and included a privacy policy in my plugin package based on the Plugin Privacy Protection Guidelines

The plugin's README.md includes a "Privacy" section linking to https://www.orcarouter.ai/privacy.html

Disclosure

I'm an engineer on the OrcaRouter team.

OrcaRouter is an OpenAI-compatible LLM gateway routing across 40+ upstream
providers with adaptive routing, fallback chains, and below-list-price billing.

Exposes 120 models for Dify across LLM (108) / Embedding (5) / TTS (7).
Source: https://github.com/zhenjunchen-png/dify-plugin-orcarouter

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
zhenjun.chen and others added 2 commits May 16, 2026 12:42
- README points to Continuum-AI-Corp/dify-plugin-orcarouter (post-transfer)
- Exclude .git/ from package (previous build was 2x larger due to bundled .git)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…est author

- Path: orcarouter/orcarouter/ → continuum-ai-corp/orcarouter/
- manifest.yaml author updated from "orcarouter" to "continuum-ai-corp"
  to match the GitHub org that owns the source repository
  (https://github.com/Continuum-AI-Corp/dify-plugin-orcarouter)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Member

@crazywoola crazywoola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail Required action
Project structure ❌ Fail Missing files: PRIVACY.md. Present: manifest.yaml, README.md. _assets/: yes. Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/.
PRIVACY.md ❌ Fail PRIVACY.md not found in plugin package. A privacy policy file is required for marketplace submission. Add a non-empty PRIVACY.md file to the plugin package.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.5.0, but it was not found. Use dify_plugin >= 0.5.0 in the packaged plugin environment.

Full Check Results

Check Status Detail Required action
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2399, ignored_zh=0, allowed_zh<=0) None.
Project structure ❌ Fail Missing files: PRIVACY.md. Present: manifest.yaml, README.md. _assets/: yes. Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/.
Manifest author ✅ Pass author is valid. None.
Icon validation ✅ Pass icon exists: _assets/orcarouter_square.svg None.
Version check ✅ Pass version 0.0.1 is available. None.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=3438, allowed_zh<=0) None.
PRIVACY.md ❌ Fail PRIVACY.md not found in plugin package. A privacy policy file is required for marketplace submission. Add a non-empty PRIVACY.md file to the plugin package.
Dependency install ✅ Pass requirements.txt not found; skipped. None.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.5.0, but it was not found. Use dify_plugin >= 0.5.0 in the packaged plugin environment.
Install test ✅ Pass requirements.txt not found; skipped. None.
Packaging test ✅ Pass packaging check passed. None.

Next steps

  • Project structure: Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/.
  • PRIVACY.md: Add a non-empty PRIVACY.md file to the plugin package.
  • dify_plugin version: Use dify_plugin >= 0.5.0 in the packaged plugin environment.

Please address these issues and push an update.

Copy link
Copy Markdown
Member

@crazywoola crazywoola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail Required action
Project structure ❌ Fail Missing files: PRIVACY.md. Present: manifest.yaml, README.md. _assets/: yes. Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/.
PRIVACY.md ❌ Fail PRIVACY.md not found in plugin package. A privacy policy file is required for marketplace submission. Add a non-empty PRIVACY.md file to the plugin package.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.5.0, but it was not found. Use dify_plugin >= 0.5.0 in the packaged plugin environment.

Full Check Results

Check Status Detail Required action
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2399, ignored_zh=0, allowed_zh<=0) None.
Project structure ❌ Fail Missing files: PRIVACY.md. Present: manifest.yaml, README.md. _assets/: yes. Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/.
Manifest author ✅ Pass author is valid. None.
Icon validation ✅ Pass icon exists: _assets/orcarouter_square.svg None.
Version check ✅ Pass version 0.0.1 is available. None.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=3438, allowed_zh<=0) None.
PRIVACY.md ❌ Fail PRIVACY.md not found in plugin package. A privacy policy file is required for marketplace submission. Add a non-empty PRIVACY.md file to the plugin package.
Dependency install ✅ Pass requirements.txt not found; skipped. None.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.5.0, but it was not found. Use dify_plugin >= 0.5.0 in the packaged plugin environment.
Install test ✅ Pass requirements.txt not found; skipped. None.
Packaging test ✅ Pass packaging check passed. None.

Next steps

  • Project structure: Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/.
  • PRIVACY.md: Add a non-empty PRIVACY.md file to the plugin package.
  • dify_plugin version: Use dify_plugin >= 0.5.0 in the packaged plugin environment.

Please address these issues and push an update.

Adds PRIVACY.md (required for marketplace submission) and requirements.txt
(enables CI's dify_plugin version verification) to the plugin package.

Resolves the 3 CI check failures from PR langgenius#2413 review:
- Project structure: missing PRIVACY.md
- PRIVACY.md not found in plugin package
- dify_plugin version not found (CI couldn't pip install without requirements.txt)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@crazywoola crazywoola merged commit e318e45 into langgenius:main May 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants