Code: Select all
# Neo4j
spring.ai.vectorstore.neo4j.initialize-schema=true
spring.ai.vectorstore.neo4j.database-name=neo4j
spring.ai.vectorstore.neo4j.index-name=vec_index
spring.ai.vectorstore.neo4j.distance-type=cosine
spring.ai.vectorstore.neo4j.dimensions=768
spring.ai.vectorstore.neo4j.embedding-property=embedding
spring.ai.vectorstore.neo4j.label=default_doc_label
Aber ich verwenden die Methode. />
Code: Select all
"Failed to invoke procedure `db.index.vector.queryNodes`: Caused by: java.lang.IllegalArgumentException: Index query vector has 768 dimensions, but indexed vectors have 1536"
< /code>
Ich frage mich, wie ich das lösen kann, vielen Dank !! Schätzen Sie es wirklich, wenn Sie Meister mir helfen könnten. Hier ist mein Code: < /p>
import java.util.List;
import org.springframework.ai.document.Document;
import org.springframework.ai.embedding.EmbeddingModel;
import org.springframework.ai.embedding.EmbeddingResponse;
import org.springframework.ai.vectorstore.SearchRequest;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class EmbeddingApi {
@Autowired
private EmbeddingModel embeddingModel;
@Autowired
private VectorStore vectorStore;
@GetMapping("/doc/embedding")
public EmbeddingResponse getEmbedding(@RequestParam("text") String text) {
EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(text));
System.out.println("demension" + embeddingResponse.getResults().get(0).getOutput().length);
return embeddingResponse;
}
@PostMapping("/doc/store")
public String storeEmbedding(@RequestParam("text") String text) {
Document doc = new Document(text);
vectorStore.add(List.of(doc));
return "Stored successfully!";
}
@PostMapping("/doc/search")
public List searchDocument(@RequestParam("input")String input){
EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(input));
System.out.println("demension: " + embeddingResponse.getResults().get(0).getOutput().length);
System.out.println("====================================================================");
// float[] embedding = embeddingResponse.getResults().get(0).getOutput();
List results = vectorStore.similaritySearch(SearchRequest.builder()
.query(input)
.topK(1)
.build());
return results;
}
}