• Remove inheritance from HashMap
  • No more subclasses per model provider
  • Builder class for ChatResponse

Comment From: tzolov

@markpollack There are NPE test failures like OpenAiChatModelWithChatResponseMetadataTests, AzureOpenAiChatModelMetadataTests and likely many more.

The ConcurrentHashMap doesn't allow null to be used as a key or value.

Update: ignoring the null values with warning message seems to be ok

Comment From: tzolov

Additional changes. * fix the AbstractResponseMetadata#AI_METADATA_STRING parameter order * ChatResponseMetadata ignore Null values.

Squashed rebased and merged at 97f443d615644ba02c65e80579cd6df3a77669cb