Building Scalable End-to-End LLM Applications with LangChain