Dify sources models through provider plugins. Install the OpenAI-API-compatible plugin from the Marketplace, add it as a customizable model, and every Dify app — chat, workflow, agent — can call your DaoXE catalogue (cheapest APIs guide). Because each model is declared individually, the per-model fields are where the real setup happens.
Why route Dify through DaoXE#
- Apps inherit the model. One workspace-wide provider serves chatflows, workflows and Agent nodes.
- Per-model capability switches. Context size, function-call type and vision are declared per model — so apps know what they can do.
- Self-hosted or Cloud. Both take the same provider and the same endpoint.
Set it up in Dify#
- Install the provider. Integrations → Model Provider (or the Marketplace), install OpenAI-API-compatible.
- Add the model. On the provider card click Add Model. Model Name must be an exact ID from
GET /v1/models; Model Type = LLM. - Set the API Base URL. For LLM models enter
https://daoxe.com/v1. For embedding/rerank types leave the/v1off — the plugin appends it internally and a full URL yields a doubled path. - Fill the capability fields. API Key = your DaoXE key; Completion mode = Chat; Model context size = the model's real window; Upper bound for max tokens = a sane cap; Function Call Type = Tool Call when the model supports it; Vision Support per the model.
Caveats worth knowing
The /v1 rule depends on model type: the plugin's own docs use a /v1-ending base URL for LLM models but a bare host for embedding/rerank/STT/TTS, because those paths are appended internally — the wrong choice produces a doubled path and 404s. Function Call Type defaults to Not Support: leave it and Agent nodes will never call tools — set Tool Call (and the tool-call stream field) for models that actually do it. Context size defaults to 4096: a window far smaller than the model's real one silently truncates long prompts. Agent needs native tool calling: Dify's own troubleshooting notes that OpenAI-compatible endpoints often lack full tool support — pick the model accordingly. Token parameter name: some newer models expect max_completion_tokens; if auto-detection guesses wrong, set it explicitly. More clients: client setup notes.
Verify you actually get the model#
Prove the endpoint works before blaming the client — if this fails, no setting will fix it:
export DAOXE_API_KEY="your_api_key"
# List the exact model IDs your account can call
curl --fail-with-body --show-error --silent \
https://daoxe.com/v1/models \
-H "Authorization: Bearer ${DAOXE_API_KEY}"Test the provider with one app before wiring workflows, then diff a hard prompt against the official API at temperature 0:
curl --fail-with-body --show-error --silent \
https://daoxe.com/v1/chat/completions \
-H "Authorization: Bearer ${DAOXE_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_EXACT_MODEL_ID",
"max_tokens": 64,
"messages": [{"role": "user", "content": "Say hello in one sentence."}]
}'Verify us — don't trust us
Point the open benchmark at DaoXE and at the official API and compare at temperature 0. Then learn to detect model swapping so a cheaper endpoint can't quietly swap you to a smaller model.
Frequently asked questions#
Which Dify provider do I pick?
Install the OpenAI-API-compatible plugin and add DaoXE as a customizable model with an exact model ID, key and API Base URL.
Why does my endpoint 404 on embeddings?
For embedding/rerank/STT/TTS types the plugin appends the version path itself — use the bare host (no /v1) there, and keep /v1 only for LLM models.
Why won't my Agent call tools?
Function Call Type on the model entry defaults to Not Support — set Tool Call, and use a model with real function calling.
What does it cost?
Per-model, account-scoped — live pricing; top-up is a flat 1 RMB = $1 of credit on every payment method.
Try DaoXE — and benchmark it yourself
One key for GPT, Claude, Gemini, DeepSeek and more. Point the open benchmark at us and compare — don't take our word for it.