AI / LangGraph LangChain Interview questions
How do you implement streaming in LangChain?
Streaming in LangChain means receiving model output token-by-token rather than waiting for the full response. This dramatically improves perceived responsiveness in user-facing applications. LCEL chains support streaming out of the box through three methods: stream(), astream(), and astream_events().
Synchronous streaming — iterates over chunks as they arrive:
from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser chain = ChatPromptTemplate.from_template("{topic}") | ChatOpenAI() | StrOutputParser() for chunk in chain.stream({"topic": "Explain quantum entanglement briefly"}): print(chunk, end="", flush=True)
Async streaming — for FastAPI / async servers:
async for chunk in chain.astream({"topic": "..."}): print(chunk, end="", flush=True)
Fine-grained event streaming — astream_events() gives you granular events for every component in the chain (tool calls, retriever results, LLM tokens), letting you build rich streaming UIs that show intermediate steps:
async for event in chain.astream_events({"topic": "..."}, version="v2"): if event["event"] == "on_chat_model_stream": print(event["data"]["chunk"].content, end="")
More Related questions...