I’ve found coding assistance to be pretty lacklustre myself as well. That said, one area where language models might actually be good is emulating a type system for dynamic languages. Given how good these things are at figuring out general shape of the code, I suspect they could fairly accurately tell you argument and return types for functions. And you could probably get away with a pretty small model if it only targets a specific language.
Dedicated incremental static type checkers for dynamic languages already exist. In particular, Pyright for Python is fantastic and in many ways surpasses the type systems of classic typed languages
I’m not too familiar with tooling for Python, but my experience is that you get fairly limited support in dynamic languages unless you start adding hints. Ultimately, a static type checker can’t resolve information that’s not there.