• Convert ChatOptions.Builder to have Builder<B extends Builder<B, C>, C extends ChatOptions>
  • This will allow the subclasses which extend this builder to provide their implementation of ChatOptions i.e, in our case FunctionCallingOptions
  • Update the default builder implementations with this change
  • Update FunctionCallingOptions and its default builder impelementation to enforce this hiearchical change

Comment From: markpollack

I've reimplemented the options builders to get rid of the generics. There were still hard to resolve warnings in the IDE and I kept going in circles. It shouldn't be so complicated but that approach seems to lead to unwanted java generic warning/side effects.

Now the approach is very simple and easy to understand.

merged new impl in 0765b2ca88f110a9849ab869f1b3166e362af1cc