Commit Graph

425 Commits

Author SHA1 Message Date
Christian Tzolov
a8110bb3da Qdrant improvements
- Update docs
 - Allow colleciton auto-creation if missing
 - Add cloud IT : QdrantVectorStoreCloudAutoConfigurationIT
 - Add auto-configuration properties tests: PgVectorStorePropertiesTests
2024-02-29 09:27:19 +01:00
Christian Tzolov
41a256cb60 Simplify the doc catalog. Add 0.8.1 update notes 2024-02-28 21:41:34 +01:00
Anush008
ea0b439dac Implement Qdrant vector store
- Implement QdrantVectorStore.
   Uses a custom parser for converting Spring AI metadata(Map<String, Object>) to Qdrant GRPC payload.
 - Implement Qdrant Expression Filter support.
   Uses a custom parser for converting Spring AI filters to Qdrant-compatible GRPC filters.
 - Add ITs using testcontainers.
 - Add antora docs adrant.adoc.
 - Add Qdrant vector store auto-configuraton and boot starter.

Additional (review) change:

 - Fix poms parent to 0.8.1-SNAPSHOT.
 - Rename ObjectFactory into QdrantObjectFactor.
 - Rename ValueFactory into QdrantValueFactory.
 - Move the org.springframework.ai.vectorstore package into org.springframework.ai.vectorstore.qdrant.
 - Add missing Autoconfigure definition.
 - Add missing license and JavaDocs.
 - Minor code style improvmentes.
 - Move the qdrant version to the main pom
 - Add QdrantVectorStoreAutoConfigurationIT
 - Remove guava dependency
 - Improve gdrant.adoc conent and structure.
 - Remove the grpc-protobuf dependency

Resolves #331
2024-02-28 19:31:54 +01:00
Christian Tzolov
e1462b86e3 Fix Vertex AI PaLM2 Boot Starter name typo
Rename spring-ai-vertex-ai-plam2-spring-boot-starter into spring-ai-vertex-ai-palm2-spring-boot-starter
2024-02-28 18:05:32 +01:00
Christian Tzolov
d8c69e8efc Fix open-ai auto-conf bug 2024-02-28 16:53:32 +01:00
Christian Tzolov
c001650551 Minor code improvements 2024-02-28 16:30:39 +01:00
Christian Tzolov
65d42c9d4f Add full support or Vertex AI Gemini and Azure OpenAI function calling
- Extend the Spring AI Message with getMediaData() : List<MediaData>
   MediaData is a pair of MimeType and data of type Object.
   Message#getContent() return text only.

 - VertexAI Gemini Support
   - implement VertexAiGeiminChatClient for ChatClient and StreamingChat client and support for MediaData content.
     add IT tests for Chat, Streaming and Multimodality
   - add Auto-configuration + ITs
   - add Gemini Spring Boot starter.
   - add clients and boot starters to the Spring AI BOM.
   - add Anotra documentation for the Gemini chat client.
   - update gemini to latest 26.33.0 BOM.
   - add vertex ai gemini dependencies to the BOM.
   - add Vertex AI Gemini API Function Calling support
   - add Gemini API Function Calling Streaming support
   - add vertex ai gemini function calling documentation
   - factor out the Function Calling functionality into common abstraction used by OpenAI, Azure and Gemini.
   - group the VertexAI documentation under a common parent
   - add PortableFunctionCallingOption that implements FunctionCallingOptions and ChatOptions and provide builder for it.
   - remove some deprecated code.
   - allow authorization with GoogleCredentials form json file.
   - add AOT support for VertexAI Gemini.
   - move legacy Vertex AI into VertexAI PaLM2.
   - better handling for empty chat responses.
   - update the Gemini version to latest 26.33.0. This required lifting the protobuf-java to 3.25.2 as well.
   - fix a bug for handling System messages with Gemini.

- Implement Azure OpenAI Function Calling
  Uses the same the common abstractions used by OpenAI and Gemini: FunctionCallingOptions and AbstractFunctionCallSupport
2024-02-28 15:41:37 +01:00
Christian Tzolov
35808498f9 Mistral AI: test package restructuring. Fix failing tests. Add AOT tests 2024-02-28 15:13:45 +01:00
Christian Tzolov
a81a99ff9d Mistral AI improvements
- add AOT support.
 - move the org.springframework.ai.mistral package into org.springframework.ai.mistralai.
2024-02-28 14:46:13 +01:00
Christian Tzolov
65c7ee62fa Add Mistral AI Boot Starter to BOM 2024-02-28 14:16:23 +01:00
Christian Tzolov
16090a9604 Fix error in MistralAiPropertiesTests 2024-02-28 13:51:13 +01:00
ricken07
30c3530561 Add integration for Mistral AI Chat and Embedding models
- Implement MistrealAiApi as a REST client for the Mistral REST API.
 - Add MistralAiChatClient implementing ChatClient and StreamingChatClient.
   Add MistralAiChatOptions implementing ChatOptions.
 - Add MistralAiEmbeddingClient impelementing EmbeddingClient.
   Add MistralAiEmbeddingOptions implementing EmbeddingOptions.
 - Add Unit and IT tests for api and clients.
 - Add mistral  auto-configuration and boot strarter
 - update auto-config property for Mistral AI embedding client
 - update auto-config property for Mistral AI embedding client

 Additional, review changes:
 - Add missing license headers.
 - Fix the intialization of defaul options.
 - Code re-formatting to improve the readabitliy.
 - Many improvements
 - Add missing sine annotations
 - Remove stream field from MistralAiChatOptions. This handled internally.
 - Add MistralAiApi ChatModel and EmbeddingModel enums.
 - Add MistralChatClientIT for testeing chat, stream , parsers...
 - Add MistralAiApiIT tests
 - Refactor and streamline the MistralAiAutoConfiguration.
 - Add MistralAiAutoConfigurationIT
2024-02-28 13:29:35 +01:00
Christian Tzolov
0d0b858d60 Temp disable Ollama ITs 2024-02-27 23:32:05 +01:00
Christian Tzolov
3eb24f6088 Update continuous-integration.yml
Try to fix the GH action hashFiles expression
2024-02-27 23:08:00 +01:00
Christian Tzolov
270f01608e Update continuous-integration.yml
Update ScribeMD/docker-cache to @0.3.7
2024-02-27 22:33:53 +01:00
Eddú Meléndez
246ba173fe Enable Ollama integration test
Currently, test is disable because in every run the image should
be downloaded and then pull the model. Now, taking advantage of
Testcontainers and a GHA, a new image is created on-the-fly with
the model in it and then cached, so, next executions will reuse the
cached image instead.

Fixes #121
2024-02-27 20:57:43 +01:00
Eddú Meléndez
6de57d5f37 Use Testcontainers Vector Database modules
- Update testcontainers version to 1.19.6
 - Use ChromaDBContainer
 - Use MilvusContainer
 - Use WeaviateContainer
 - Fix format
2024-02-27 17:30:43 +01:00
Christian Tzolov
21fc676fba Improve SpringAI models AOT support
- Fix various issues for bedrok/llama2/titan/choere,palm2,openai,azure-openai and vertex
 - Addd demo tests: https://github.com/tzolov/spring-ai-aot-tests
 - Fix broken Ollama AOT configuration
 - Code style & doc improvements for onnx transformer client

 Part of #360
2024-02-26 21:50:04 +01:00
Christian Tzolov
4e270ac75a Add activation/deactivation auto-config property to all Model clients
Property is of format `*.enabled=` and is true by default.
 Note: the Bedrock clients are disabled by default.

 - Add deactivation support for Vertex AI PaLM2 clients
 - Add deactivation support for Azure OpenAI clients
 - Add deactivation support for huggingface chat client
 - Add deactivation support for Ollama clients
 - Add deactivation support for OpenAI clients
 - Add deactivation support for Stability Image and PostgresML clients
 - Add deactivation support for ONNX Transformers Embedding client

 Resolves #363
2024-02-26 21:22:10 +01:00
Christian Tzolov
288ef449d6 Move the javadoc plugin into a 'javadoc' profile
This dramatically improves the maven build performance.
  Kudos to Joshua Long for catching this issue!
2024-02-26 21:13:46 +01:00
Christian Tzolov
56cbb2221a Update pom version in docs to 0.8.1-SNAPSHOT 2024-02-24 21:19:52 +01:00
Christian Tzolov
433f820e8b Improve metadata handling 2024-02-23 22:41:28 +01:00
Mark Pollack
8532cb7bcc Bump to 0.8.1-SNAPSHOT 2024-02-23 11:11:14 -05:00
Mark Pollack
64b8e7c805 doc polish before relase 2024-02-23 10:38:37 -05:00
Christian Tzolov
d7fb424c47 Fix repeating words in docs 2024-02-23 15:51:18 +01:00
Christian Tzolov
4ba6adfe8e Remove the explict spring-ai depenency versions from doc's snippets 2024-02-23 15:43:42 +01:00
Christian Tzolov
56c6abfc9c Update 3rd party POM dependecies and resolve related issues 2024-02-23 12:43:30 +01:00
Christian Tzolov
b2d04a6e1e Add function-calling as a concept to the docs 2024-02-23 08:56:12 +01:00
Mark Pollack
c8dea142b5 Add contribution documention
Fixes #296
2024-02-22 22:36:46 -05:00
Mark Pollack
d9c2f4dae7 Add documentation for generic model api
Fixes #267
2024-02-22 22:11:03 -05:00
Mark Pollack
6bcd719761 Update Azure OpenAI documentation and configurations
* Added instructions on how to set up and use the 'Deployment Name' for Azure AI applications in the documentation.

* Corrected the default chat model from 'gpt-3.5-turbo' to 'gpt-35-turbo' for alignment with Azure's naming conventions.
2024-02-22 21:25:42 -05:00
Mark Pollack
b0019f403e fix test that depends on content in our docs :( 2024-02-22 20:19:35 -05:00
Mark Pollack
bc5c4e2c4f add jdbc starter to pgvector starter 2024-02-22 15:48:58 -05:00
Mark Pollack
a166a3a3d9 doc updates 2024-02-22 13:33:50 -05:00
Christian Tzolov
272ed099ed Fix Azure option merging bug 2024-02-22 18:33:21 +01:00
Christian Tzolov
d8fc01f27a Update overview.html
Fix the reference link in javadocs overview.html
2024-02-22 18:31:19 +01:00
Christian Tzolov
a78dad5e99 Update index.adoc
Fix the Javadoc url
2024-02-22 18:29:30 +01:00
Christian Tzolov
134b87cb4b fix CI/CD deploy docs work dir 2024-02-22 18:02:47 +01:00
Christian Tzolov
631521c8dd Attempt to fix javadocs CI generation 2024-02-22 17:46:06 +01:00
Mark Pollack
caef260fd7 Update Azure AI Search link in docs 2024-02-21 14:08:16 -05:00
Mark Pollack
14e4a6cccf StabilityAI Autoconfiguration improvements
* Add IT Test
* Add starter to Spring AI bom
2024-02-21 13:47:11 -05:00
Kirk Lund
1c222a695c Normalize Line Endings to LF in BeanOutputParser
This change addresses and fixes BeanOutputParserTest failures observed
on the Windows platform by ensuring consistent line ending normalization
across different operating systems.

Fixes #279
2024-02-21 12:35:37 -05:00
Mark Pollack
9165aa9fec tidy up the spring cli section in getting started docs 2024-02-21 10:17:41 -05:00
SASIKUMAR SENTHILNATHAN
eecbef30fa Changing String package from java.util.String to java.lang.String (#340)
Changing String package from `java.util.String` to `java.lang.String`
2024-02-20 14:55:41 -05:00
Mark Pollack
4854b0066f Add @ConditionalOnClass(StabilityAiApi.class) to StabilityAiImageAutoConfiguration 2024-02-20 14:35:15 -05:00
Mark Pollack
596f2b06c0 Move native hints into individual modules
* Use aot.factories approach for registration
* Add tests
* final tweaks- Thanks Josh!
2024-02-20 14:23:40 -05:00
Mark Pollack
ea7dce3833 Refine Bedrock README. Fixes #180 2024-02-19 12:36:03 -05:00
Mark Pollack
a107e313fc Fixes #219 - Remove dependency cycles 2024-02-19 12:24:16 -05:00
Mark Pollack
60f9446562 Add additional pointers to help setup dependencies in each ChatClient and EmbeddingClient docs 2024-02-19 11:12:04 -05:00
Mark Pollack
d28450a3a3 clean up README.md and improve getting-started.adoc 2024-02-16 16:53:17 -05:00