- EmbeddingClient implementation that computes, locally, sentence embeddings with SBERT transformers. - Uses pre-trained transformer models, serialized into Open Neural Network Exchange (ONNX) format. - Deep Java Library and the Microsoft ONNX Java Runtime are used to run the ONNX models and compute the embeddings efficiently. - Add default tokenizer.json and model.onnx for sentence-transformers/all-MiniLM-L6-v2. - Add, configurable resource caching service to allow caching remote (http/https) resources to the local FS. - README.md provides information on how to serialize ONNX models. - add Git LFS configuration for large onnx model files.
398 lines
12 KiB
XML
398 lines
12 KiB
XML
<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/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<groupId>org.springframework.experimental.ai</groupId>
|
|
<artifactId>spring-ai</artifactId>
|
|
<version>0.7.0-SNAPSHOT</version>
|
|
|
|
<packaging>pom</packaging>
|
|
<url>https://github.com/spring-projects-experimental/spring-ai</url>
|
|
|
|
<name>Spring AI</name>
|
|
<description>Building AI applications with Spring Boot</description>
|
|
|
|
<modules>
|
|
<module>spring-ai-core</module>
|
|
<module>spring-ai-openai</module>
|
|
<module>spring-ai-azure-openai</module>
|
|
<module>spring-ai-ollama</module>
|
|
<module>spring-ai-spring-boot-autoconfigure</module>
|
|
<module>spring-ai-spring-boot-starters/spring-ai-starter-openai</module>
|
|
<module>spring-ai-spring-boot-starters/spring-ai-starter-azure-openai</module>
|
|
<module>spring-ai-docs</module>
|
|
<module>vector-stores/spring-ai-pgvector-store</module>
|
|
<module>vector-stores/spring-ai-milvus-store</module>
|
|
<module>vector-stores/spring-ai-neo4j-store</module>
|
|
<module>embedding-clients/spring-ai-postgresml-embedding-client</module>
|
|
<module>document-readers/pdf-reader</module>
|
|
<module>document-readers/tika-reader</module>
|
|
<module>embedding-clients/transformers-embedding</module>
|
|
</modules>
|
|
|
|
<organization>
|
|
<name>VMware Inc.</name>
|
|
<url>https://spring.io</url>
|
|
</organization>
|
|
<scm>
|
|
<url>https://github.com/spring-projects-experimental/spring-ai</url>
|
|
<connection>git://github.com/spring-projects-experimental/spring-ai.git</connection>
|
|
<developerConnection>git@github.com:spring-projects-experimental/spring-ai.git</developerConnection>
|
|
</scm>
|
|
<issueManagement>
|
|
<system>Github Issues</system>
|
|
<url>https://github.com/spring-projects-experimental/spring-ai/issues</url>
|
|
</issueManagement>
|
|
<ciManagement>
|
|
<system>Github Actions</system>
|
|
<url>https://github.com/spring-projects-experimental/spring-ai/actions</url>
|
|
</ciManagement>
|
|
<distributionManagement>
|
|
<snapshotRepository>
|
|
<id>spring-snapshots</id>
|
|
<url>https://repo.spring.io/libs-snapshot-local</url>
|
|
<releases>
|
|
<enabled>false</enabled>
|
|
</releases>
|
|
</snapshotRepository>
|
|
</distributionManagement>
|
|
<licenses>
|
|
<license>
|
|
<name>Apache 2.0</name>
|
|
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
|
<distribution>repo</distribution>
|
|
</license>
|
|
</licenses>
|
|
|
|
<properties>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
<java.version>17</java.version>
|
|
|
|
<!-- production dependencies -->
|
|
<spring-boot.version>3.1.2</spring-boot.version>
|
|
<stringtemplate.version>4.0.2</stringtemplate.version>
|
|
<open-ai-client.version>0.16.0</open-ai-client.version>
|
|
<azure-open-ai-client.version>1.0.0-beta.3</azure-open-ai-client.version>
|
|
<jtokkit.version>0.6.1</jtokkit.version>
|
|
<victools.version>4.31.1</victools.version>
|
|
|
|
<!-- readers/writer/stores dependecies-->
|
|
<pdfbox.version>3.0.0</pdfbox.version>
|
|
<pgvector.version>0.1.3</pgvector.version>
|
|
<postgresql.version>42.6.0</postgresql.version>
|
|
<milvus.version>2.3.0</milvus.version>
|
|
|
|
<!-- testing dependecies -->
|
|
<testcontainers.version>1.19.0</testcontainers.version>
|
|
|
|
<!-- documentation dependencies -->
|
|
<io.spring.maven.antora-version>0.0.4</io.spring.maven.antora-version>
|
|
<asciidoctorj-pdf.version>1.6.2</asciidoctorj-pdf.version> <!-- FIXME build failure with version 2.3.9 -->
|
|
<asciidoctorj-epub.version>1.5.1</asciidoctorj-epub.version>
|
|
<spring-asciidoctor-backends.version>0.0.6</spring-asciidoctor-backends.version>
|
|
|
|
<!-- plugin versions -->
|
|
<maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version>
|
|
<maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version>
|
|
<maven-failsafe-plugin.version>3.1.2</maven-failsafe-plugin.version>
|
|
<maven-javadoc-plugin.version>3.5.0</maven-javadoc-plugin.version>
|
|
<maven-source-plugin.version>3.3.0</maven-source-plugin.version>
|
|
<jacoco-maven-plugin.version>0.8.10</jacoco-maven-plugin.version>
|
|
<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
|
|
<maven-deploy-plugin.version>3.1.1</maven-deploy-plugin.version>
|
|
<asciidoctor-maven-plugin.version>2.2.3</asciidoctor-maven-plugin.version>
|
|
<maven-assembly-plugin.version>3.6.0</maven-assembly-plugin.version>
|
|
<maven-dependency-plugin.version>3.5.0</maven-dependency-plugin.version>
|
|
<maven-site-plugin.version>3.12.1</maven-site-plugin.version>
|
|
<maven-project-info-reports-plugin.version>3.4.5</maven-project-info-reports-plugin.version>
|
|
<maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
|
|
<spring-javaformat-maven-plugin.version>0.0.39</spring-javaformat-maven-plugin.version>
|
|
|
|
</properties>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>io.spring.javaformat</groupId>
|
|
<artifactId>spring-javaformat-maven-plugin</artifactId>
|
|
<version>${spring-javaformat-maven-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>validate</phase>
|
|
<inherited>true</inherited>
|
|
<goals>
|
|
<goal>validate</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>${maven-compiler-plugin.version}</version>
|
|
<configuration>
|
|
<release>${java.version}</release>
|
|
<compilerArgs>
|
|
<compilerArg>-parameters</compilerArg>
|
|
</compilerArgs>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>${maven-surefire-plugin.version}</version>
|
|
<configuration>
|
|
<argLine>${surefireArgLine}</argLine>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<version>${maven-jar-plugin.version}</version>
|
|
<configuration>
|
|
<archive>
|
|
<manifestEntries>
|
|
<Implementation-Title>${project.artifactId}</Implementation-Title>
|
|
<Implementation-Version>${project.version}</Implementation-Version>
|
|
</manifestEntries>
|
|
</archive>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>${maven-javadoc-plugin.version}</version>
|
|
<configuration>
|
|
<excludePackageNames>
|
|
org.springframework.ai.sample.*
|
|
</excludePackageNames>
|
|
<overview>${project.basedir}/spring-ai-docs/src/main/javadoc/overview.html</overview>
|
|
<detectJavaApiLink>false</detectJavaApiLink>
|
|
<doclint>all,-missing</doclint>
|
|
<quiet>true</quiet>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>generate-javadocs</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>generate-aggregate-javadocs</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>aggregate</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>${maven-source-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>generate-sources</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>flatten-maven-plugin</artifactId>
|
|
<version>${flatten-maven-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>flatten</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>flatten</goal>
|
|
</goals>
|
|
<configuration>
|
|
<updatePomFile>true</updatePomFile>
|
|
<flattenMode>ossrh</flattenMode>
|
|
<pomElements>
|
|
<distributionManagement>remove</distributionManagement>
|
|
<dependencyManagement>resolve</dependencyManagement>
|
|
<repositories>remove</repositories>
|
|
<scm>keep</scm>
|
|
<url>keep</url>
|
|
<organization>resolve</organization>
|
|
</pomElements>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>clean</id>
|
|
<phase>clean</phase>
|
|
<goals>
|
|
<goal>clean</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-site-plugin</artifactId>
|
|
<version>${maven-site-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-deploy-plugin</artifactId>
|
|
<version>${maven-deploy-plugin.version}</version>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>integration-tests</id>
|
|
<activation>
|
|
<activeByDefault>false</activeByDefault>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-failsafe-plugin</artifactId>
|
|
<version>${maven-failsafe-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>integration-test</goal>
|
|
<goal>verify</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>test-coverage</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
<version>${jacoco-maven-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>prepare-agent</id>
|
|
<goals>
|
|
<goal>prepare-agent</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>report</id>
|
|
<goals>
|
|
<goal>report</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>artifactory-staging</id>
|
|
<distributionManagement>
|
|
<repository>
|
|
<id>spring-staging</id>
|
|
<url>https://repo.spring.io/libs-staging-local</url>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</distributionManagement>
|
|
</profile>
|
|
<profile>
|
|
<id>artifactory-milestone</id>
|
|
<distributionManagement>
|
|
<repository>
|
|
<id>spring-milestones</id>
|
|
<url>https://repo.spring.io/libs-milestone-local</url>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</distributionManagement>
|
|
</profile>
|
|
</profiles>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-dependencies</artifactId>
|
|
<version>${spring-boot.version}</version>
|
|
<type>pom</type>
|
|
<scope>import</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>maven-central</id>
|
|
<url>https://repo.maven.apache.org/maven2/</url>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
<releases>
|
|
<enabled>true</enabled>
|
|
</releases>
|
|
</repository>
|
|
<repository>
|
|
<id>spring-snapshots</id>
|
|
<name>Spring Snapshots</name>
|
|
<url>https://repo.spring.io/snapshot</url>
|
|
<snapshots>
|
|
<enabled>true</enabled>
|
|
</snapshots>
|
|
<releases>
|
|
<enabled>false</enabled>
|
|
</releases>
|
|
</repository>
|
|
<repository>
|
|
<id>spring-milestones</id>
|
|
<name>Spring Milestones</name>
|
|
<url>https://repo.spring.io/milestone</url>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<developers>
|
|
<developer>
|
|
<id>mpollack</id>
|
|
<name>Mark Pollack</name>
|
|
<email>mpollack at vmware.com</email>
|
|
<organization>VMware</organization>
|
|
<organizationUrl>http://www.spring.io</organizationUrl>
|
|
<roles>
|
|
<role>lead</role>
|
|
</roles>
|
|
</developer>
|
|
</developers>
|
|
|
|
<reporting>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-project-info-reports-plugin</artifactId>
|
|
<version>${maven-project-info-reports-plugin.version}</version>
|
|
<configuration>
|
|
<skip>true</skip>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</reporting>
|
|
|
|
</project> |