Repository navigation
Add Ace Data Cloud model provider plugin - #3219
Merged
crazywoola merged 4 commits intoOct 7, 2026
Merged
Conversation
Contributor
Author
|
Additional validation completed against the submitted package (SHA-256
The 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. |
This was referenced Oct 6, 2026
Merged
Merged
Merged
Merged
Merged
crazywoola
approved these changes
Oct 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plugin Submission
Plugin information
acedatacloud)acedatacloud)Submission type
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/completionsendpoint, 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/modelswithout 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
User prompts, enabled image inputs, tool definitions/results and the API key are transmitted to the fixed Ace Data Cloud HTTPS API.
Required checks
.envfiles,.gitdirectories, virtual environments, caches, logs, or IDE files.PRIVACY.mdor a hosted privacy policy, andmanifest.yamlreferences it.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
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.python -m main) answered a stdioget_ai_model_schemasrequest 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.dify-marketplace-toolkit/validator/validate-difypkg.pywith this PR body: zero blocking failures. See warnings explained below.gpt-4.1-minithrough the SDK public invoke interface: non-streamDIFY_OK(11 input / 7 output tokens), streaminglookup_valuewith{"key":"alpha"}(56 / 18), and tool-result continuationDIFY_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
acedatacloud/acedatacloud/acedatacloud-0.0.1.difypkg.7a868d7e26f2af04841cff19b3dbe6f97fc39bff4f160571341f504df9a16e3e.readme/README_zh_Hans.mdexplain credential setup, Start → LLM → Output, capabilities and usage readback.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
invoke_llmrequest:DIFY_PACKAGE_OK, 12 prompt / 8 completion tokens. Read-only platform reconciliation matched a successful usage record and a nonzero Credit deduction.test-plugin-install.pypassed in serverless mode; uploader--testpassed with zero undeclared domains. No Marketplace upload is claimed.gpt-4.1-minicredentials returned HTTP 201 and listed the model as active. A real Start → LLM → Output workflow completed all three nodes and returnedDIFY_CE_20261007_OK(17 prompt / 25 completion / 42 total tokens). Workflow run:5d0fb628-c8ae-4d11-bd04-e1f844868c62.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.