* Added Spring Boot Starter for Spring AI Hugging Face
* Updated documentation with instructions using the starter dependency
* Fixed naming inconsistencies in the docs for Hugging Face
Fixes gh-838
Signed-off-by: Thomas Vitale <ThomasVitale@users.noreply.github.com>
* Move ChatClient and related classes into the chat.client package
* Move ChatModel and related class into the chat.model package
* Smaller refactorings to remove DSM cycles
* Update README.md
* Rename the ModelClient class hierarchy into Model:
- Rename ModelClient into Model. Update all code and doc references.
- Rename ChatClient to ChatModel. Update all ChatClient suffixes and chatClient fields and variables in code and doc.
- Rename EmbeddingClient into EmbeddingModel. Update the XxxEmbeddingClient class and variable suffixes and embeddingClient variables and fields in code and docs.
- Rename ImageClient into ImageModel.
- Rename SpeechClient into SpeechModel.
- Rename TranscriptionClient into TranscriptionModel.
- Update all javadocs and antora pages. Update the related diagrams.
* Create fluent API in ChatClient interface that now includes streaming support
* Add OpenAI FunctionCallbackWrapper2IT auto-config tests.
* Add ChatClientTest mockito testing.
* Add ChatModel#getDefaultOptions(), and remove @FunctionalInterface
* ChatModel enums extend the new ModelDescription interface.
* Implement fromOptions copy method in every ChatOptions implementation.
* Extend ChatClient to use the model default options if not provided explicitly.
* Update readme to provide guidance on how to adapt to breaking changes.
Co-authored-by: Christian Tzolov <ctzolov@vmware.com>
Co-authored-by: Mark Pollack <mpollack@vmware.com>
- Old OutputParser, BeanOutputParser, ListOutputParser and MapOutputParser classes are depredated
in favour of the new StructuredOutputConverter, BeanOutputConverter, ListOutputConverter and
MapOutputConverter implementations.
Later are drop-in replacements for the former ones, and provide the same functionality.
- Keep the existing parser package and classes for backward compatibility.
- Adjust the PromptTemplate for backward compatibility
- Update all existing tests to use the new Structured Output API.
- Improve the documentation for structured outputs.
- 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
Add dedicated property classes for the Chat and the Embedding models and use a common connection properties for both:
- OpenAiConnectionProperties (baseUrl, apiKey) with prefix spring.ai.openai.*.
- OpenAiChatProperties (model, temperature) with prefix spring.ai.openai.chat.
- OpenAiEmbeddingProperties (model) with prefix spring.ai.openai.embedding.*
Additionally the OpenAiChatProperties and OpenAiEmbeddingProperties can optionally override the OpenAiConnectionProperties
so that we can use the Chat model from one Provider and the Embedding model from another.
Resolves#229
- fix all class names with AiClient or AiStreamingClient name prefixes.
- fix all variables or method name prefixes.
- fix the javadocs, readmes and refference documentation.
- Implement a native client (OllamaApi) to leverage chat/streaming and embedding endpoints.
- Add a OllamaChatClient implementing the ChatClinet and StreamingChatClinet interfaces.
- Add a OllamaEmbedding clinent that impl. the EmbeddingClinet interface.
- Add AutoConfiguraitons with properties for the chat and the embedding clients.
- Add unit and ITs for the OllamaApi, OllamaChatClient, OllamaEmbeddingClient, and related auto-configuraitons.
- Remove the old ollama impl. classes and tests.
- minor fixes to the bedrok test methods names.
- Collapses all VectorStore similiaritySearch methdos into one with SearchRequest builder.
- Fix all affected code and tests.
- Bump the project version to 0.7.1.
- Add tests
- Add autoconfigurations for milvus, pinecone and pgvecor stores.
- Improve and unify the VectorStore ITs.
- Make use of TrasformersEmbeddingClient for auto-configurations ITs.