Intuitively this sounds like something that should be possible using almost any llm. This should be just a matter of prompting.