Install
openclaw skills install ragflow-workbench-1-0-0-enRAGFlow Workbench — end-to-end RAG platform on Windows: Docker install check, admin bootstrap and API key generation, default model setup (Embedding/Chat/Rerank), knowledge base CRUD, document upload-parse lifecycle, retrieval/search, chat creation. Triggers when the user mentions: RAGFlow installation or deployment, setting up a local RAG instance on Windows, creating a knowledge base, configuring models for RAG, managing documents in datasets, searching across knowledge bases.
openclaw skills install ragflow-workbench-1-0-0-enPrerequisites: This skill requires uv (Python package manager) and docker (container runtime).
Prefer using scripts from scripts/. Use --json by default to ensure structured output for automation.
User-facing output follows references/output-format.md.
Determine the RAGFlow environment readiness from the .env file to avoid redundant checks:
┌─ Check if .env contains a valid RAGFLOW_API_KEY?
│
├─ ✅ Yes (connection established)
│ Skip environment checks, use API directly
│ bootstrap_admin.py / configure_default_models.py do not need re-execution
│ Start from API workflows: datasets.py / upload.py / search.py etc.
│
├─ ❌ No (first-time use)
│ ⚠️ Note: The following steps involve environment detection and privileged operations;
│ you MUST confirm with the user before executing.
│
│ 1. Ask the user for their intent (present these options; add more as context allows):
│ a. "Have you not yet downloaded and installed RAGFlow locally? Would you like me to help you download and install it?"
│ b. "Do you already have a local RAGFlow instance running? Please provide the address and login credentials, or an existing API Key — I will test the connection automatically and let you know the result."
│
│ 2. Execute based on user response:
│ ┌─ User chooses fresh install (a)
│ │ Guide user to download Docker Desktop → deploy RAGFlow → wait for readiness
│ │ Then continue with check → bootstrap → configure workflow
│ │
│ ├─ User provides existing instance info (b1)
│ │ 1. Test connection with provided address/credentials
│ │ 2. Success → write to .env, skip env checks in future sessions
│ │ 3. Failure → report specific error, guide troubleshooting
│ │
│ ├─ User provides existing API Key (b2)
│ │ 1. Test key validity
│ │ 2. Valid → write to .env, skip all bootstrap steps
│ │
│ └─ Other cases → handle flexibly based on actual user response
│
│ 3. Automated execution after confirmation (choose as appropriate):
│ - check_windows_install.py --json Environment check (after fresh install)
│ - bootstrap_admin.py --json Bootstrap + API Key
│ - configure_default_models.py --json Configure default models
│ → .env now contains RAGFLOW_API_KEY; future sessions skip env checks
│
└─ 🚀 Enter API Workflow
How it works: After bootstrap_admin.py succeeds, it writes RAGFLOW_API_URL and RAGFLOW_API_KEY to .env. As long as these values exist and are non-empty, the environment is considered validated and check_windows_install.py and other setup scripts will not be re-run.
check_windows_install.py → bootstrap_admin.py → configure_default_models.py
↓
datasets.py / upload.py / parse.py / parse_status.py
↓
search.py / create_chat.py
uv venv
.\.venv\Scripts\Activate.ps1
copy .env.example .env
uv run python scripts/check_windows_install.py --json
uv run python scripts/bootstrap_admin.py --json
uv run python scripts/configure_default_models.py --json
uv run python scripts/datasets.py create "Sample Knowledge Base" --json
uv run python scripts/upload.py DATASET_ID /path/to/file.pdf --json
uv run python scripts/parse.py DATASET_ID DOC_ID --json
uv run python scripts/parse_status.py DATASET_ID --json
uv run python scripts/search.py "query text" DATASET_ID --json
uv run python scripts/create_chat.py "Chat Name" --dataset-ids DATASET_ID --llm-id qwen2-7b-instruct --json
See references/command-reference.md for all commands and parameters, including:
datasets.py list / info / create / deleteupload.py list / delete + file uploadparse.py / parse_status.py / stop_parse_documents.pysearch.py full retrieval parametersupdate_dataset.py / update_document.pylist_models.py / create_chat.pydataset_id / document_idparse.py when the user requests itparse.py only initiates tasks; progress must be checked via parse_status.pyparse_status.py returns a progress_msg, echo it verbatim; when status is FAIL, treat it as the primary error and guide the user to references/troubleshooting.mdbootstrap_admin.py and configure_default_models.py require Docker containers accessible via docker execreferences/output-format.mdapi_error, error, message and similar fields as-is