Commit Graph

158 Commits

Author SHA1 Message Date
Christian Tzolov
50547188f7 Rename legacy Vertex AI into Vertx AI PaLM2 classes 2024-03-01 14:51:02 +01:00
Christian Tzolov
aa55a96c95 Docs: add Mistral AI Function Calling doc 2024-03-01 12:34:06 +01:00
Ricken Bazolo
31d6194d9d Add mistralai support documentations
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.
2024-03-01 11:28:45 +01:00
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
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
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
56cbb2221a Update pom version in docs to 0.8.1-SNAPSHOT 2024-02-24 21:19:52 +01: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
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
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
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
Mark Pollack
caef260fd7 Update Azure AI Search link in docs 2024-02-21 14:08:16 -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
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
Christian Tzolov
0f0898ddef Update srping-ai funciton call diagram 2024-02-16 12:06:02 +01:00
Christian Tzolov
25e6569bb7 another minor doc code snippet fix 2024-02-16 11:46:00 +01:00
Christian Tzolov
8a16fce26e minor doc improvements 2024-02-16 11:39:15 +01:00
Mark Heckler
d9d6011eaf Added client-level appId 2024-02-16 11:24:39 +01:00
Abdoulaye Ndiaye
4e0434b337 Update openai-embeddings.adoc
Fixed small error in OpenAiChatOptions implementation documentation
2024-02-16 11:22:29 +01:00
Christian Tzolov
fdd3fbb2f9 Revert default OpenAI embedding to text-embedding-ada-002 as some vector stores have problems with 3-small 2024-02-16 11:19:34 +01:00
Christian Tzolov
5391505098 Update openai docs, function call diagrams 2024-02-16 10:48:48 +01:00
Christian Tzolov
0458f7c525 Minor Doc improvments 2024-02-16 10:36:46 +01:00
Christian Tzolov
7ef49b8cef Set the default OpenAI Embedding model to text-embedding-3-small
The text-embedding-3-small has the same dimensions as previous text-embedding-ada-002.
  The text-embedding-3-large has higher dimensionality not supported by some Vector Stores.
2024-02-16 10:27:13 +01:00
Gerrit Meier
e62543c761 Use the new vector index creation syntax for Neo4j.
To make the Neo4j module more future-proof, this commit
replaces the old vector index creation syntax with the new style.
Also, the new pattern is in line with the standard Neo4j index creation
and supports the _IF NOT EXISTS_ clause to run idempotent.
This allows us to remove the preceding call to check if the index exists.

As a consequent, the module will require Neo4j to be at least on version 5.15.
2024-02-16 09:40:36 +01:00
Christian Tzolov
05ce9ff398 Simplify Function Calling API
POJOs FTW!
2024-02-15 23:42:58 -05:00
Christian Tzolov
bd479e1388 Address review comments 2024-02-15 22:38:50 +01:00
Christian Tzolov
d580fe2757 Simplify Function Calling API 2024-02-15 20:26:31 +01:00
Gerrit Meier
10438c55a3 Remove Neo4j driver auto-config from the module.
- Neo4j vector store documentation update.
2024-02-15 13:02:51 +01:00
Christian Tzolov
1fa2036120 Refactor the Function Calling Support
- Remove the SpringAiFunction annotation in favour of palin Functino Beans, @Description annotation and JacksonClassAnnotation.
 - Update the function calling documentation to reflect latest changes.
 - Add a new openai option (and related property): spring.ai.openai.chat.options.beanFunctions.<function-name>.<description>
   Map of bean names and their descriptions to register as function callbacks.
 - Refactor the OpenAiAutoConfiguration to resolve and register the beans in beanFunctions.
 - Add dependency on Spring Cloud Function to use the FunctionContextUtils and FunctionTypeUtils
   Those utilites help to resolve the function input type signature.
 - Add DefaultToolFunctionCallback class for manually wrapping Functions.
 - Update the ITs.
2024-02-15 12:39:35 +01:00
Mark Pollack
43dbaf4edd Add documentation for Image Generation
- Refine StabilityAI classes
- Add documentation
2024-02-14 17:18:04 -05:00
Chris Smith
b2a4f01761 Add Spring Annotation for registerding Function Calling tools.
- Built on top of the existing ToolFunctionCallback utilites.
 - Organized as part of auto-configuration project under the /common/function
   package to be reusable for different model implementations.
 - Add OpenAI support for the SpringAiFunction annotation.
 - Update the OpenAI function calling documentation.
 - Add ITs

Co-Authored-By: Christian Tzolov <ctzolov@vmware.com>
2024-02-14 13:15:04 +01:00
Gerrit Meier
408337e327 Support filter expressions in Neo4j vector store.
- Move Neo4j filter converters from core to neoj4 vector store project.
 - Update neo4j adoc.

 Resolves #318
2024-02-14 09:23:44 +01:00
Christian Tzolov
f6447f420e Clean obsolate README files 2024-02-14 06:40:35 +01:00
Christian Tzolov
12d3ae40c4 Fix adcocs navigation 2024-02-14 06:25:35 +01:00
Christian Tzolov
cb12512775 Add spring AI Bom and related docs 2024-02-13 13:38:24 +01:00
Christian Tzolov
0334e6d428 Improve vectordbs documentation 2024-02-13 11:13:40 +01:00