Bug description I created everything on standard settings. Connection to OpenAI and the Neo4j vector database.
Environment
Steps to reproduce Create connection to OpenAI and create Neo4j vector database.
public EmbeddingModel embeddingModel() {
return new OpenAiEmbeddingModel(new OpenAiApi(embeddingBaseUrl, embeddingApiKey), MetadataMode.EMBED, OpenAiEmbeddingOptions.builder().withModel(embeddingModel).build());
}
public Neo4jVectorStore neo4jVectorStore(Driver driver, EmbeddingModel embeddingModel) {
return new Neo4jVectorStore(driver, embeddingModel, Neo4jVectorStoreConfig.defaultConfig(), true);
}
public List<Document> findSimilarContent(SimilarContentRequest request) {
SearchRequest searchRequest = SearchRequest.query(request.getQuery())
.withTopK(request.getTopK())
.withFilterExpression(buildFilterExpression(request.getMetadata()));
return vectorStore.similaritySearch(searchRequest);
}
org.neo4j.driver.exceptions.ClientException: Failed to invoke procedure `db.index.vector.queryNodes`: Caused by: java.lang.IllegalArgumentException: Index query vector has 3072 dimensions, but indexed vectors have 1536.
I've check using Neo4j Console there is index spring-ai-document-index so created by spring ai with following settings: { "indexProvider": "vector-2.0", "indexConfig": { "vector.dimensions": 1536, "vector.similarity_function": "COSINE" } }
so spring ai set the wrong index even though he had the embedding model in hand and couldn't put it together properly, causing the solution not to work
Expected behavior When I use EmbeddingModel to create VectoreStore everything should be created correctly. Correct indexes and probably other errors that I will come across
Comment From: csterwa
@ErykCh can you check latest M2 version to see if this is resolved?
Comment From: meistermeier
There is now a PR in place that targets this unexpected behaviour: https://github.com/spring-projects/spring-ai/pull/2072