# Runnables: Lambda, Parallel, Passthrough और Batch — LangChain / LlamaIndex

Source: https://www.geekswithgeeks.com/hi/langchain-llamaindex/c-runnables

> सादे functions लपेटें और चरण साथ-साथ चलाएँ।

## सादा कोड pipeline चरण के रूप में

हर चरण को LLM नहीं चाहिए। **`RunnableLambda`** किसी भी Python function को लपेटता है ताकि वह chain में बैठ सके। **`RunnableParallel`** (या chain के भीतर dict) एक ही इनपुट पर कई runnables चलाकर उनके परिणामों का dict लौटाता है, संदर्भ और सवाल साथ लाने के लिए उपयोगी। **`RunnablePassthrough`** इनपुट को बदले बिना आगे भेजता है, ताकि आप मूल सवाल गणना किए मानों के साथ रख सकें। **`batch`** chain को कई इनपुट पर, जहाँ संभव हो समवर्ती रूप से, चलाता है। पूर्व- और पश्च-प्रसंस्करण के लिए runnables उपयोग करने से आपका तर्क एक chain में दिखता है और trace करना आसान रहता है।

## Lambda, parallel और batch, चलाकर

मैंने यह 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 है। Pipeline पाठ साफ़ करके शब्द गिनता है (3)। Parallel runnable साफ़ पाठ, शब्द-गणना और अछूता मूल एक dict में लौटाता है। `batch` तीन इनपुट सँभालकर [2, 4, 0] लौटाता है।

```python
from langchain_core.runnables import RunnableLambda, RunnablePassthrough, RunnableParallel

clean = RunnableLambda(lambda s: s.strip().lower())
count = RunnableLambda(lambda s: len(s.split()))

pipeline = clean | count
print(pipeline.invoke("  Hello Big WORLD  "))

both = RunnableParallel(text=clean, words=clean | count, original=RunnablePassthrough())
print(both.invoke("  Hello Big WORLD  "))
print(pipeline.batch(["a b", "a b c d", ""]))

```

Output:

```
3
{'text': 'hello big world', 'words': 3, 'original': '  Hello Big WORLD  '}
[2, 4, 0]
```

**Quiz:** RunnableParallel क्या लौटाता है?

- [x] उसी इनपुट पर चली हर शाखा के परिणामों का dict
- [ ] सिर्फ़ पहला परिणाम
- [ ] कुछ नहीं
- [ ] प्रशिक्षित मॉडल

*Answer:* उसी इनपुट पर चली हर शाखा के परिणामों का dict. हर key एक शाखा का आउटपुट रखती है।
