* Add ChatBot and basic DefaultChatBot
* Add streaming ChatBot support.
* Add Evaluator interface and RelevancyEvaluator implementation
* Add Content data type abstraction for Document and Message
* Renaming and package refactoring
* update .gitignore to allow node package name
* Add List<Media> to node and move ai.transformer package to ai.prompt.transformer
* Add Short/Long term memory support.
* Add mixing transformers support
Docs TBD
- Old OutputParser, BeanOutputParser, ListOutputParser and MapOutputParser classes are depredated
in favour of the new StructuredOutputConverter, BeanOutputConverter, ListOutputConverter and
MapOutputConverter implementations.
Later are drop-in replacements for the former ones, and provide the same functionality.
- Keep the existing parser package and classes for backward compatibility.
- Adjust the PromptTemplate for backward compatibility
- Update all existing tests to use the new Structured Output API.
- Improve the documentation for structured outputs.
- In ITs rename property spring.ai.azure.openai.chat.options.model to spring.ai.azure.openai.chat.options.deployment-name.
- Resolve compilation issues after the client library update.
Configure the amount of time to allow the client to complete the execution of an API call.
This timeout covers the entire client execution except for marshalling. This includes request handler execution,
all HTTP requests including retries, unmarshalling, etc. This value should always be positive, if present.
- Add timeout filed to the AbstractBedrockApi, used to initialize the BedrockRuntimeClient and the
BedrockStreamingRuntimeClient. Update all classes that extend the AbstractBedrockApi.
- Keep the previous constructors for backward compatibility using timeout value of 5 min.
- Add a common AWS connection timeout auto-config property and update the documentation.
Defaults to 5 min.
Additional changes:
- Fix Anthropic 3 straming response - add bedrock metrics field.
- Increate the default timeout to 5 min. Update the docs.
- Increase the ITs.
- expanded the AnthropicApi to include Tool, facilitating request and response abstractions.
- extended AnthropicChatClient to inherit AbstractFunctionCallSupport, with
implementation of all necessary methods and function registration protocols.
- implemented FunctionCallingOptions interface in AnthropicChatOptions.
- added tools integration tests for AnthropoicApi and AnthropicChatClient.
- extended the auto-configuration with functional calling functionality.
- added ITs for tools auto-config.
- updated documentation on anthropic function calling and relevant pages for comprehensive coverage.
- fix: remove non-sense underscore checking
- fix: check the model is included in request parameters
- fix: refactor, use constant
- fix: add jsonproperty decorator to additional attribute
- feat: allow additional params merging into the default watsonx option
- fix: remove not needed key
- fix: remove default values in watsonx ai options class
- fix: add default property
- Add a new autoconfig property spring.ai.retry.on-http-codes that list status codes (scuh as 429)
for which the retry should be attemptd.
- Updated the docs.
Resolves#433
- Requires LLaVa or Bakllava models.
- Extend the Ollama chat client to support the Spring AI Medi type inputs.
- Add OllamaChatClientMultimodalIT.java
- Add Multimodal section in Ollama's docs.
Resolves#421
- Implemented a MediaContent abstraction within the OpenAiApi to handle text and image inputs.
- Response message content remains a plain String, ensuring backward compatibility.
- Extended the OpenAiChatClient request creation process to seamlessly map Spring AI Messages with
Media content to the low-level OpenAiApi MediaContent types.
- Added integration tests for embedded and URL images, covering both synchronous and streaming calls.
- Updated the OpenAI class diagram to reflect the new media content types provided by the OpenAI API.
- Incorporated a chapter on multi-modality within the openai-chat.adoc documentation.
- Improve the openai multimoality doc