- 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
- feat: setup watsonx ai api
- feat: add watsonx ai model options
- feat: setup watsonx chat client
- feat: add watsonx records/models
- add watsonx-ai module to pom
- add watsonx-ai module to bom
- feat: add connection properties watsonx
- feat: add WatsonxAiAutoConfiguration with api client
- feat: add starter watsonx.ai
- feat: add generate method in watsonx ai api
- feat: add watsonx ai api streaming generation method
- feat: add watsonx message to prompt converter util
- feat: implement call and stream mehtod
- feat: add watsonx ai runtime hints
- fix: filter null fields
- feat: watsonx options tests
- feat: add test dependencies
- feat: add runtime hints tests
- feat: add watsonx client tests
- fix: apply linter
- feat: add tests for message to prompt converter
- feat: add signature
- fix: change deprecated IamAuthenticator
- fix: do not keep baseUrl in a class variable
- fix: webClient request
- feat: add default base url to autoconfigure
- feat: add watsonx ai integration docs
- fix: model options json
- feat: add watsonx-ai spring boot starter
- feat: enable watsonx api on watsonx chat client
- fix: remove condition
- feat: add watsonx autoconfigure import
- feat: add watsonx module resource aot import
- feat: add pom for watsonx ai module
Additional pre-merge adjustments:
- 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.
- Created low-leverl anthropic messages API for Claude 3.
Use the new message API.
- Add Chat Client with tests.
- Add bedrok anthropic 3 docs.
- Add multibudality support + tests.
- Add auto-configuraiton & tests.
- Rename Athropic to Athropic3 in class names to avoid confusion with previous Bedrock Anthropic 2 impl.
This commit introduces support for the Anthropic Claude3 Message API
(https://api.anthropic.com), enabling direct interaction with its services.
This is not a Bedrock Anthropic Claude3 implemenation.
Changes include:
- Implementation of a low-level client, AnthropicApi, to interact with
the message API endpoints specified in the Anthropic documentation
(https://docs.anthropic.com/claude/reference/messages_post), including support for streaming.
- Addition of AnthropicApi tests to ensure functionality and reliability.
- Support for multimodal requests within AnthropicApi.
- Adding the spring-ai-anthropic and boot starter into BOM and parent POM modules for streamlined usage.
- Add Anthropic Auto-configuration and Boot Starter for seamless integration into existing projects.
- Implementation of AnthropicChatClient with capabilities for synchronous and streaming communication,
including support for multimodal messages.
- Inclusion of both unit and integration tests to validate functionality across various scenarios.
- Add Antora documentation with comprehensive guidance on using AnthropicApi and AnthropicChatClient.
- Add of Ahead-of-Time (AOT) hints for AnthropicApi.
- update anthropic diagram
- Implemented Bedrock Jurassic ChatClient
- added documentation reference
- implement auto-configuration and boot starter
- Disable the BedrockAi21Jurassic2ChatClientIT.emojiPenaltyWhenTrueByDefaultApplyPenaltyTest() test
as it fails when run in combination with the other tests.
- tename /api/clients/ into /api/chat
- move the the image from /api/clients to /api
- fix the layout inside the chat and embeddings docs. Moving the runtime options and sample controllers at top level.
- adjust all affected links.
* Fix Typo: Duplicate 'for' in documentation text
* Fix Typo: Duplicate 'to' in documentation text
* Fix broken links in documentation
* Correct grammar by deleting unnecessary 'an' in documentation
* Fix typo: Change 'tunning' to 'tuning' in documentation
* Fix typo: Change 'an' to 'can' in documentation
* Fix typo: Change 'generats' to 'generates' in documentation
* Fix grammatical error: Change 'a AI' to 'an AI' in documentation
* Fix grammatical error: Change 'a AI' to 'an AI' in code
* Fix Typo: Duplicate 'for' in code
* Azure uses 'deployment-name' when provisioning models and is what needs to
be passed in to the client, not the model name.
This is a difference with the OpenAI API that doesn't have a deployment-name
This change aligns the terminology used with Azure so that there is
less confusion when setting configuration property values
Fixes#10
- Extends the reactor logic to to allow aggregation of the chunked tool-calls messages and
leverage the exsiting fnctoin calling infrastructure.
- Seamples experience for the streaming functionality.
- Add Message ID and FinishReason to the returned Generations properties.
- Establish a new "spring-ai-retry" project, implementing a default HTTP error handler,
RetryTemplate, and handling both Transient and Non-Transient Exceptions.
- Streamline existing clients (e.g., OpenAI and MistralAI) to utilize "spring-ai-retry."
- Integrate retry auto-configuration with customizable properties, extending it to OpenAI and MistralAI Auto-Configs.
- Allow configuration of RetryTemplate and ResponseErrorHandler for various clients, including OpenAIChatClient,
OpenAiEmbeddingClient, OpenAiAudioTranscriptionCline, OpenAiImageClient, MistralAiChatClient, and MistralAiEmbeddingClient.
- Add tests for default RestTemplate and ResponseErrorHandler configurations in OpenAI and MistralAI.
- Introduce new retry auto-config properties: "onClientErrors" and "onHttpCodes".
- Implement tests for retry auto-config properties.
- Generate missing license headers.
- Move the OpenAiAudioTranscriptionClient and OpenAiAudioTranscriptionOptions under the org.springframework.ai.openai package.
- Rename the AudioTranscriptionRequest into AudioTranscriptionPrompt.
- Minor imports cleaning.
- Make it use the new OpenAiAudioApi.
- Remove trascription code from spring-ai-core. Too early to generalize.
Move all related code under the spring-ai-openai project.
- Fix missing licenses and javadocs.
- Add 'Audio' prefix for Transcription classes and packages.
- Add missing auto-configuraiotn and tests.
- Factor out OpenAiApiClientErrorException and OpenAiApiException out of
OpenAiApi into standalone common package.
- Move the HTTP error handling and header setup into a shared ApiUtils.
- Add ChatModel and EmbeddingModel enums to OpenAiApi.
- Add ImageModel enum ot OpenAiImageClient.
Also
- fix a MistralAiApi (and OpenAiApi) issue just introduced by Mistral API
- change the auto-config properties prefix from spring.ai.mistral.* to spring.ai.mistralai.*
- minor doc references updates.