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.
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.
- 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.
- 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>
* Add function call OpenAiApi IT tests
* Add function call docs. Unit and IT func tests
* Add function call diagram
* Allow to opt-in/enable the fuctions to be used in request.
At the moment, it is not possible to configure SpringAI
to use an existing index in the database.
This commit enables the user to provide the index name
for auto configuration or builder usage.