265 Commits

Author SHA1 Message Date
Mark Pollack
fd9c98661d API refactoring
* Added more natural method names to DocumentReader, Transformer, Writer
* Changed Content getMedia to return Collection, deprecated use of List
* Change constructor for Media to accept URL and Resource, deprecate Object constructor
* Update ETL documentation and a few tests to avoid now deprecated APIs.
2024-05-16 12:53:13 +02:00
Christian Tzolov
db4f0b0aaf Add GPT-4o ITs and documentation updates 2024-05-14 21:12:39 +02:00
wmz7year
220ec7f631 AWS Bedrock Titan embedding model add amazon.titan-embed-text-v2:0 support. 2024-05-10 14:26:25 +02:00
Eddú Meléndez
5beef21a4e Expose QdrantClient and WeaviateClient as beans
Currently, `QdrantClient` and `WeaviateClient` are not exposed as
  beans. Having access to those would benefit to perform operations
  with an already configured client.

  - Deprecate  QdrantVectorStoreConfig.
  - Update Qdrant manual config adoc.
  - Improve Qdrant adoc.
  - Update Weaviate docs.
2024-05-10 15:15:14 +03:00
wmz7year
25f91c3297 Add AWS Bedrock Amazon Titan Text Premier model support 2024-05-10 10:54:10 +02:00
Christian Tzolov
f955fd7277 Fix code style and javadoc
- update spring boot to 3.2.5.
 - fix Content's JavaDoc.
 - remove wildcard java imports.
2024-05-09 15:54:19 +03:00
Mark Pollack
dfb8bf6a44 Add a new abstraction to simplify implementation of common ChatBot use cases
* Add ChatBot and basic DefaultChatBot
* Add streaming ChatBot support.
* Add Evaluator interface and RelevancyEvaluator implementation
* Add Content data type abstraction for Document and Message
* Renaming and package refactoring
* update .gitignore to allow node package name
* Add List<Media> to node and move ai.transformer package to ai.prompt.transformer
* Add Short/Long term memory support.
* Add mixing transformers support

Docs TBD
2024-05-08 15:14:50 -04:00
Christian Tzolov
a49a2d213f Replace the OutputParser by a StructuredOutputConverter API
- 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.
2024-05-08 12:02:24 -04:00
Thomas Vitale
f91ccf0047 Ollama: Update APIs, Testcontainers, Documentation
Signed-off-by: Thomas Vitale <ThomasVitale@users.noreply.github.com>
2024-05-05 17:25:51 +03:00
samzhu
70c8c5a529 docs: Fix typo in PgVectorStore dimensions property 2024-05-05 09:15:36 +02:00
Jemin Huh
fe07bfdff6 Docs: Fix filter expression reference to Elasticsearch Query string query 2024-05-05 09:13:32 +02:00
Thomas Vitale
6e40575977 Docs: Fix typos and add missing pieces
Signed-off-by: Thomas Vitale <ThomasVitale@users.noreply.github.com>
2024-05-04 15:39:14 +02:00
Christian Tzolov
9f32a3ca9c Add doc waring about gemini pro model function calling function calling degradation 2024-04-30 14:34:53 +03:00
Christian Tzolov
4b532aee12 Improve Elasticsearch Vector DB documentation 2024-04-30 10:53:06 +03:00
wmz7year
f90c51a729 Improve ElasticsearchVectorStore,
- add index configuration and add support for ES response error handling.
 - rename dims to dimension propety.
 - add property javadocs
 - improve the elasticsearch javadoc.
2024-04-30 09:58:21 +03:00
Thomas Vitale
082c6f1f03 Docs: Fix typos in embedding documents
Signed-off-by: Thomas Vitale <ThomasVitale@users.noreply.github.com>
2024-04-30 06:52:52 +02:00
Thomas Vitale
e5b224720a Docs: Fix typos in function calling documents
Signed-off-by: Thomas Vitale <ThomasVitale@users.noreply.github.com>
2024-04-30 06:52:52 +02:00
wmz7year
a50969ec8b Bedrock Titan embedding client adds BedrockTitanEmbeddingOptions to support dynamic embedding request types. 2024-04-28 14:57:29 +08:00
Johnny Lim
a5923f5a79 Fix sample in "Manual Configuration" section of OpenAI Embeddings API 2024-04-26 13:35:33 +02:00
Dan Vega
6b9f8d3ac9 Implement a function, not functions 2024-04-26 13:34:38 +02:00
wmz7year
9e865f0b0f Add Bedrock Meta LLama3 AI model support.
- re-enable llama structured output tests
2024-04-25 16:22:47 +02:00
jiacheo
9aa97b51a0 fix wrong document code examples 2024-04-25 14:38:51 +02:00
Shane Witbeck
b21427c3c6 Fix erroneous references to OpenAI 2024-04-25 14:37:58 +02:00
wmz7year
563f9b48af Bedrock client autoconfiguration support external AwsCredentialsProvider and AwsRegionProvider 2024-04-21 18:10:53 +08:00
Christian Tzolov
65e6880fa0 doc: add elasticsearch to nav catalog 2024-04-20 08:36:45 +02:00
Vincent Le
e9d7398811 Rewrite Elasticsearch documentation to follow Neo4J's format. 2024-04-20 08:30:27 +02:00
Vincent Le
9fbc09a5a4 Replace manual bean configuration with application.yml configuration. 2024-04-20 08:30:27 +02:00
Vincent Le
3b79a1a5c9 Add documentation for Elasticsearch VectorStore. 2024-04-20 08:30:27 +02:00
Philipp Hügelmeyer
8fa688fef6 Update qdrant.adoc
Fixed java code.
2024-04-20 08:19:02 +02:00
wmz7year
8c04b05631 Add support for AWS bedrock claude3 opus model support 2024-04-20 07:47:26 +02:00
mck
0eaf7d05c9 Cassandra Vector Store initial impl follow up
- add concurrency to store.add(..) (bc embeddingClient is slow)
- CassandraVectorStoreAutoConfiguration uses CassandraAutoConfiguration
- driver profiles for production stability+performance,
- small cleanups and naming fixes,
- main doc tidy-up
- astradb compatibility (protocol V4)
– don't create embeddings again for documents that already have them
  similar to https://github.com/spring-projects/spring-ai/pull/413
2024-04-19 18:13:11 +02:00
Christian Tzolov
f698902d38 doc: Add top page about API multimodality suppot
Resolves #573
2024-04-19 11:11:47 +02:00
Christian Tzolov
b8ca0bb876 doc: Improve Pinecone layout 2024-04-12 11:05:02 +02:00
Christian Tzolov
6c07c4cf8f doc:improve pgvector layout 2024-04-12 10:41:43 +02:00
Philipp Zehnder
d4f866ed3a Update documentation for azure open ai chat 2024-04-12 08:58:44 +02:00
omar.mahamid
bc7460b540 Update contribution-guidelines.adoc
fix broken link
2024-04-12 08:57:31 +02:00
Christian Tzolov
a0e20016a7 doc: Improve Chroma documentation 2024-04-12 08:56:13 +02:00
Christian Tzolov
c7512a00a7 Redis store: add default index and prefix values for auto-conf 2024-04-12 08:14:59 +02:00
Christian Tzolov
b82dd98985 doc: Fix Redis metdata section 2024-04-11 23:26:37 +02:00
Christian Tzolov
154fc1fb57 doc: Improve Redis Vector Store documentation 2024-04-11 23:18:58 +02:00
Christian Tzolov
abd9e327aa Add s.ai.openai.embedding.options.dimensions documentation 2024-04-11 14:42:40 +02:00
dperezcabrera
c26bc55713 Refactor filter expression for clarity and accuracy
The filter expression within the document handling logic has been updated to enhance clarity and ensure accurate author filtering. Previously, the `in` function mistakenly included names as direct arguments, potentially leading to ambiguity in filter application. This has been corrected by explicitly specifying the `author` field, ensuring the filter accurately applies to author names only. This change improves the maintainability and readability of the code, particularly in sections dealing with article filtering based on authorship and type.

- Correct the filter expression by explicitly specifying the `author` field.
- Ensure accurate and unambiguous author filtering in article management.
2024-04-11 10:20:32 +02:00
Christian Tzolov
754dab9e50 Add minimal (placeholder) MongoDB Atlas Vector Serach docs. 2024-04-10 17:56:39 +02:00
mck
656d238285 Implement Apache Cassandra vector store
The CassandraVectorStore is for managing and querying vector data in an Apache Cassandra db.
  It offers functionalities like adding, deleting, and performing similarity searches on documents.

  The store utilizes CQL to index and search vector data. It allows for custom metadata fields in
  the documents to be stored alongside the vector and content data.

  This class requires a CassandraVectorStoreConfig configuration object for initialization, which
  includes settings like connection details, index name, field names, etc. It also requires an
  EmbeddingClient to convert documents into embeddings before storing them.

  A schema matching the configuration is automatically created if it doesn't exist. Missing columns
  and indexes in existing tables will also be automatically created. Disable this with the disallowSchemaCreation.

  This class is designed to work with brand new tables that it creates for you, or on top of existing
  Cassandra tables. The latter is appropriate when wanting to keep data in place, creating embeddings
  next to it, and performing vector similarity searches in-situ.

  Instances of this class are not dynamic against server-side schema changes. If you change the schema
  server-side you need a new CassandraVectorStore instance.

 - Add auto-configure with tests.
 - reformat code style
 - Change field terminology to column (as appropriate for cassandra and cql)
 - Add doc page with an advanced example.
 - Add the dependencies to Spring AI BOM
 – add to `AutoConfiguration.imports`

 - Add @since annotation
 - Fix javadoc issue
 - Streamline the adoc content and layout
2024-04-10 16:51:47 +02:00
David Pérez Cabrera
fef1a42d20 Refactor filter expression for clarity and accuracy
The filter expression within the document handling logic has been updated to enhance clarity and ensure accurate author filtering. Previously, the `in` function mistakenly included names as direct arguments, potentially leading to ambiguity in filter application. This has been corrected by explicitly specifying the `author` field, ensuring the filter accurately applies to author names only. This change improves the maintainability and readability of the code, particularly in sections dealing with article filtering based on authorship and type.

- Correct the filter expression by explicitly specifying the `author` field.
- Ensure accurate and unambiguous author filtering in article management.
2024-04-10 13:13:01 +02:00
Christian Tzolov
ae9d3f4168 Updgrade Vertex AI Gemini to 26.37.0
- Adjust to the new, breaking, API changes.
   - Update the docs adding the transport endpoint and scopes to the connection properties.
2024-04-10 09:09:58 +02:00
Rahul
466b824840 Add SAP HanaDB vector store integration
- Implement a HanaCloudVectorStore and tests
 - Implement Autoconfiguraiton + properties
 - Add boot starter
 - Update BOM with vector store and boot dependencies.
 - Add antora docuementation
 - added junit for HanaCloudVectorStoreProperties.java and documentation
   to create a BTP trial account and provision an instance for SAP Hana Cloud db
 - updated license, formatting and javadoc
 - IT for HanaCloudVectorStoreAutoConfiguration
 - IT for HanaCloudVectorStoreAutoConfiguration

Additional
 - add @AutoConfiguration(after = { JpaRepositoriesAutoConfiguration.class })
 - update the handa docs structure.
2024-04-09 12:36:42 +02:00
sinsy
5c3ed1152a Add support of Bedrock API timeout
Configure the amount of time to allow the client to complete the execution of an API call.
 This timeout covers the entire client execution except for marshalling. This includes request handler execution,
 all HTTP requests including retries, unmarshalling, etc. This value should always be positive, if present.

  - Add timeout filed to the AbstractBedrockApi, used to initialize the BedrockRuntimeClient and the
    BedrockStreamingRuntimeClient. Update all classes that extend the AbstractBedrockApi.
  - Keep the previous constructors for backward compatibility using timeout value of 5 min.
  - Add a common AWS connection timeout auto-config property and update the documentation.
    Defaults to 5 min.

 Additional changes:
  - Fix Anthropic 3 straming response - add bedrock metrics field.
  - Increate the default timeout to 5 min. Update the docs.
  - Increase the ITs.
2024-04-09 10:28:17 +02:00
Jabez Brew
dd5757cd8c Update ollama-chat.adoc
Fix typo in API class name: OpenAiApi -> OllamaApi

This commit fixes a typo in the API class name mentioned in the documentation. The previous sentence "Low-level OpenAiApi Client" now correctly reads "Low-level OllamaApi Client."
2024-04-08 22:46:18 +02:00
Christian Tzolov
70e57a7e27 doc: Update Anthropic 3 class diagram 2024-04-08 08:53:56 +02:00