# पाठ तैयार करना: Chunking, Truncation, Query बनाम Document — Embeddings और Vector Search

Source: https://www.geekswithgeeks.com/hi/embeddings/c-prep

> Embedding से पहले चुपचाप गुणवत्ता हानि से बचें।

## Garbage अंदर, धुँधले vectors बाहर

Embedding गुणवत्ता इस पर बहुत निर्भर है कि आप क्या डालते हैं। लंबे दस्तावेज़ों को सुसंगत टुकड़ों में **chunk** करें (कुछ सौ tokens, headings या अनुच्छेदों पर बाँटकर, थोड़े overlap के साथ): विशाल दस्तावेज़ के लिए एक vector कई विषय धुँधले करता है। मॉडल की **अधिकतम इनपुट लंबाई** मानें, क्योंकि लंबा पाठ आम तौर पर **चुपचाप कट जाता है**। Boilerplate, navigation पाठ और encoding त्रुटियाँ **साफ़** करें। Chunks के आगे शीर्षक या अनुभाग नाम जोड़ें ताकि वे अकेले अर्थपूर्ण हों। कुछ मॉडल **असममित** हैं और **queries** व **documents** के लिए अलग prefixes या निर्देश माँगते हैं (जैसे "query: ..." और "passage: ..."): model card मानें वरना retrieval गुणवत्ता गिरती है। Throughput के लिए requests **batch** करें, ज़रूरी हो तो vectors **normalise** करें, और embeddings **cache** करें ताकि अपरिवर्तित पाठ दो बार embed न हो।

## Query और passage prefixes (उदाहरण)

कुछ retrieval मॉडल भूमिका-चिह्न माँगते हैं; सटीक strings मॉडल-विशिष्ट हैं, इसलिए model card वाली उपयोग करें। यहाँ चलाया नहीं गया।

```python
docs = ["passage: Employees get 24 days of annual leave."]          # document side
query = "query: how many vacation days do I get?"                 # query side

# doc_vectors = model.encode(docs, normalize_embeddings=True, batch_size=64)
# q_vector    = model.encode([query], normalize_embeddings=True)
# scores      = doc_vectors @ q_vector.T          # normalised -> dot == cosine
```

**Quiz:** मॉडल की अधिकतम इनपुट लंबाई से लंबे पाठ का अक्सर क्या होता है?

- [ ] उसका अनुवाद होता है
- [ ] वह पूरी तरह embed होता है
- [x] वह चुपचाप कट जाता है, अंत खो जाता है
- [ ] मॉडल उस पर प्रशिक्षित होता है

*Answer:* वह चुपचाप कट जाता है, अंत खो जाता है. सीमा से नीचे chunk करें ताकि कुछ ज़रूरी न कटे।
