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
`Reuse Container` is a Testcontainers experimental feature. It requires
`testcontainers.reuse.enable=true` in `~/.testcontainers.properties` in
order to take effect but in order to avoid surprises, this commit remove it.
See https://java.testcontainers.org/features/reuse/
- 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.
- Add VectorSearchAggregation used to actually preform the search
on a given collection with embeddings.
- add MongoDBVectorStore
- Add MongoDBVectorStoreIT. Integration test runs fine given...
- You have a mongo atlas cluster to connect to (local or remote)
- You have the search index "spring_ai_vector_search" setup correctly
- Need to explore getting around this
- Need to filter results using threshold
- Add postfilter for threshold values - While a post filter is not ideal,
it gets the job done. The mongo team seems to be working on having
it availible as a prefilter option, in which this implementation
can be updated to use later.
- implement filtering threshold
- fix a few sonar issues
- formatting
- use higher default num_candidates
- use builder for configuration
- add documentation and some refactor
- use consistent property in integration test
- finish implementing filter support
- add documentation to filter converter
- add vector search index auto creation
- Add to BOM.
- Fix version to 1.0.0-SN.
- Move expresion converter from core to models/mongodb.
- Fix style and license headers
- 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.