Add IBM watsonx.ai support
Comment From: PabloSanchi
This repo shows how to use it, In case it comes in handy: https://github.com/PabloSanchi/IBM-WatsonxAI-Spring-AI-Example
Comment From: tzolov
Hey @PabloSanchi , great contribution! Thanks. I will review it shortly
Comment From: markpollack
Thanks so much for this. Will review and learn more about watstonx.ai!
Comment From: tzolov
Additional pre-merge adjustments applied:
- Rename all WatsonxAIXxx classes to WatsonxAiXxx.
- Rename WatsonxChatClient to WatsonxAiChatClient.
- Move WatsonxAiChatOptions out of the API.
- Implement a Builder for WatsonxAiChatOptions (replace the inline withXxx code).
- Add a WatsonxAiChatOptions field to WatsonxAiChatClient as default options.
Later, it is also set by the auto-configuration properties.
- Implement merging logic for default vs runtime options in WatsonxAiChatClient.
- In Auto-config, add WatsonxAiChatProperties with enabled and options fields.
Options are passed to the client.
- Update the adoc to include the .chat.options properties.
- Add the watsonxai doc to the nav.adoc.
- Fix license headers and javadocs.
- Move dependency versioning to the parent POM.
Then rebased, squashed and merged at 52d15f5dc1acc2a6d884fb0348dc5788971fdea4
Comment From: tzolov
@PabloSanchi thank you again. As you can see from the merge message i did some moderate changes to the code. There are no ITs (because it is a SaaS i guess) and i have not had tried to run in it on the Watsonx platform, there are good chances that my changes have caused issues. Please review them and if possible test on watsonx.ai. Feel free to rase a follow up issues.
Comment From: PabloSanchi
@tzolov thank you for your time and consideration I appreciate it. Perfect, I will check it as soon as possible and give feedback about the results :)
Comment From: PabloSanchi
@tzolov I tried and it works, I have updated the repo with the example usage. If you need credentials to test it, you can ask me for them, I can handle you some from a test environment I have on IBM Cloud :)