RAGFlow's pull request #21543, "feat: add CloudGPU as a model provider", was merged into RAGFlow's main branch on 2026-10-27. It adds CloudGPU as a model provider for chat models and image input. This post shows how to use DeepSeek, Kimi, GLM and MiniMax chat models from it.
As of 2026-10-27 the CloudGPU provider is merged into RAGFlow's main branch but is not in any tagged release yet. Until then, use RAGFlow's OpenAI-API-Compatible provider with the base URL https://cloudgpu.app/v1.
Short answer
- If your RAGFlow build includes the merge, pick CloudGPU under User settings > Model providers and paste an API key from the CloudGPU console.
- If you run a tagged release (the CloudGPU provider is not in one yet), use the OpenAI-API-Compatible provider with the base URL
https://cloudgpu.app/v1. - CloudGPU has no embedding models. Embeddings for your knowledge bases must come from somewhere else.
Disclosure: I work on CloudGPU. We have not run RAGFlow end to end against this API ourselves. The steps below follow the PR and RAGFlow's own docs, and anything we could not check is marked as a check for you to run.
What you need
- A RAGFlow install (self-hosted).
- A CloudGPU API key. It starts with
cgw-sk-and is created in the API Console. - An embedding model from another source (see the embeddings section).
For the shell checks, put the key in an environment variable so it stays out of your history and config files:
export CGW_API_KEY="cgw-sk-your-key"
Create an API key
Following the API docs quick start:
- Open the API Console and create a key.
- Copy the
cgw-sk-...value. The docs say it is shown once, so copy it right away and store it somewhere safe. - Use it as
Authorization: Bearer cgw-sk-<your_key>, or paste it into RAGFlow's API Key field as shown below.
The docs also say keys are scoped to your CloudGPU account and can be revoked at any time from the console.
Which models
These IDs are on the CloudGPU API page (checked 2026-10-27) and in the PR's conf/models/cloudgpu.json. The IDs are plain (no organization prefix) and case-sensitive.
| Model ID | Model | Image input (marked in the provider config) |
|---|---|---|
deepseek-v4.1-flash |
DeepSeek V4.1 Flash | yes |
deepseek-v4-flash |
DeepSeek V4 Flash | no |
deepseek-v4-pro |
DeepSeek V4 Pro | no |
kimi-k2.7-code |
Kimi K2.7 Code | yes |
kimi-k2.6 |
Kimi K2.6 | yes |
glm-5.3-flash |
GLM-5.3 Flash | yes |
glm-5.2 |
GLM-5.2 | no |
minimax-m3 |
MiniMax M3 | yes |
These 5 models (deepseek-v4.1-flash, kimi-k2.7-code, kimi-k2.6, glm-5.3-flash, minimax-m3) are marked as supporting image input in the CloudGPU provider config. Send one test image yourself before relying on it.
The PR's config also marks all of these models as tool-capable. Treat that as a hint and test it with your own agent or chat setup.
Option A: the CloudGPU provider (builds that include the merge)
The PR adds a provider named exactly CloudGPU (CloudGPU = 'CloudGPU' in web/src/constants/llm.ts, and "name": "CloudGPU" in conf/llm_factories.json). Its default URL is https://cloudgpu.app/v1, and the API key link in the UI points to the CloudGPU API console. The provider entry is tagged LLM,IMAGE2TEXT.
Following RAGFlow's model provider docs:
- Go to User settings > Model providers. Under Available models, look for CloudGPU.
- Select it and create an instance (the docs ask for an instance name).
- Enter your API Key (the
cgw-sk-...key). Keep the default Base URL,https://cloudgpu.app/v1, if the form shows one. - Verify the connection, add models from the list or as custom models, then store the instance.
- Under default models, set a default LLM from the IDs above.
Reader check: if CloudGPU is not in the list, your build does not include the merge yet. Use Option B. Exact field names can differ between RAGFlow versions; follow the docs for the version you run.
Option B: OpenAI-API-Compatible provider (use this until a tagged release includes CloudGPU)
RAGFlow's docs say that for models not listed, you can click OpenAI-API-Compatible on the Model providers page. This provider is already in RAGFlow's provider list.
- Go to User settings > Model providers and select OpenAI-API-Compatible.
- Create an instance and enter a name.
-
API Key: your
cgw-sk-...key. Base URL:https://cloudgpu.app/v1. RAGFlow's docs warn that an incorrect Base URL makes verification or model calls fail, and to confirm whether the path must include/v1. Here it does. - Verify the connection.
- Add a model with Add custom model:
- Model name: one ID from the table, exactly as written, for example
deepseek-v4.1-flash. The docs say the name must match the ID the provider exposes. - Model type: the chat/LLM type.
- Max tokens: fill in a value that fits your use. CloudGPU does not publish per-model output caps on its API page, so pick your own.
- Tool call: enable it only if you tested tool calling for that model (the docs say not to enable it for models that lack it). Newer docs call this field Tool calling.
- Click Confirm, then check that the model works with a real call.
- Model name: one ID from the table, exactly as written, for example
- Repeat for each ID you want. Then set your default LLM.
For image input in Option B, add the same ID once more and choose the vision-language model type (the docs call it VLM). Only use IDs marked "yes" in the table above. Reader check: the exact type name in the dropdown depends on your version.
Check the key and model ID outside RAGFlow first
Two curl calls take a minute and separate "my key or model ID is wrong" from "my RAGFlow settings are wrong".
# lists the IDs your key can use (without a key this returns HTTP 401 missing_authorization)
curl -s https://cloudgpu.app/v1/models \
-H "Authorization: Bearer $CGW_API_KEY"
# one plain chat request
curl https://cloudgpu.app/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $CGW_API_KEY" \
-d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"Say hi in one sentence."}]}'
You should get a JSON chat completion back. Run it yourself to confirm; we are not quoting an output here.
The same call with the OpenAI Python SDK, since the endpoint is OpenAI-compatible:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://cloudgpu.app/v1",
api_key=os.environ["CGW_API_KEY"],
)
resp = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Say hi in one sentence."}],
)
print(resp.choices[0].message.content)
Embeddings: configure them separately
CloudGPU does not offer embedding models. The PR states this as well ("CloudGPU serves no embedding models, so this adds chat and image input only"), and the API docs say "Embeddings are not available yet."
A RAGFlow knowledge base needs an embedding model to index and retrieve your documents. RAGFlow's docs say that, at minimum, you should set a default LLM and a default embedding model. So:
- Use the embedding option your RAGFlow install already has, or a local embedding model (RAGFlow's docs describe connecting locally deployed models with Ollama or vLLM), or an embedding model from another provider.
- Set that as your default embedding model, and use a CloudGPU model only as the chat model for chats, search and agents.
Reader check: after you set both, create a small knowledge base, parse one document and ask a question in a chat that uses a CloudGPU model. If parsing fails, look at the embedding settings first, not the CloudGPU ones.
Troubleshooting
-
HTTP 401
invalid_api_key: the key is unknown or revoked. Create a new one in the console. -
HTTP 401
missing_authorization: noAuthorization: Bearerheader was sent. -
HTTP 400
model_not_found: the model ID is not in the catalog. Compare it withGET /v1/models; IDs are case-sensitive. -
HTTP 402
insufficient_balance: the account balance is too low for the request. -
HTTP 429
rate_limit_exceeded: the API docs list 100 requests per minute per key and 10,000 requests per day per account for the public beta. Bulk jobs such as parsing many files at once could reach that, so check whether your RAGFlow task makes many calls. -
Verification fails in RAGFlow but curl works: re-check the Base URL (it must end in
/v1, no trailing path), and that no extra spaces were pasted into the API Key field. - CloudGPU is missing from Available models: use Option B.
FAQ
Is CloudGPU in a RAGFlow release?
Not yet. As of 2026-10-27 the provider is merged into RAGFlow's main branch but is not in any tagged release. Until then, use the OpenAI-API-Compatible provider with the base URL https://cloudgpu.app/v1, and check the releases page for later versions.
Can CloudGPU models make my embeddings?
No. Configure embeddings separately, as described above.
Do I need the PR for the base URL route?
No. The OpenAI-API-Compatible provider only needs a base URL, a key and a model ID.
Keys, the model table and the quick start are on the CloudGPU API page.
Top comments (0)