PR content: 1. Moonshot supported function call 2. function call unit tests

related issue: https://github.com/spring-projects/spring-ai/issues/1058

Comment From: tzolov

HI @mxsl-gr and thank you for the update. As we are deprecating AbstractFunctionCallSupport in favor of AbstractToolCallSupport would you be interested to re-work your PR to support AbstractToolCallSupport?

For examples, you can check the OpenAI/AzureOpenAI/Anthropic/Mistral/Ollama/VertexAIGemini function calling implementations, or ask me for support ;) Would appreciate your help as you own those models.

Comment From: mxsl-gr

hi, @tzolov it worked for now, and this PR has been squash and force pushed

Comment From: markpollack

@mxsl-gr thanks, sorry I haven't gotten to merging this yet

Comment From: mxsl-gr

@mxsl-gr thanks, sorry I haven't gotten to merging this yet

hi @markpollack , is ok, i went on a trip and just back now. please let me know if there's anything else to adjust.

other some PRs related to function calls: https://github.com/spring-projects/spring-ai/pull/1116, https://github.com/spring-projects/spring-ai/pull/1163

Comment From: markpollack

I'm merging this despite test failure as this PR has improved the support so significantly. We can circle back to figure out what is going on with the function calling failure in the test. The streaming function calling test did pass in my testing.

Comment From: markpollack

merged in 611c9493e372f96129dd1ada3a0ca82445ba5994