# मानसिक मॉडल: सब कुछ typed चरणों की Pipeline — LangChain / LlamaIndex

Source: https://www.geekswithgeeks.com/hi/langchain-llamaindex/l-mental

> LLM app को composable चरणों से बहते डेटा के रूप में देखें।

## इनपुट, रूपांतरण, आउटपुट

दोनों frameworks एक ही सोच का पुरस्कार देते हैं: LLM app एक **pipeline** है जहाँ हर चरण एक मान लेता है और एक मान लौटाता है। Prompt template dict को messages बनाता है; मॉडल messages को message बनाता है; parser message को Python ऑब्जेक्ट बनाता है; retriever query को documents बनाता है; tool arguments को परिणाम बनाता है। हर चरण का **इनपुट और आउटपुट type** पता हो तो आप हिस्से बदल सकते हैं, उन्हें अलग से (fakes के साथ) परख सकते हैं और ठीक देख सकते हैं कि bug कहाँ है। दुष्प्रभाव (ईमेल भेजना, database में लिखना) स्पष्ट रूप से चिह्नित चरणों में रखें जिन्हें स्वीकृत या बंद किया जा सके।

## Pipeline दृश्य

कोष्ठकों में types दिखाते हैं कि चरणों के बीच क्या बहता है।

```text
{question: str} -> [prompt] -> messages -> [model] -> AIMessage -> [parser] -> str / object

retrieval:  str -> [retriever] -> list[Document] -> [format] -> str -> (into the prompt)
tools:      AIMessage(tool_call) -> [tool] -> ToolMessage -> back to the model
```

**Quiz:** हर चरण के इनपुट और आउटपुट types के बारे में क्यों सोचें?

- [ ] इससे मॉडल छोटा होता है
- [x] इससे आप चरण स्वतंत्र रूप से बदल, परख और debug कर सकते हैं
- [ ] इससे prompts की ज़रूरत हटती है
- [ ] इससे GPU तेज़ होता है

*Answer:* इससे आप चरण स्वतंत्र रूप से बदल, परख और debug कर सकते हैं. स्पष्ट interfaces pipelines को modular और परखने योग्य बनाते हैं।
