Skip to content

Add Ace Data Cloud model provider plugin - #3219

Merged
crazywoola merged 4 commits into
langgenius:mainfrom
AceDataCloud:codex/acedatacloud-model-provider
Oct 7, 2026
Merged

crazywoola merged 4 commits into
langgenius:mainfrom
AceDataCloud:codex/acedatacloud-model-provider

Conversation

@acedatacloud-dev

@acedatacloud-dev acedatacloud-dev commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Plugin Submission

Plugin information

Submission type

  • New plugin
  • Version update

What changed

Adds one unified Ace Data Cloud model provider, giving users a named Marketplace entry with the fixed https://api.acedata.cloud/v1/chat/completions endpoint, API-key setup and model-specific capability settings. The provider reuses Dify's OpenAI-compatible message adapters, supports streaming text, optional tool calls and image input, and validates credentials/model IDs using read-only /v1/models without generating paid output. There is no automatic model substitution.

This is a new official-Marketplace submission, separate from the retired plugins in the AceDataCloud/Dify application fork. It consolidates Chat Completions model access into one provider. Media-generation APIs are outside this model provider and have separate tool-plugin submissions.

Risk level

  • Low risk
  • Medium risk
  • High risk

User prompts, enabled image inputs, tool definitions/results and the API key are transmitted to the fixed Ace Data Cloud HTTPS API.

Required checks

  • I have read and followed the Marketplace submission requirements.
  • I have read and comply with the Plugin Developer Agreement.
  • I tested this plugin on Dify Community Edition and Dify Cloud, or documented any limitation below.
  • The package contains only files needed at runtime.
  • The package does not contain secrets, local credentials, .env files, .git directories, virtual environments, caches, logs, or IDE files.
  • The package does not contain executables or bundled binaries, or I explained why they are required below.
  • The plugin README includes setup steps, usage instructions, required APIs or credentials, connection requirements, and the source repository link.
  • The plugin includes PRIVACY.md or a hosted privacy policy, and manifest.yaml references it.
  • All user-facing text is primarily in English, with any localized README files following the i18n guidance.

Security and privacy notes

The plugin only sends API requests to api.acedata.cloud, declared in the manifest. User-defined endpoints and headers are not accepted. Redirects are disabled. Connection timeout is 10 seconds; read timeouts are 30 seconds for validation and 120 seconds for generation. Raw API error bodies and credentials are not surfaced in errors. Streaming connections close on completion, cancellation and parsing failures. The optional Dify end-user identifier is not forwarded.

The plugin does not run shell commands, execute code or generated tools, access databases, perform filesystem operations, fetch arbitrary URLs, operate browsers or perform payment/asset/token transfers. Dify controls tool execution. Image URLs are passed as model input to the fixed API, not fetched by the plugin. Prompts can contain personal data supplied by the user; processing and recipients are described in PRIVACY.md.

Local validation

  • Python 3.12.13, dify-plugin==0.9.1.
  • PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 .venv/bin/python -m pytest tests -q: 16 passed, including actual SDK provider/model registration, endpoint constraints, read-only validation, error classification, malformed SSE and connection cancellation.
  • Actual plugin process (python -m main) answered a stdio get_ai_model_schemas request successfully.
  • .venv/bin/ruff check . and .venv/bin/ruff format --check .: passed.
  • dify plugin package .: passed with CLI v0.5.2; a download of v0.6.10 could not complete in this environment.
  • Official dify-marketplace-toolkit/validator/validate-difypkg.py with this PR body: zero blocking failures. See warnings explained below.
  • Live gpt-4.1-mini through the SDK public invoke interface: non-stream DIFY_OK (11 input / 7 output tokens), streaming lookup_value with {"key":"alpha"} (56 / 18), and tool-result continuation DIFY_TOOL_OK (66 / 8). No credentials are included in the source or submission.

Reviewer notes

A real Dify Community Edition workflow passed using the official remote-debug flow and console APIs, as detailed below. Marketplace installation and Dify Cloud remain unverified. A browser was subsequently used to inspect the successful CE workflow history without repeating the paid generation. The minimum version is set to Dify 1.17.1.

The Developer Agreement checkbox remains unchecked: the current docs index exposes Plugin Development Guidelines and Privacy Guidelines, which were read, but no separate agreement URL was found. Please provide the canonical agreement if an additional attestation is required.

Static warnings: billing wording documents the API service's usage charges and does not represent payment or token-transfer functionality. SDK response parsers receive credentials internally to derive model schemas; their returned Dify result objects contain model output/usage, not credentials. Endpoint strings are composed from one fixed HTTPS constant. The plugin publishes no fixed USD estimate because actual Credit charges depend on the user's package; Dify may display zero estimated cost, which the README explicitly distinguishes from free API usage.

Source and tests were prepared with AI assistance. API model IDs are customizable, and capabilities default to disabled rather than making unsupported claims for every model. This first submission supports Chat Completions only; Messages/Responses-only models and image-generation, embedding, audio/video/music endpoints are outside its scope. Support and follow-up updates are handled through the source repository and dev@acedata.cloud.

Current package and source

Plugin and provider small/large icons in both light and dark themes use the exact official 512×512 RGBA PNG from https://cdn.acedata.cloud/assets/logo.png (SHA-256 3e2c6e2d1a61a549dae2374ec4444c77f4c2617c8f3772bdd4cd6e52bf20767e). Gradients, transparency and padding are preserved. Dify's native 20px and 40px containers were checked on light/dark backgrounds.

The current package includes source-link metadata updates; runtime Python behavior and logo bytes are unchanged from the tested package. Earlier live checks apply to that unchanged runtime. No paid calls were repeated for naming/documentation changes.

Real runtime and CE validation

  • Official CLI loaded the packaged provider and completed a real invoke_llm request: DIFY_PACKAGE_OK, 12 prompt / 8 completion tokens. Read-only platform reconciliation matched a successful usage record and a nonzero Credit deduction.
  • Official test-plugin-install.py passed in serverless mode; uploader --test passed with zero undeclared domains. No Marketplace upload is claimed.
  • On 2026-10-07, Dify CE 1.17.1 API/Web and plugin daemon 0.6.10-local ran in an isolated local environment. The submitted package's source connected through Dify's official remote-debug flow, with signature verification enabled.
  • Dify's console APIs discovered the provider; saving gpt-4.1-mini credentials returned HTTP 201 and listed the model as active. A real Start → LLM → Output workflow completed all three nodes and returned DIFY_CE_20261007_OK (17 prompt / 25 completion / 42 total tokens). Workflow run: 5d0fb628-c8ae-4d11-bd04-e1f844868c62.
  • The provider icon served by CE matched the official PNG hash. The workflow request matched exactly one successful platform usage record and a nonzero Credit deduction.

This is real CE workflow-engine validation via remote debugging and console APIs. The successful run history and provider icon were subsequently inspected in the real CE browser. This does not establish Marketplace installation or Dify Cloud support. Test credentials were removed from the local workspace and the isolated environment was stopped after validation.

@github-actions github-actions Bot added the risk: medium Medium-risk Marketplace submission label Oct 6, 2026
@acedatacloud-dev

Copy link
Copy Markdown
Contributor Author

Additional validation completed against the submitted package (SHA-256 7b55afc275102e4ab5c3625d844424cc1a2b44238b69fb5e387c8eddfa2c3468):

  • The official CLI dify plugin run ... -m stdio -r json loaded the exact .difypkg and completed a real invoke_llm request to Ace Data Cloud: DIFY_PACKAGE_OK, 12 input / 8 output tokens.
  • The Marketplace Toolkit test-plugin-install.py passed in serverless mode, matching the upstream CI installation check.
  • The Toolkit uploader --test passed, with one declared outbound domain and no undeclared domain. No Marketplace upload was performed by this dry run.
  • Source CI passed: https://github.com/AceDataCloud/dify-model-provider/actions/runs/37434793111

The Pre Check Plugin workflow is currently action_required: https://github.com/langgenius/dify-plugins/actions/runs/37434865203 . Could a maintainer approve this first contribution's workflow run and review the provider for Marketplace listing?

These checks validate the runtime package and real API path; full Dify Community Edition/Cloud UI installation remains pending as disclosed in the PR. The separate Developer Agreement URL request in the reviewer notes also remains open.

@acedatacloud-dev acedatacloud-dev changed the title Add Ace Data Cloud model provider 0.0.1 Add Ace Data Cloud model provider plugin Oct 7, 2026
@crazywoola
crazywoola merged commit 9d9dd2e into langgenius:main Oct 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk: medium Medium-risk Marketplace submission

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants