Add vertex ai autoconfig and spring boot

- Add Vertex AI Autoconfigurations for chat and embedding clients.
 - Factor out the embeding client dimensions() computation into an abstract parent AbstractEmbeddingClient.
 - Add ITs
 - Vertex dos.
This commit is contained in:
Christian Tzolov
2023-12-12 17:36:43 +01:00
parent 75cf8bee8c
commit 11e47c07ef
22 changed files with 555 additions and 104 deletions

View File

@@ -6,7 +6,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -25,7 +24,7 @@ import org.springframework.util.StringUtils;
*
* @author Toshiaki Maki
*/
public class PostgresMlEmbeddingClient implements EmbeddingClient, InitializingBean {
public class PostgresMlEmbeddingClient extends AbstractEmbeddingClient implements InitializingBean {
private final JdbcTemplate jdbcTemplate;
@@ -35,8 +34,6 @@ public class PostgresMlEmbeddingClient implements EmbeddingClient, InitializingB
private final String kwargs;
private final AtomicInteger embeddingDimensions = new AtomicInteger(-1);
private final MetadataMode metadataMode;
public enum VectorType {
@@ -162,14 +159,6 @@ public class PostgresMlEmbeddingClient implements EmbeddingClient, InitializingB
Map.of("transformer", this.transformer, "vector-type", this.vectorType.name(), "kwargs", this.kwargs));
}
@Override
public int dimensions() {
if (this.embeddingDimensions.get() < 0) {
this.embeddingDimensions.set(EmbeddingUtil.dimensions(this, this.transformer));
}
return this.embeddingDimensions.get();
}
@Override
public void afterPropertiesSet() {
this.jdbcTemplate.execute("CREATE EXTENSION IF NOT EXISTS pgml");