Skip to content

Commit 134ed71

Browse files
committed
Fix(rerank): Correct relevanceScore setter to use double to avoid format
exception - Changed setRelevanceScore parameter from int to double - Prevented IllegalFormatConversionException when formatting with %.4f Signed-off-by: KoreaNirsa <[email protected]>
1 parent e31e6d9 commit 134ed71

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

spring-ai-rag/src/main/java/org/springframework/ai/rag/postretrieval/rerank/CohereReranker.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.Collections;
44
import java.util.Comparator;
5+
import java.util.HashMap;
56
import java.util.List;
67
import java.util.Map;
78
import java.util.Optional;
@@ -81,7 +82,12 @@ public List<Document> rerank(String query, List<Document> documents, int topN) {
8182
return sendRerankRequest(payload)
8283
.map(results -> results.stream()
8384
.sorted(Comparator.comparingDouble(RerankResponse.Result::getRelevanceScore).reversed())
84-
.map(r -> documents.get(r.getIndex()))
85+
.map(r -> {
86+
Document original = documents.get(r.getIndex());
87+
Map<String, Object> metadata = new HashMap<>(original.getMetadata());
88+
metadata.put("score", String.format("%.4f", r.getRelevanceScore()));
89+
return new Document(original.getText(), metadata);
90+
})
8591
.toList())
8692
.orElseGet(() -> {
8793
logger.warn("Cohere response is null or invalid");

spring-ai-rag/src/main/java/org/springframework/ai/rag/postretrieval/rerank/RerankResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static class Result {
3030
private int index;
3131

3232
@JsonProperty("relevance_score")
33-
private int relevanceScore;
33+
private double relevanceScore;
3434

3535
public int getIndex() {
3636
return index;
@@ -40,11 +40,11 @@ public void setIndex(int index) {
4040
this.index = index;
4141
}
4242

43-
public int getRelevanceScore() {
43+
public double getRelevanceScore() {
4444
return relevanceScore;
4545
}
4646

47-
public void setRelevanceScore(int relevanceScore) {
47+
public void setRelevanceScore(double relevanceScore) {
4848
this.relevanceScore = relevanceScore;
4949
}
5050
}

0 commit comments

Comments
 (0)