# Milvus

> **एआई अनुप्रयोगों के लिए सबसे अधिक स्केलेबल ओपन-सोर्स वेक्टर डेटाबेस — अरबों वेक्टर के लिए बनाया गया**

Milvus एक ओपन-सोर्स वेक्टर डेटाबेस है जो स्केलेबल समानता खोज और एआई अनुप्रयोगों के लिए विशेष रूप से बनाया गया है। मूल रूप से Zilliz द्वारा निर्मित और LF AI & Data Foundation को दान किया गया, Milvus NVIDIA, AT\&T, IBM और Salesforce सहित कंपनियों में उत्पादन एआई कार्यभार को शक्ति देता है। जब आपको अरबों वेक्टर पर स्केल करने की आवश्यकता हो तो यह पसंदीदा विकल्प है।

**GitHub:** [milvus-io/milvus](https://github.com/milvus-io/milvus) — 32K+ ⭐

***

## Milvus बनाम Qdrant — किसे कब चुनें

| मानदंड                | Qdrant                       | ChromaDB       |
| --------------------- | ---------------------------- | -------------- |
| स्केल                 | अरबों वेक्टर                 | सैकड़ों मिलियन |
| आर्किटेक्चर           | वितरित (कई सर्विसेस)         | सिंगल बाइनरी   |
| सेटअप जटिलता          | अधिक                         | कम             |
| GPU इंडेक्स समर्थन    | ✅ नेटिव GPU FAISS            | सीमित          |
| मल्टी-टेनेन्सी        | ✅ पार्टिशन + उपनाम (aliases) | कलेक्शन-आधारित |
| स्ट्रीमिंग इनजेन्शन   | ✅ Kafka/Pulsar               | सीमित          |
| हाइब्रिड खोज          | ✅ Dense + sparse             | ✅              |
| क्लाउड-मैनेज्ड विकल्प | Zilliz Cloud                 | Qdrant Cloud   |

{% hint style="success" %}
**Milvus तब चुनें जब:** आपको अरबों वेक्टर तक स्केल करना हो, GPU-एक्सेलेरेटेड इंडेक्सिंग (IVF\_FLAT\_GPU) की आवश्यकता हो, या मल्टी-टेनेन्सी, स्ट्रीमिंग इनजेन्शन और भूमिका-आधारित एक्सेस कंट्रोल जैसी एंटरप्राइज़ सुविधाओं की आवश्यकता हो।
{% endhint %}

***

## Milvus आर्किटेक्चर

स्टैंडअलोन मोड (एकल सर्वर) में Milvus में शामिल हैं:

* **milvus** — मुख्य सेवा (प्रॉक्सी, क्वेरी, डेटा, इंडेक्स समन्वयक)
* **etcd** — मेटाडेटा स्टोरेज और सर्विस डिस्कवरी
* **MinIO** — सेगमेंट डेटा के लिए ऑब्जेक्ट स्टोरेज

वितरित मोड (क्लस्टर) में, प्रत्येक कंपोनेंट स्वतंत्र रूप से स्केल करता है।

***

## पूर्व-आवश्यकताएँ

* GPU किराये के साथ Clore.ai खाता
* Docker Compose (आम तौर पर पूर्व-इंस्टॉल्ड)
* बुनियादी Python ज्ञान
* 16GB+ RAM (उत्पादन के लिए 32GB सिफारिश की जाती है)

***

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

1. जाएँ [clore.ai](https://clore.ai) → **मार्केटप्लेस**
2. **सिफारिश की गई GPU:** GPU-एक्सेलेरेटेड इंडेक्सिंग के लिए RTX 4090 या A100
3. **CPU विकल्प:** CPU-आधारित इंडेक्सिंग के लिए कोई भी सर्वर जिसमें 32GB+ RAM हो

**न्यूनतम आवश्यकताएँ:**

* CPU: 8 कोर
* RAM: 16GB (32GB सिफारिश की जाती है)
* डिस्क: 50GB SSD/NVMe
* GPU: वैकल्पिक (केवल GPU इंडेक्स प्रकारों के लिए आवश्यक)

{% hint style="info" %}
**Milvus में GPU इंडेक्स प्रकार** (IVF\_FLAT\_GPU, IVFSQ8\_GPU) CUDA-सक्षम GPU की आवश्यकता होते हैं और बड़े कलेक्शन के लिए इंडेक्स निर्माण को उल्लेखनीय रूप से तेज करते हैं। यदि आप अक्सर 10M+ वेक्टर इंडेक्स करने की योजना बना रहे हैं, तो GPU इंडेक्सिंग जल्दी ही स्वयं का निवेश वापस कर देती है।
{% endhint %}

***

## चरण 2 — Milvus स्टैंडअलोन तैनात करें

**Docker इमेज:**

```
milvusdb/milvus:v2.4.0
```

Milvus स्टैंडअलोन के लिए etcd और MinIO की आवश्यकता होती है। सबसे आसान सेटअप के लिए Docker Compose का उपयोग करें।

**पोर्ट्स:**

```
22
19530
```

* **पोर्ट 19530:** Milvus SDK/gRPC पोर्ट (प्राथमिक)
* **पोर्ट 9091:** Milvus REST API और हेल्थ चेक (आंतरिक)

**पर्यावरण चर:**

```
NVIDIA_VISIBLE_DEVICES=all
NVIDIA_DRIVER_CAPABILITIES=compute,utility
```

***

## चरण 3 — Docker Compose के साथ सेट अप करें

अपने Clore.ai सर्वर में SSH करें और compose फ़ाइल बनाएं:

```bash
ssh root@<server-ip> -p <ssh-port>

# यदि मौजूद न हो तो Docker Compose इंस्टॉल करें
which docker-compose || pip install docker-compose
# या Docker प्लगइन का उपयोग करें:
docker compose version

# प्रोजेक्ट डायरेक्टरी बनाएं
mkdir -p /opt/milvus && cd /opt/milvus

# आधिकारिक Milvus स्टैंडअलोन compose फ़ाइल डाउनलोड करें
wget https://github.com/milvus-io/milvus/releases/download/v2.4.0/milvus-standalone-docker-compose.yml \
    -O docker-compose.yml

# compose फ़ाइल की समीक्षा करें
cat docker-compose.yml
```

### docker-compose.yml को अनुकूलित करें

```yaml
version: '3.5'

services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.5
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_SNAPSHOT_COUNT=50000
    volumes:
      - /opt/milvus/etcd:/etcd
    command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
    healthcheck:
      test: ["CMD", "etcdctl", "endpoint", "health"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2023-03-13T19-46-17Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    ports:
      - "9001:9001"
      - "9000:9000"
    volumes:
      - /opt/milvus/minio:/minio_data
    command: minio server /minio_data --console-address ":9001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.4.0
    command: ["milvus", "run", "standalone"]
    security_opt:
      - seccomp:unconfined
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
    volumes:
      - /opt/milvus/milvus:/var/lib/milvus
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
      interval: 30s
      start_period: 90s
      timeout: 20s
      retries: 3
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]  # GPU एक्सेस सक्षम करें
```

### Milvus शुरू करें

```bash
cd /opt/milvus
docker compose up -d

# सेवाओं के शुरू होने का इंतज़ार करें (~60 सेकंड)
sleep 60

# जाँचें कि सभी सेवाएँ स्वस्थ हैं
docker compose ps

# Milvus स्वास्थ्य जाँचें
curl http://localhost:9091/healthz
# अपेक्षित: {"status":"ok"}

# लॉग देखें
docker compose logs -f standalone --tail 50
```

***

## चरण 4 — Python क्लाइंट इंस्टॉल करें

```bash
pip install pymilvus sentence-transformers numpy tqdm

# कनेक्शन सत्यापित करें
python3 << 'EOF'
from pymilvus import connections, utility

connections.connect("default", host="localhost", port="19530")
print(f"Milvus connected!")
print(f"Version: {utility.get_server_version()}")
EOF
```

***

## चरण 5 — एक कलेक्शन बनाएं

Milvus में, एक **कलेक्शन** एक डेटाबेस तालिका के समान होता है। इसमें वेटर फ़ील्ड्स सहित टाइप किए गए फ़ील्ड के साथ एक स्कीमा होता है।

```python
from pymilvus import (
    connections,
    FieldSchema,
    CollectionSchema,
    DataType,
    Collection,
    utility
)

# कनेक्ट करें
connections.connect("default", host="localhost", port="19530")

# स्कीमा परिभाषित करें
fields = [
    FieldSchema(
        name="id",
        dtype=DataType.INT64,
        is_primary=True,
        auto_id=True           # ऑटो-जनरेट ID
    ),
    FieldSchema(
        name="text",
        dtype=DataType.VARCHAR,
        max_length=2048        # अधिकतम टेक्स्ट लंबाई
    ),
    FieldSchema(
        name="source",
        dtype=DataType.VARCHAR,
        max_length=256
    ),
    FieldSchema(
        name="category",
        dtype=DataType.VARCHAR,
        max_length=128
    ),
    FieldSchema(
        name="year",
        dtype=DataType.INT32
    ),
    FieldSchema(
        name="embedding",
        dtype=DataType.FLOAT_VECTOR,
        dim=384                # आपके एम्बेडिंग मॉडल का डायमेंशन
    )
]

schema = CollectionSchema(
    fields=fields,
    description="Document embeddings for semantic search",
    enable_dynamic_field=True  # स्कीमा में न होने वाले फ़ील्ड जोड़ने की अनुमति दें
)

# कलेक्शन बनाएं
collection_name = "documents"
if utility.has_collection(collection_name):
    utility.drop_collection(collection_name)

collection = Collection(
    name=collection_name,
    schema=schema,
    using="default"
)
print(f"Collection '{collection_name}' created!")
```

***

## चरण 6 — इंडेक्स बनाएं

खोज के लिए डेटा लोड करने से पहले, उपयुक्त इंडेक्स बनाएं:

```python
from pymilvus import Collection

collection = Collection("documents")

# HNSW इंडेक्स (अधिकांश उपयोग मामलों के लिए सर्वश्रेष्ठ, कम लेटेंसी)
hnsw_params = {
    "metric_type": "COSINE",     # COSINE, L2, या IP (Inner Product)
    "index_type": "HNSW",
    "params": {
        "M": 16,                 # HNSW ग्राफ कनेक्टिविटी (8-64)
        "efConstruction": 200    # बिल्ड-टाइम सर्च गहराई
    }
}

# IVF_FLAT इंडेक्स (CPU, बड़े कलेक्शन के लिए अच्छा)
ivf_params = {
    "metric_type": "COSINE",
    "index_type": "IVF_FLAT",
    "params": {
        "nlist": 1024            # क्लस्टर्स की संख्या (डाटा साइज का sqrt सामान्यतः)
    }
}

# GPU_IVF_FLAT इंडेक्स (CUDA GPU की आवश्यकता — बैच प्रश्नों के लिए सबसे तेज)
gpu_ivf_params = {
    "metric_type": "L2",
    "index_type": "GPU_IVF_FLAT",
    "params": {
        "nlist": 1024,
        "cache_dataset_on_device": True
    }
}

# एम्बेडिंग फ़ील्ड पर इंडेक्स बनाएं
collection.create_index(
    field_name="embedding",
    index_params=hnsw_params,
    index_name="embedding_idx"
)

# फ़िल्टर किए गए खोज के लिए स्केलर इंडेक्स बनाएं
collection.create_index(field_name="category", index_name="category_idx")
collection.create_index(field_name="year", index_name="year_idx")

print("Indexes created!")
collection.load()  # खोज के लिए मेमोरी में लोड करें
```

***

## चरण 7 — डेटा डालें

```python
from pymilvus import Collection
from sentence_transformers import SentenceTransformer
import tqdm

collection = Collection("documents")
model = SentenceTransformer("all-MiniLM-L6-v2", device="cuda")

# आपके दस्तावेज़
documents = [
    {
        "text": "Milvus स्केलेबल एआई अनुप्रयोगों के लिए एक ओपन-सोर्स वेक्टर डेटाबेस है.",
        "source": "documentation",
        "category": "database",
        "year": 2024
    },
    {
        "text": "HNSW उच्च रिकॉल के साथ तेज अनुमानित निकटतम पड़ोसी खोज प्रदान करता है.",
        "source": "research",
        "category": "algorithm",
        "year": 2023
    },
    {
        "text": "GPU-एक्सेलेरेटेड इंडेक्सिंग बड़े वेक्टर कलेक्शन के लिए बिल्ड समय को नाटकीय रूप से घटाती है.",
        "source": "blog",
        "category": "performance",
        "year": 2024
    },
    # यहाँ हजारों और दस्तावेज़ जोड़ें
]

def insert_batch(docs: list, batch_size: int = 1000):
    texts = [d["text"] for d in docs]
    
    # GPU-एक्सेलेरेटेड एम्बेडिंग
    embeddings = model.encode(
        texts,
        batch_size=256,
        show_progress_bar=False,
        normalize_embeddings=True
    )
    
    # Milvus में डालें
    data = {
        "text": [d["text"] for d in docs],
        "source": [d["source"] for d in docs],
        "category": [d["category"] for d in docs],
        "year": [d["year"] for d in docs],
        "embedding": embeddings.tolist()
    }
    
    result = collection.insert(data)
    return result.insert_count

# बैचों में डालें
BATCH_SIZE = 1000
total_inserted = 0

for i in range(0, len(documents), BATCH_SIZE):
    batch = documents[i:i + BATCH_SIZE]
    count = insert_batch(batch)
    total_inserted += count
    print(f"Inserted {total_inserted}/{len(documents)} documents")

# यह सुनिश्चित करने के लिए फ्लश करें कि डेटा स्थायी और इंडेक्स किया गया है
collection.flush()
print(f"Total inserted and flushed: {total_inserted}")
```

***

## चरण 8 — खोज और क्वेरी

### मूल सिमेंटिक खोज

```python
from pymilvus import Collection
from sentence_transformers import SentenceTransformer

collection = Collection("documents")
collection.load()

model = SentenceTransformer("all-MiniLM-L6-v2", device="cuda")

def search(query: str, top_k: int = 10):
    query_embedding = model.encode(
        [query],
        normalize_embeddings=True
    )[0].tolist()
    
    results = collection.search(
        data=[query_embedding],
        anns_field="embedding",
        param={
            "metric_type": "COSINE",
            "params": {"ef": 64}    # HNSW सर्च-टाइम पैरामीटर (ef >= top_k)
        },
        limit=top_k,
        output_fields=["text", "source", "category", "year"]
    )
    
    return results[0]

# खोज
hits = search("how does vector similarity search work")
for hit in hits:
    print(f"Score: {hit.score:.4f}")
    print(f"Text: {hit.entity.get('text')[:100]}")
    print(f"Source: {hit.entity.get('source')}")
    print()
```

### फ़िल्टर की गई खोज

```python
from pymilvus import Collection

collection = Collection("documents")

# मेटाडेटा फ़िल्टर (बूलियन अभिव्यक्ति) के साथ खोज
results = collection.search(
    data=[query_embedding],
    anns_field="embedding",
    param={"metric_type": "COSINE", "params": {"ef": 64}},
    limit=10,
    expr='category == "database" and year >= 2023',  # बूलियन फ़िल्टर
    output_fields=["text", "category", "year"]
)
```

### हाइब्रिड खोज (Dense + Sparse)

```python
# Milvus 2.4+ हाइब्रिड dense+sparse खोज का समर्थन करता है
from pymilvus import AnnSearchRequest, WeightedRanker, Collection

collection = Collection("documents")

# Dense खोज अनुरोध
dense_req = AnnSearchRequest(
    data=[dense_embedding],
    anns_field="embedding",
    param={"metric_type": "COSINE", "params": {"ef": 64}},
    limit=20
)

# Sparse खोज अनुरोध (sparse वेक्टर फ़ील्ड की आवश्यकता)
sparse_req = AnnSearchRequest(
    data=[sparse_embedding],
    anns_field="sparse_embedding",
    param={"metric_type": "IP"},
    limit=20
)

# Reciprocal Rank Fusion के साथ संयोजन करें
results = collection.hybrid_search(
    [dense_req, sparse_req],
    rerank=WeightedRanker(0.7, 0.3),  # 70% dense, 30% sparse
    limit=10,
    output_fields=["text"]
)
```

***

## चरण 9 — एक RAG सेवा बनाएं

```bash
pip install fastapi uvicorn openai

cat > /workspace/milvus_rag.py << 'EOF'
from fastapi import FastAPI
from pydantic import BaseModel
from pymilvus import Collection, connections
from sentence_transformers import SentenceTransformer
from openai import OpenAI
import os

app = FastAPI(title="Milvus RAG API")

# स्टार्टअप पर इनिशियलाइज़ करें
connections.connect("default", host="localhost", port="19530")
collection = Collection("documents")
collection.load()
embedder = SentenceTransformer("all-MiniLM-L6-v2", device="cuda")
llm = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

class QueryRequest(BaseModel):
    question: str
    n_results: int = 5

@app.get("/health")
async def health():
    return {"status": "ok", "vectors": collection.num_entities}

@app.post("/search")
async def semantic_search(req: QueryRequest):
    embedding = embedder.encode(
        [req.question],
        normalize_embeddings=True
    )[0].tolist()
    
    results = collection.search(
        data=[embedding],
        anns_field="embedding",
        param={"metric_type": "COSINE", "params": {"ef": 64}},
        limit=req.n_results,
        output_fields=["text", "source", "category"]
    )
    
    return {
        "results": [
            {
                "text": hit.entity.get("text"),
                "source": hit.entity.get("source"),
                "score": hit.score
            }
            for hit in results[0]
        ]
    }

@app.post("/rag")
async def rag(req: QueryRequest):
    embedding = embedder.encode([req.question], normalize_embeddings=True)[0].tolist()
    
    hits = collection.search(
        data=[embedding],
        anns_field="embedding",
        param={"metric_type": "COSINE", "params": {"ef": 64}},
        limit=req.n_results,
        output_fields=["text", "source"]
    )[0]
    
    context = "\n\n".join([
        f"[{hit.entity.get('source')}]: {hit.entity.get('text')}"
        for hit in hits if hit.score > 0.4
    ])
    
    response = llm.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "system", "content": "Answer based on context. Be concise."},
            {"role": "user", "content": f"Context:\n{context}\n\nQuestion: {req.question}"}
        ]
    )
    
    return {"answer": response.choices[0].message.content, "context_used": len(hits)}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)
EOF

python3 /workspace/milvus_rag.py
```

***

## चरण 10 — मॉनिटर और प्रबंधित करें

```python
from pymilvus import connections, utility, Collection

connections.connect("default", host="localhost", port="19530")

# सभी कलेक्शनों की सूची बनाएं
print("Collections:", utility.list_collections())

# कलेक्शन सांख्यिकी
col = Collection("documents")
print(f"Entity count: {col.num_entities:,}")
print(f"Schema: {col.schema}")

# पार्टिशन प्रबंधन
col.create_partition("2024_docs")
col.create_partition("2023_docs")

# पार्टिशन के साथ डालें
col.insert(data, partition_name="2024_docs")

# विशिष्ट पार्टिशन खोजें
results = col.search(
    data=[query_vec],
    anns_field="embedding",
    param={"metric_type": "COSINE", "params": {"ef": 64}},
    limit=10,
    partition_names=["2024_docs"]  # केवल इस पार्टिशन में खोजें
)
```

***

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

### सर्विसेज़ स्टार्ट नहीं हो रही हैं

```bash
# कंटेनर लॉग्स जाँचें
docker compose logs etcd
docker compose logs minio
docker compose logs standalone

# डिस्क स्पेस जाँचें
df -h /opt/milvus

# सेवाओं को रीस्टार्ट करें
docker compose restart
```

### 19530 पर कनेक्शन अस्वीकृत

```bash
# पुष्टि करें कि Milvus सुन रहा है
netstat -tlnp | grep 19530

# स्वास्थ्य जाँच करें
curl http://localhost:9091/healthz

# स्टार्टअप के लिए समय दें (90 सेकंड)
docker compose logs standalone | tail -20
```

### बड़े कलेक्शन के लिए इंडेक्स बिल्ड टाइमआउट

```python
# बड़े इंडेक्स बिल्ड्स के लिए टाइमआउट बढ़ाएँ
from pymilvus import Collection

collection = Collection("documents")
collection.create_index(
    field_name="embedding",
    index_params=hnsw_params,
    timeout=3600  # 1 घंटे का टाइमआउट
)
```

### उच्च मेमोरी उपयोग

```bash
# docker-compose.yml में Milvus मेमोरी सीमाएँ कॉन्फ़िगर करें
# standalone सर्विस में जोड़ें:
deploy:
  resources:
    limits:
      memory: 16g
```

***

## इंडेक्स प्रकार चयन मार्गदर्शिका

| इंडेक्स प्रकार | माध्य/दिन            | मेमोरी        | गति        | GPU आवश्यक |
| -------------- | -------------------- | ------------- | ---------- | ---------- |
| FLAT           | छोटा (<1M), सटीक खोज | उच्च          | धीमा       | नहीं       |
| IVF\_FLAT      | मध्यम (1M–10M)       | मध्यम         | अच्छा      | नहीं       |
| HNSW           | निम्न लेटेंसी, <100M | उच्च          | अत्युत्तम  | नहीं       |
| IVF\_SQ8       | कम्प्रेस्ड, बड़ा     | कम            | अच्छा      | नहीं       |
| GPU\_IVF\_FLAT | तेज़ बैच प्रश्न      | GPU+RAM       | सबसे अच्छा | हाँ        |
| DISKANN        | अरब-स्तरीय           | निम्न (डिस्क) | अच्छा      | नहीं       |

***

## प्रदर्शन बेंचमार्क्स

| कलेक्शन आकार | इंडेक्स        | GPU      | QPS      |
| ------------ | -------------- | -------- | -------- |
| 1M वेक्टर    | HNSW           | RTX 3090 | \~8,000  |
| 10M वेक्टर   | IVF\_FLAT      | RTX 4090 | \~2,500  |
| 10M वेक्टर   | GPU\_IVF\_FLAT | A100     | \~12,000 |
| 100M वेक्टर  | DISKANN        | A100     | \~1,200  |

***

## अतिरिक्त संसाधन

* [Milvus प्रलेखन](https://milvus.io/docs)
* [Milvus GitHub](https://github.com/milvus-io/milvus)
* [PyMilvus प्रलेखन](https://milvus.io/api-reference/pymilvus/v2.4.x/About.md)
* [Milvus बूटकैंप](https://github.com/milvus-io/bootcamp) — उदाहरण एप्लिकेशन
* [Zilliz Cloud](https://cloud.zilliz.com/) — प्रबंधित Milvus
* [वेक्टर डेटाबेस तुलना](https://milvus.io/docs/benchmark.md)
* [Attu GUI](https://github.com/zilliztech/attu) — Milvus प्रबंधन के लिए वेब UI

***

*Clore.ai पर Milvus उन एआई अनुप्रयोगों के लिए आदर्श समाधान है जिन्हें सैकड़ों मिलियन से आगे स्केल करने की आवश्यकता होती है। GPU-एक्सेलेरेटेड एम्बेडिंग जेनरेशन के साथ संयोजित करके, आप प्रबंधित क्लाउड लागत के एक हिस्से पर विश्व-स्तरीय सेमांटिक सर्च और RAG सिस्टम बना सकते हैं।*

***

## Clore.ai GPU सिफारिशें

| उपयोग केस             | सिफारिश की गई GPU | Clore.ai पर अनुमानित लागत |
| --------------------- | ----------------- | ------------------------- |
| डेवलपमेंट/टेस्टिंग    | RTX 3090 (24GB)   | \~$0.12/gpu/hr            |
| प्रोडक्शन वेक्टर सर्च | RTX 3090 (24GB)   | \~$0.12/gpu/hr            |
| हाई-थ्रूपुट एम्बेडिंग | RTX 4090 (24GB)   | \~$0.70/gpu/hr            |

> 💡 इस गाइड के सभी उदाहरण तैनात किए जा सकते हैं [Clore.ai](https://clore.ai/marketplace) GPU सर्वरों पर। उपलब्ध GPUs ब्राउज़ करें और घंटे के हिसाब से किराए पर लें — कोई प्रतिबद्धता नहीं, पूर्ण रूट एक्सेस।
