Revert default OpenAI embedding to text-embedding-ada-002 as some vector stores have problems with 3-small

This commit is contained in:
Christian Tzolov
2024-02-16 11:19:34 +01:00
parent 5391505098
commit fdd3fbb2f9
4 changed files with 9 additions and 7 deletions

View File

@@ -54,7 +54,7 @@ public class OpenAiApi {
private static final String DEFAULT_BASE_URL = "https://api.openai.com";
public static final String DEFAULT_CHAT_MODEL = "gpt-3.5-turbo";
public static final String DEFAULT_EMBEDDING_MODEL = "text-embedding-3-small";
public static final String DEFAULT_EMBEDDING_MODEL = "text-embedding-ada-002";
private static final Predicate<String> SSE_DONE_PREDICATE = "[DONE]"::equals;
private final RestClient restClient;

View File

@@ -42,7 +42,7 @@ class EmbeddingIT {
assertThat(embeddingResponse.getResults()).hasSize(1);
assertThat(embeddingResponse.getResults().get(0)).isNotNull();
assertThat(embeddingResponse.getResults().get(0).getOutput()).hasSize(1536);
assertThat(embeddingResponse.getMetadata()).containsEntry("model", "text-embedding-3-small");
assertThat(embeddingResponse.getMetadata()).containsEntry("model", "text-embedding-ada-002");
assertThat(embeddingResponse.getMetadata()).containsEntry("total-tokens", 2);
assertThat(embeddingResponse.getMetadata()).containsEntry("prompt-tokens", 2);
@@ -68,12 +68,12 @@ class EmbeddingIT {
void textEmbeddingAda002() {
EmbeddingResponse embeddingResponse = embeddingClient.call(new EmbeddingRequest(List.of("Hello World"),
OpenAiEmbeddingOptions.builder().withModel("text-embedding-ada-002").build()));
OpenAiEmbeddingOptions.builder().withModel("text-embedding-3-small").build()));
assertThat(embeddingResponse.getResults()).hasSize(1);
assertThat(embeddingResponse.getResults().get(0)).isNotNull();
assertThat(embeddingResponse.getResults().get(0).getOutput()).hasSize(1536);
assertThat(embeddingResponse.getMetadata()).containsEntry("model", "text-embedding-ada-002");
assertThat(embeddingResponse.getMetadata()).containsEntry("model", "text-embedding-3-small");
assertThat(embeddingResponse.getMetadata()).containsEntry("total-tokens", 2);
assertThat(embeddingResponse.getMetadata()).containsEntry("prompt-tokens", 2);

View File

@@ -62,7 +62,7 @@ The prefix `spring.ai.openai.embedding` is property prefix that configures the `
| spring.ai.openai.embedding.base-url | Optional overrides the spring.ai.openai.base-url to provide embedding specific url | -
| spring.ai.openai.embedding.api-key | Optional overrides the spring.ai.openai.api-key to provide embedding specific api-key | -
| spring.ai.openai.embedding.metadata-mode | Document content extraction mode. | EMBED
| spring.ai.openai.embedding.options.model | The model to use | text-embedding-3-small (other options: text-embedding-3-large, text-embedding-ada-002)
| spring.ai.openai.embedding.options.model | The model to use | text-embedding-ada-002 (other options: text-embedding-3-large, text-embedding-3-small)
| spring.ai.openai.embedding.options.encodingFormat | The format to return the embeddings in. Can be either float or base64. | -
| spring.ai.openai.embedding.options.user | A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. | -
|====

View File

@@ -310,8 +310,10 @@ public class MilvusVectorStoreIT {
@Bean
public EmbeddingClient embeddingClient() {
return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY")), MetadataMode.EMBED,
OpenAiEmbeddingOptions.builder().withModel("text-embedding-ada-002").build());
return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY")));
// return new OpenAiEmbeddingClient(new
// OpenAiApi(System.getenv("OPENAI_API_KEY")), MetadataMode.EMBED,
// OpenAiEmbeddingOptions.builder().withModel("text-embedding-ada-002").build());
}
}