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
367 lines
10 KiB
XML
367 lines
10 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<parent>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai</artifactId>
|
|
<version>1.0.0-SNAPSHOT</version>
|
|
</parent>
|
|
<artifactId>spring-ai-spring-boot-autoconfigure</artifactId>
|
|
<packaging>jar</packaging>
|
|
<name>Spring AI Auto Configuration</name>
|
|
<description>Spring AI Auto Configuration</description>
|
|
<url>https://github.com/spring-projects/spring-ai</url>
|
|
|
|
<scm>
|
|
<url>https://github.com/spring-projects/spring-ai</url>
|
|
<connection>git://github.com/spring-projects/spring-ai.git</connection>
|
|
<developerConnection>git@github.com:spring-projects/spring-ai.git</developerConnection>
|
|
</scm>
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
<groupId>com.google.protobuf</groupId>
|
|
<artifactId>protobuf-java</artifactId>
|
|
<version>${protobuf-java.version}</version>
|
|
</dependency>
|
|
|
|
<!-- production dependencies -->
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-openai</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-postgresml</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-azure-openai</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-huggingface</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-ollama</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Transformers Embedding Client -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-transformers</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Pinecone Vector Store-->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-pinecone</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Because of Pinecone compatability issues downgrade
|
|
netty-codec-http2 from 4.1.101.Final to 4.1.100.Final -->
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-codec-http2</artifactId>
|
|
<version>4.1.100.Final</version>
|
|
</dependency>
|
|
|
|
<!-- Milvus Vector Store -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-milvus-store</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- PG Vector Store-->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-pgvector-store</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- SAP Hana Cloud Vector Store-->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-hanadb-store</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.pgvector</groupId>
|
|
<artifactId>pgvector</artifactId>
|
|
<version>${pgvector.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.postgresql</groupId>
|
|
<artifactId>postgresql</artifactId>
|
|
<version>${postgresql.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Chroma Vector Store -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-chroma-store</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Azure Vector Store -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-azure-vector-store</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Apache Cassandra Vector Store -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-cassandra</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Weaviate Vector Store -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-weaviate-store</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Redis Vector Store-->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-redis</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Override Jedis version -->
|
|
<dependency>
|
|
<groupId>redis.clients</groupId>
|
|
<artifactId>jedis</artifactId>
|
|
<version>5.1.0</version>
|
|
</dependency>
|
|
|
|
<!-- Vertex AI PaLM2 -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-vertex-ai-palm2</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Vertex AI Gemini -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-vertex-ai-gemini</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Stability AI LLM -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-stability-ai</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- WatsonX AI -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-watsonx-ai</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Bedrock -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-bedrock</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Mistral AI LLM -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-mistral-ai</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Neo4j Vector Store-->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-neo4j-store</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Qdrant Vector Store-->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-qdrant</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-mongodb-atlas-store</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-anthropic</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-elasticsearch-store</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- test dependencies -->
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-test</artifactId>
|
|
<version>${project.parent.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-jdbc</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.postgresql</groupId>
|
|
<artifactId>postgresql</artifactId>
|
|
<version>${postgresql.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-testcontainers</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>testcontainers</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>postgresql</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>junit-jupiter</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>cassandra</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.redis</groupId>
|
|
<artifactId>testcontainers-redis</artifactId>
|
|
<version>2.2.0</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.awaitility</groupId>
|
|
<artifactId>awaitility</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>neo4j</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>qdrant</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>elasticsearch</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.skyscreamer</groupId>
|
|
<artifactId>jsonassert</artifactId>
|
|
<version>1.5.0</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
|
|
</project>
|