# Callbacks, Tracing और Debugging — LangChain / LlamaIndex

Source: https://www.geekswithgeeks.com/hi/langchain-llamaindex/a-trace

> Chain के हर चरण को देखें।

## Chain के भीतर देखें

उत्तर ग़लत हो तो आपको हर चरण का इनपुट और आउटपुट देखना होता है। **Callbacks** ऐसे handlers हैं जो events (chain शुरू/अंत, मॉडल शुरू/अंत, tool calls, errors) पाते हैं; आप उन्हें किसी भी call के `config` में देते हैं। **LangSmith** (LangChain टीम की hosted tracing और evaluation सेवा) और open-source या अन्य observability tools इन events को traces में जुटाते हैं ताकि आप prompts, latency, token संख्या और विफलताएँ देख सकें। उपयोगी और भी: verbose स्थानीय logs के लिए `set_debug(True)`, और rendered prompt छापना। Production में संवेदनशील डेटा log करने से बचें, या redact करें।

## Custom callback, चलाकर

मैंने यह 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 है। Handler तब events दर्ज करता है जब दो-चरण chain 5 पर चलती है। नतीजा 11 है (5*2 फिर +1) और events बाहरी sequence का शुरू होना, हर भीतरी चरण का शुरू और आउटपुट सहित अंत, फिर sequence का 11 के साथ अंत दिखाते हैं।

```python
from langchain_core.callbacks import BaseCallbackHandler
from langchain_core.runnables import RunnableLambda

class Log(BaseCallbackHandler):
    def __init__(self): self.events = []
    def on_chain_start(self, serialized, inputs, **kw): self.events.append("start")
    def on_chain_end(self, outputs, **kw): self.events.append(f"end:{outputs}")

log = Log()
chain = RunnableLambda(lambda x: x * 2) | RunnableLambda(lambda x: x + 1)
print(chain.invoke(5, config={"callbacks": [log]}))
print(log.events)

```

Output:

```
11
['start', 'start', 'end:10', 'start', 'end:11', 'end:11']
```

**Quiz:** Callbacks क्या पाते हैं?

- [ ] मॉडल weights
- [x] Chain शुरू/अंत, मॉडल calls और errors जैसे events
- [ ] User का password
- [ ] सिर्फ़ GPU temperature

*Answer:* Chain शुरू/अंत, मॉडल calls और errors जैसे events. Callbacks logging और tracing के लिए runs का जीवनचक्र देखते हैं।
