> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-hi/ai/dify.md).

# Dify.ai वर्कफ़्लो प्लेटफ़ॉर्म

Clore.ai पर Dify.ai डिप्लॉय करें — GPU क्लाउड कीमतों पर विज़ुअल इंटरफ़ेस के साथ प्रोडक्शन-रेडी AI वर्कफ़्लो, RAG पाइपलाइन, और एजेंट एप्लिकेशन बनाएँ।

## अवलोकन

[Dify.ai](https://github.com/langgenius/dify) एक ओपन-सोर्स LLM एप्लिकेशन विकास प्लेटफ़ॉर्म है, जिसमें **114K+ GitHub स्टार्स**यह एक विज़ुअल वर्कफ़्लो बिल्डर, retrieval-augmented generation (RAG) पाइपलाइन, एजेंट ऑर्केस्ट्रेशन, मॉडल प्रबंधन, और एक-क्लिक API परिनियोजन परत को एक ही स्व-होस्ट करने योग्य स्टैक में जोड़ता है.

पर **Clore.ai** आप पूरा Dify स्टैक चला सकते हैं — जिसमें इसका Postgres डेटाबेस, Redis कैश, Weaviate वेक्टर स्टोर, Nginx रिवर्स प्रॉक्सी, API वर्कर्स, और वेब फ्रंटएंड शामिल हैं — किसी किराए के GPU सर्वर पर इतने कम में **$0.07–0.21/hr** (RTX 3090/4090). GPU स्वयं Dify के लिए वैकल्पिक है, लेकिन जब आप Ollama या vLLM बैकएंड के माध्यम से स्थानीय मॉडल इनफ़रेंस को एकीकृत करते हैं, तब यह अनिवार्य हो जाता है.

**मुख्य क्षमताएँ:**

* 🔄 **विज़ुअल वर्कफ़्लो बिल्डर** — branching, loops, और conditional logic के साथ ड्रैग-एंड-ड्रॉप LLM पाइपलाइन
* 📚 **RAG पाइपलाइन** — PDFs, URLs, Notion पेज अपलोड करें; chunking + embedding + retrieval सब UI में प्रबंधित
* 🤖 **एजेंट मोड** — टूल उपयोग (web search, code interpreter, custom APIs) के साथ ReAct और function-calling एजेंट
* 🚀 **API-first** — हर ऐप तुरंत एक REST endpoint और SDK snippets उत्पन्न करता है
* 🔌 **100+ मॉडल एकीकरण** — OpenAI, Anthropic, Mistral, Cohere, साथ ही Ollama/vLLM के माध्यम से स्थानीय मॉडल
* 🏢 **मल्टी-टेनेंट** — टीमें, वर्कस्पेस, RBAC, उपयोग कोटा

***

## आवश्यकताएँ

{% hint style="warning" %}
**Clore.ai marketplace पर multi-GPU 80GB-class rigs सूचीबद्ध नहीं हैं।** आज सूचीबद्ध सबसे बड़े boxes 4× RTX PRO 6000 Blackwell (प्रत्येक 96GB, कुल 380GB) और 8–11× RTX 5090 (प्रत्येक 32GB) हैं। A100 / H200 / B200 क्षमता [bare metal](https://clore.ai/bare-metal) के रूप में अनुरोध पर बेची जाती है। देखें [GPU मूल्य और उपलब्धता](/guides/guides_v2-hi/getting-started/pricing.md) किसी deployment का आकार तय करने से पहले।
{% endhint %}

Dify एक multi-container Docker Compose stack के रूप में चलता है. विकास के लिए न्यूनतम व्यवहार्य सर्वर एक केवल-CPU instance है; उत्पादन में स्थानीय मॉडल इनफ़रेंस के लिए आपको GPU node चाहिए होगा.

| कॉन्फ़िगरेशन                    | GPU             | VRAM  | System RAM | डिस्क  | Clore.ai मूल्य                            |
| ------------------------------- | --------------- | ----- | ---------- | ------ | ----------------------------------------- |
| **न्यूनतम** (केवल API कुंजियाँ) | कोई नहीं / CPU  | —     | 8 GB       | 30 GB  | \~$0.05/घंटा (CPU)                        |
| **मानक**                        | RTX 3080        | 10 GB | 16 GB      | 50 GB  | $0.05–0.19/घंटा                           |
| **अनुशंसित**                    | RTX 3090 / 4090 | 24 GB | 32 GB      | 80 GB  | $0.07–0.21/hr                             |
| **उत्पादन + स्थानीय LLM**       | A100 80 GB      | 80 GB | 64 GB      | 200 GB | [bare metal](https://clore.ai/bare-metal) |
| **उच्च थ्रूपुट**                | H100 SXM        | 80 GB | 128 GB     | 500 GB | \~$1.04/घंटा                              |

> **सुझाव:** यदि आप केवल cloud API providers (OpenAI, Anthropic, आदि) का उपयोग करते हैं, तो कोई भी 2-core CPU instance जिसके पास 8 GB RAM हो, काम करेगा. GPU केवल तब महत्वपूर्ण है जब आप Ollama या vLLM के माध्यम से स्थानीय मॉडल चलाते हैं — नीचे देखें [GPU त्वरण](#gpu-acceleration) नीचे.

### डिस्क नोट

दस्तावेज़ अपलोड के साथ Weaviate और Postgres डेटा तेज़ी से बढ़ते हैं. कम-से-कम **50 GB** प्रावधान करें और Clore.ai के volume विकल्पों के माध्यम से persistent storage माउंट करें.

***

## त्वरित शुरुआत

### 1. Clore.ai सर्वर किराए पर लें

ब्राउज़ करें [clore.ai](https://clore.ai), अपने इच्छित GPU के अनुसार फ़िल्टर करें, और इस कॉन्फ़िगरेशन वाला सर्वर तैनात करें:

* **Docker** पहले से स्थापित (सभी Clore images में यह शामिल है)
* खुले पोर्ट **80** और **443** (यदि आवश्यक हो, offer settings में कस्टम पोर्ट जोड़ें)
* SSH एक्सेस सक्षम

### 2. सर्वर से कनेक्ट करें और तैयार करें

```bash
# अपने Clore सर्वर में SSH करें
ssh root@<clore-server-ip> -p <ssh-port>

# सिस्टम पैकेज अपडेट करें
apt-get update && apt-get upgrade -y

# सत्यापित करें कि Docker उपलब्ध है
docker --version
docker compose version   # v2.x होना चाहिए
```

### 3. Dify को क्लोन करें और लॉन्च करें

```bash
# रिपॉज़िटरी क्लोन करें
git clone https://github.com/langgenius/dify.git
cd dify/docker

# उदाहरण environment फ़ाइल कॉपी करें
cp .env.example .env

# (वैकल्पिक) लॉन्च से पहले सेटिंग्स संपादित करें
nano .env

# सभी images खींचें और सभी सेवाएँ बैकग्राउंड में शुरू करें
docker compose up -d

# स्टार्टअप के दौरान लॉग देखें (पहली बार 2-3 मिनट लगते हैं)
docker compose logs -f
```

### 4. सत्यापित करें कि सभी सेवाएँ स्वस्थ हैं

```bash
# कंटेनर स्थिति जाँचें
docker compose ps

# अपेक्षित आउटपुट:
# नाम                    स्थिति
# docker-api-1            चालू (स्वस्थ)
# docker-web-1            चालू (स्वस्थ)
# docker-worker-1         चालू (स्वस्थ)
# docker-nginx-1          चालू
# docker-db-1             चालू (स्वस्थ)
# docker-redis-1          चालू (स्वस्थ)
# docker-weaviate-1       चालू (स्वस्थ)
# docker-sandbox-1        चालू (स्वस्थ)
```

### 5. वेब UI तक पहुँचें

अपना ब्राउज़र खोलें और यहाँ जाएँ:

```
http://<clore-server-ip>:80
```

पहली बार लॉन्च पर, Dify आपको एडमिन खाता बनाने के लिए सेटअप विज़ार्ड पर रीडायरेक्ट करेगा. विज़ार्ड पूरा करें, फिर लॉग इन करें.

***

## कॉन्फ़िगरेशन

सारा कॉन्फ़िगरेशन यहाँ होता है `dify/docker/.env`. यहाँ सबसे महत्वपूर्ण सेटिंग्स हैं:

### आवश्यक environment variables

```bash
# ── Secret Keys (इन्हें बदलें) ──────────────────────────────────────────────
SECRET_KEY=your-super-secret-key-change-this-immediately
# एक मजबूत key बनाएं:
# python3 -c "import secrets; print(secrets.token_hex(32))"

# ── Application URL ──────────────────────────────────────────────────────────
# अपने सर्वर के public IP या domain पर सेट करें
CONSOLE_WEB_URL=http://<clore-server-ip>
APP_WEB_URL=http://<clore-server-ip>

# ── Database (Postgres) ─────────────────────────────────────────────────────
DB_USERNAME=postgres
DB_PASSWORD=difyai123456          # उत्पादन में बदलें!
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify

# ── Redis ───────────────────────────────────────────────────────────────────
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=difyai123456       # उत्पादन में बदलें!

# ── Storage (डिफ़ॉल्ट रूप से local disk) ─────────────────────────────────────────
STORAGE_TYPE=local
# या S3-संगत storage का उपयोग करें:
# STORAGE_TYPE=s3
# S3_ENDPOINT=https://s3.amazonaws.com
# S3_BUCKET_NAME=your-dify-bucket
# S3_ACCESS_KEY=...
# S3_SECRET_KEY=...

# ── Default LLM provider ─────────────────────────────────────────────────────
# लॉगिन के बाद UI में सेट करें, या यहाँ पहले से कॉन्फ़िगर करें:
# OPENAI_API_KEY=sk-...
```

### खुले पोर्ट को बदलना

डिफ़ॉल्ट रूप से Nginx पोर्ट **80**. पर सुनता है. इसे बदलने के लिए:

```bash
# docker-compose.yaml में nginx service संपादित करें:
# ports:
#   - "8080:80"   ← 8080 को अपनी पसंदीदा host port से बदलें

# फिर restart करें:
docker compose down && docker compose up -d
```

### स्थायी डेटा वॉल्यूम

Dify की Compose file डिफ़ॉल्ट रूप से इन volumes को माउंट करती है:

```yaml
volumes:
  oradata:          # Postgres data
  redis_data:       # Redis AOF
  weaviate_data:    # वेक्टर स्टोर
  app_storage:      # अपलोड किए गए दस्तावेज़ और जनरेट की गई फ़ाइलें
```

बैकअप के लिए:

```bash
# पहले सेवाएँ रोकें, फिर Docker volumes को tar करें
docker compose stop
docker run --rm \\
  -v docker_oradata:/data \\
  -v $(pwd)/backups:/backup \\
  alpine tar czf /backup/postgres-$(date +%Y%m%d).tar.gz /data
docker compose start
```

***

## GPU त्वरण

Dify का मुख्य प्लेटफ़ॉर्म CPU-आधारित है, लेकिन आप स्थानीय मॉडल इनफ़रेंस को एकीकृत करके सक्षम करते हैं **Ollama** या **vLLM** को model providers के रूप में — दोनों को GPU से बहुत लाभ होता है.

### विकल्प A: Ollama sidecar (सबसे आसान)

Ollama को उसी Clore सर्वर पर Dify के साथ चलाएँ:

```bash
# Ollama इंस्टॉल करें
curl -fsSL https://ollama.com/install.sh | sh

# एक मॉडल पुल करें (जैसे Llama 3 8B)
ollama pull llama3:8b

# जाँचें कि GPU का उपयोग हो रहा है
ollama run llama3:8b "Hello!"
nvidia-smi   # दिखना चाहिए कि ollama process VRAM का उपयोग कर रहा है
```

फिर Dify UI → **Settings → Model Providers → Ollama**:

* Base URL: `http://localhost:11434`
* अपने मॉडल का चयन करें और सहेजें

> पूर्ण Ollama गाइड के लिए, देखें [language-models/ollama.md](/guides/guides_v2-hi/language-models/ollama.md).

### विकल्प B: vLLM sidecar (उच्च थ्रूपुट)

```bash
# GPU passthrough के साथ vLLM को एक अलग container के रूप में चलाएँ
docker run -d \\
  --name vllm \
  --gpus all \\
  --runtime nvidia \\
  -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \\
  -e HUGGING_FACE_HUB_TOKEN=<your-hf-token> \\
  vllm/vllm-openai:latest \
  --model mistralai/Mistral-7B-Instruct-v0.2 \\
  --dtype auto \\
  --max-model-len 4096

# endpoint सत्यापित करें
curl http://localhost:8000/v1/models
```

फिर Dify UI → **Settings → Model Providers → OpenAI-compatible**:

* Base URL: `http://localhost:8000/v1`
* API Key: `dummy`
* Model name: `mistralai/Mistral-7B-Instruct-v0.2`

> पूर्ण vLLM setup के लिए, देखें [language-models/vllm.md](/guides/guides_v2-hi/language-models/vllm.md).

### स्थानीय मॉडलों के लिए GPU मेमोरी अनुशंसाएँ

| मॉडल               | आवश्यक VRAM | अनुशंसित Clore GPU |
| ------------------ | ----------- | ------------------ |
| Llama 3 8B (Q4)    | 6 GB        | RTX 3060           |
| Llama 3 8B (FP16)  | 16 GB       | RTX 3090 / 4090    |
| Mistral 7B (Q4)    | 5 GB        | RTX 3060           |
| Llama 3 70B (Q4)   | 40 GB       | A100 40GB          |
| Llama 3 70B (FP16) | 140 GB      | 2× H100            |

***

## टिप्स और सर्वोत्तम प्रथाएँ

### Clore.ai पर लागत अनुकूलन

```bash
# spot pricing का उपयोग करें — Dify के databases volumes में state बनाए रखते हैं
# इसलिए आप instance को सस्ते में रोक/पुनः शुरू कर सकते हैं

# अपने Clore instance को रोकने से पहले, DB dump करें:
docker exec docker-db-1 pg_dump -U postgres dify > dify_backup_$(date +%Y%m%d).sql

# ट्रांसफ़र के लिए storage volume को संपीड़ित करें
tar czf dify_storage_$(date +%Y%m%d).tar.gz \\
  $(docker volume inspect docker_app_storage --format '{{.Mountpoint}}')
```

### Caddy के साथ HTTPS सक्षम करें (production के लिए अनुशंसित)

```bash
# docker-compose.yaml में Caddy जोड़ें या standalone चलाएँ
docker run -d \\
  --name caddy \\
  --network docker_default \\
  -p 443:443 -p 80:80 \\
  -v $PWD/Caddyfile:/etc/caddy/Caddyfile \\
  -v caddy_data:/data \\
  caddy:latest

# Caddyfile की सामग्री:
# your-domain.com {
#     reverse_proxy nginx:80
# }
```

### भारी workloads के लिए workers बढ़ाएँ

```bash
# 1 के बजाय 4 celery workers चलाएँ
docker compose up -d --scale worker=4
```

### संसाधन उपयोग मॉनिटर करें

```bash
# लाइव container stats
docker stats

# GPU उपयोग (यदि स्थानीय मॉडल उपयोग कर रहे हैं)
watch -n1 nvidia-smi

# Dify application logs
docker compose logs -f api worker
```

### RAG प्रदर्शन ट्यूनिंग

* सेट करें **chunk size** को अधिकांश दस्तावेज़ प्रकारों के लिए 512–1024 tokens तक
* सक्रिय करें **parent-child retrieval** लंबे दस्तावेज़ों के लिए Dataset settings में
* उपयोग करें **hybrid search** (keyword + vector) तकनीकी सामग्री पर बेहतर recall के लिए
* API rate limits से बचने के लिए कम-व्यस्त घंटों में दस्तावेज़ index करें

***

## समस्या निवारण

### सेवाएँ बार-बार पुनः प्रारंभ हो रही हैं

```bash
# विफल हो रही सेवा के लिए logs देखें
docker compose logs --tail=50 api
docker compose logs --tail=50 worker

# सामान्य कारण: गलत SECRET_KEY या DB connection
# सुनिश्चित करें कि .env SECRET_KEY सेट है और अद्वितीय है
grep SECRET_KEY .env
```

### "स्टार्टअप पर Migration failed"

```bash
# DB migrations मैन्युअली चलाएँ
docker compose exec api flask db upgrade

# यदि वह विफल हो, तो पहले जाँचें कि Postgres स्वस्थ है
docker compose exec db pg_isready -U postgres
```

### Dify से Ollama से कनेक्ट नहीं हो पा रहा

```bash
# डिफ़ॉल्ट रूप से Ollama 127.0.0.1 पर bind होता है
# इसे सभी interfaces पर सुनने के लिए बदलें:
OLLAMA_HOST=0.0.0.0 ollama serve

# या systemd service संपादित करें:
systemctl edit ollama
# [Service] के अंतर्गत जोड़ें:
# Environment="OLLAMA_HOST=0.0.0.0"
systemctl restart ollama

# Dify container के भीतर से परीक्षण करें:
docker compose exec api curl http://host.docker.internal:11434/api/tags
```

### डिस्क स्थान समाप्त

```bash
# volume sizes जाँचें
df -h
docker system df

# अप्रयुक्त images हटाएँ
docker image prune -a

# Weaviate logs बड़े हो सकते हैं — उन्हें rotate करें
docker compose exec weaviate truncate -s 0 /tmp/weaviate.log
```

### Weaviate vector store त्रुटियाँ

```bash
# Weaviate रीसेट करें (चेतावनी: सभी embeddings मिट जाते हैं, पुनः indexing आवश्यक है)
docker compose stop weaviate
docker volume rm docker_weaviate_data
docker compose up -d weaviate

# फिर Dify UI → Datasets → [dataset] → Re-index में अपने datasets फिर से index करें
```

### Port 80 पहले से उपयोग में है

```bash
# देखें कि port 80 का उपयोग कौन कर रहा है
ss -tlnp | grep :80
# या
lsof -i :80

# टकरा रही service रोकें या docker-compose.yaml में Dify के nginx port को बदलें
```

***

## अधिक पढ़ें

* [Dify की आधिकारिक प्रलेखन](https://docs.dify.ai)
* [Dify GitHub रिपॉज़िटरी](https://github.com/langgenius/dify)
* [Dify self-hosting गाइड](https://docs.dify.ai/getting-started/install-self-hosted/docker-compose)
* [Clore.ai पर Ollama चलाना](/guides/guides_v2-hi/language-models/ollama.md)
* [Clore.ai पर vLLM चलाना](/guides/guides_v2-hi/language-models/vllm.md)
* [Clore.ai GPU तुलना](/guides/guides_v2-hi/getting-started/gpu-comparison.md)
* [Dify Community Discord](https://discord.gg/FngNHpbcY7)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-hi/ai/dify.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
