Volcengine Ark
Use Volcengine Ark base and multimodal models in Dify via the Ark API.
Configure
- Create an Ark API Key in Volcengine Console: https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey
- In Dify, go to Settings → Model Provider → Volcengine Ark.
- Fill in the API Key and API Endpoint, then save.
Default endpoint:
Credentials
Models
- Models are listed by Ark model id.
- Volcengine models use IDs such as , , and .
- If a model is visible in Dify but your Ark account has no access, the invocation will fail. Switch to a model you have enabled.
Multimodal Polling
- Seedream image generation returns a terminal polling result from .
- Seedance video generation creates a task from and checks task status from .
- Video task statuses and keep polling; returns the generated video; , , and fail the invocation.
- Generated image URLs are valid for about 24 hours.
- Video tasks can be retrieved for about 7 days from creation.
- Volcengine Seedream and Seedance models expose the switch.
Implementation Relationship
This package is an independent plugin so it can be registered and distributed separately from BytePlus. Its Ark multimodal polling logic intentionally mirrors the BytePlus plugin implementation; provider differences are isolated to the model IDs, default endpoint, platform name, and capability switches such as Volcengine-only .
Troubleshooting
- 401/403: invalid API key, or your account has no permission for the model.
- 404 / invalid URL: must include .
- Model not found: the model id is not enabled for your Ark account.
- Timeout / connection error: ensure your Dify deployment can reach the configured Ark endpoint.
Request metadata
is optional and disabled by default. Turning it on attaches and to each Ark request as a field in the request body, so usage can be attributed to a specific Dify app. The injection happens via the kwarg on ; the Ark API is OpenAI-compatible and silently ignores unknown body fields, so this is safe whether or not the upstream service consumes the field. The Dify session lookup is best-effort: if the session context is not initialized, no metadata is attached and the request is sent unchanged.