Ukrainian forces have managed to blunt Russia's offensive in and around the embattled eastern city of Bakhmut, where the situation is stabilising, commander in chief General Valery Zaluzhniy said on Saturday.

Separately, Britain's defence ministry said the months-long Russian assault on the city had stalled, mainly as a result of heavy troop losses.

Military experts say there are clear signs Russia is running short of equipment, particularly heavy tanks.

President Vladimir Putin told state television that Russia planned to build and upgrade a total of 1,600 tanks over the next three years, well above the 440 he said Western nations would supply Ukraine over the same period.

Bakhmut is a major Russian target as it bids to fully capture Ukraine's industrialised Donbas region. At one point Russian commanders expressed confidence the city would fall soon but such claims have tailed off amid heavy fighting.

"The Bakhmut direction is the most difficult. Thanks to the titanic efforts of the defence forces, the situation is being stabilised," Zaluzhniy said in a post on Telegram after a conversation with British counterpart Tony Radakin.

Russian attacks in and around Bakhmut have dropped to fewer than 20 a day compared with 30 or more in recent days, the Novoe Vremia online news outlet cited Ukrainian military spokesperson Serhiy Cherevaty as saying.

As well as promising more tanks Putin also reiterated his criticism of British plans to supply Ukraine with battle tank ammunition that contained depleted uranium.

"Russia has, of course, something to respond with. We have, without exaggeration, hundreds of thousands, yes hundreds of thousands of such shells. We have not used them yet," he said.

Pro-Moscow forces are also attacking positions farther south at Avdiivka on the outskirts of the Russian-held city of Donetsk, as well as farther north, at Svatove.

The British defence ministry, in a daily update, said Russia most likely wanted to stabilise its front lines and would adopt a more defensive operational stance.

The general staff of the Ukrainian armed forces said in a Facebook post that Russian attacks in and around Avdiivka had been repelled on Saturday, but gave few details.

(Reporting by David Ljunggren in Ottawa Editing by Daniel Wallis and Matthew Lewis)