from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser from langchain_core.runnables import RunnableParallel, RunnablePassthrough prompt = ChatPromptTemplate.from_template( "Answer using ONLY this context.\n\n{context}\n\nQuestion: {question}" ) chain = ( RunnableParallel( context=retriever | (lambda docs: "\n\n".join(d.page_content for d in docs)), question=RunnablePassthrough(), # keep the original question ) | prompt | model | StrOutputParser() ) for chunk in chain.stream("What changed in the refund policy?"): print(chunk, end="", flush=True)