# LlamaIndex Data Model: Documents और Nodes — LangChain / LlamaIndex

Source: https://www.geekswithgeeks.com/hi/langchain-llamaindex/i-model

> समझें कि loaders क्या बनाते हैं और parsers डेटा कैसे split करते हैं।

## Document अंदर, Nodes बाहर

LlamaIndex में **`Document`** डेटा के स्रोत (file, पृष्ठ, database पंक्ति) का पाठ और metadata वाला कंटेनर है। **Data loaders** (कई LlamaHub और integration packages से उपलब्ध) Documents बनाते हैं। `SentenceSplitter` जैसा **node parser** Documents को **`Node`** ऑब्जेक्ट्स (chunks) में बाँटता है जो अपना metadata और स्रोत Document व पड़ोसी nodes से **संबंध** रखते हैं। Nodes वह इकाई हैं जो embed, store और retrieve होती है। Metadata (file नाम, पृष्ठ, तिथि) हर node के साथ चलता है और filtering व citations में काम आता है।

## Files से उत्तरों तक

Documents nodes बनते हैं, nodes index, और query engine उससे उत्तर देता है।

![चार ऑब्जेक्ट: document, node, index, engine।](assets/figures/langchain-llamaindex/section-5-map.svg) — चित्र 5.1 — Document, node, index और engine।

## Nodes में splitting, चलाकर

मैंने यह Python virtual environment में langchain-core 1.6.6, langchain-text-splitters 1.1.2 और llama-index-core 0.14.25 के साथ ऑफ़लाइन चलाया। किसी API key या network call की ज़रूरत नहीं क्योंकि असली मॉडल की जगह fake मॉडल या खिलौना embedding है। `chunk_size=60` के साथ 12-वाक्य का दस्तावेज़ 4-4 वाक्यों के 3 nodes बनता है। हर node अपने स्रोत Document का `file` metadata रखता है।

```python
from llama_index.core import Document
from llama_index.core.node_parser import SentenceSplitter

text = " ".join(f"Sentence {i} explains one idea about indexing data for retrieval." for i in range(1, 13))
doc = Document(text=text, metadata={"file": "notes.txt"})
nodes = SentenceSplitter(chunk_size=60, chunk_overlap=0).get_nodes_from_documents([doc])
for n in nodes:
    sentences = n.get_content().count("Sentence")
    print(n.metadata["file"], "| sentences in node:", sentences, "| first words:", " ".join(n.get_content().split()[:3]))
print("nodes:", len(nodes))

```

Output:

```
notes.txt | sentences in node: 4 | first words: Sentence 1 explains
notes.txt | sentences in node: 4 | first words: Sentence 5 explains
notes.txt | sentences in node: 4 | first words: Sentence 9 explains
nodes: 3
```

**Quiz:** LlamaIndex में Node क्या दर्शाता है?

- [ ] Prompt template
- [ ] Cluster में server
- [ ] GPU core
- [x] Document का chunk, metadata और संबंधों सहित

*Answer:* Document का chunk, metadata और संबंधों सहित. Nodes Documents से बनी retrieve होने वाली इकाइयाँ हैं।
