This is a great approach but not flexible between LLMs. It should bo more optimal prompt size wise. For function calling, I would use openai Python package directly.
Coder Bible Ill think about a separate article. In the meantime, I've prepared a demo of function calling. Not for data extraction but instead of calling a function you can just take the input and use it in your application.