LCEL vs legacy chains: what current LangChain code looks like | Vectle