> use specific API endpoints that the user gives it
Functional calling exists - https://platform.openai.com/docs/guides/function-calling.
Although I have played with it and it doesn't seem that polished (doesn't wanna call my function!) but it is there.