-
Notifications
You must be signed in to change notification settings - Fork 25.5k
Removing elastic reranker chunking feature flag and allow return_documents to be false #136045
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
f58e554
5f08296
a647e69
7416998
c4f9cd7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -111,7 +111,8 @@ public void testParseChunkedRerankResultsListener_NonRankedDocsResults() { | |
ActionListener.wrap( | ||
results -> fail("Expected failure but got: " + results.getClass()), | ||
e -> assertTrue(e instanceof IllegalArgumentException && e.getMessage().contains("Expected RankedDocsResults")) | ||
) | ||
), | ||
randomBoolean() | ||
); | ||
|
||
listener.onResponse(new InferenceServiceResults() { | ||
|
@@ -124,18 +125,24 @@ public void testParseChunkedRerankResultsListener_EmptyInput() { | |
assertThat(results, instanceOf(RankedDocsResults.class)); | ||
var rankedDocResults = (RankedDocsResults) results; | ||
assertEquals(0, rankedDocResults.getRankedDocs().size()); | ||
}, e -> fail("Expected successful parsing but got failure: " + e))); | ||
}, e -> fail("Expected successful parsing but got failure: " + e)), randomBoolean()); | ||
listener.onResponse(new RankedDocsResults(List.of())); | ||
} | ||
|
||
public void testParseChunkedRerankResultsListener_SingleInputWithoutChunking() { | ||
var inputs = List.of(generateTestText(10)); | ||
var chunker = new RerankRequestChunker(TEST_SENTENCE, inputs, null); | ||
var returnDocuments = randomBoolean(); | ||
var listener = chunker.parseChunkedRerankResultsListener(ActionListener.wrap(results -> { | ||
assertThat(results, instanceOf(RankedDocsResults.class)); | ||
var rankedDocResults = (RankedDocsResults) results; | ||
assertEquals(1, rankedDocResults.getRankedDocs().size()); | ||
}, e -> fail("Expected successful parsing but got failure: " + e))); | ||
if (returnDocuments) { | ||
assertNotNull(rankedDocResults.getRankedDocs().get(0).text()); | ||
|
||
} else { | ||
assertNull(rankedDocResults.getRankedDocs().get(0).text()); | ||
} | ||
}, e -> fail("Expected successful parsing but got failure: " + e)), returnDocuments); | ||
|
||
var chunkedInputs = chunker.getChunkedInputs(); | ||
assertEquals(1, chunkedInputs.size()); | ||
|
@@ -147,35 +154,48 @@ public void testParseChunkedRerankResultsListener_SingleInputWithChunking() { | |
var relevanceScore1 = randomFloatBetween(0, 1, true); | ||
var relevanceScore2 = randomFloatBetween(0, 1, true); | ||
var chunker = new RerankRequestChunker(TEST_SENTENCE, inputs, null); | ||
var returnDocuments = randomBoolean(); | ||
var listener = chunker.parseChunkedRerankResultsListener(ActionListener.wrap(results -> { | ||
assertThat(results, instanceOf(RankedDocsResults.class)); | ||
var rankedDocResults = (RankedDocsResults) results; | ||
assertEquals(1, rankedDocResults.getRankedDocs().size()); | ||
var expectedRankedDocs = List.of(new RankedDocsResults.RankedDoc(0, max(relevanceScore1, relevanceScore2), inputs.get(0))); | ||
var expectedRankedDocs = List.of( | ||
new RankedDocsResults.RankedDoc(0, max(relevanceScore1, relevanceScore2), returnDocuments ? inputs.get(0) : null) | ||
); | ||
assertEquals(expectedRankedDocs, rankedDocResults.getRankedDocs()); | ||
}, e -> fail("Expected successful parsing but got failure: " + e))); | ||
if (returnDocuments) { | ||
assertNotNull(rankedDocResults.getRankedDocs().get(0).text()); | ||
} else { | ||
assertNull(rankedDocResults.getRankedDocs().get(0).text()); | ||
} | ||
|
||
}, e -> fail("Expected successful parsing but got failure: " + e)), returnDocuments); | ||
|
||
var chunkedInputs = chunker.getChunkedInputs(); | ||
assertEquals(3, chunkedInputs.size()); | ||
var rankedDocsResults = List.of( | ||
new RankedDocsResults.RankedDoc(0, relevanceScore1, chunkedInputs.get(0)), | ||
new RankedDocsResults.RankedDoc(1, relevanceScore2, chunkedInputs.get(1)) | ||
); | ||
// TODO: Sort this so that the assumption that the results are in order holds | ||
listener.onResponse(new RankedDocsResults(rankedDocsResults)); | ||
} | ||
|
||
public void testParseChunkedRerankResultsListener_MultipleInputsWithoutChunking() { | ||
var inputs = List.of(generateTestText(10), generateTestText(10)); | ||
var chunker = new RerankRequestChunker(TEST_SENTENCE, inputs, null); | ||
var returnDocuments = randomBoolean(); | ||
var listener = chunker.parseChunkedRerankResultsListener(ActionListener.wrap(results -> { | ||
assertThat(results, instanceOf(RankedDocsResults.class)); | ||
var rankedDocResults = (RankedDocsResults) results; | ||
assertEquals(2, rankedDocResults.getRankedDocs().size()); | ||
var sortedResults = new ArrayList<>(rankedDocResults.getRankedDocs()); | ||
sortedResults.sort((r1, r2) -> Float.compare(r2.relevanceScore(), r1.relevanceScore())); | ||
assertEquals(sortedResults, rankedDocResults.getRankedDocs()); | ||
}, e -> fail("Expected successful parsing but got failure: " + e))); | ||
if (returnDocuments) { | ||
rankedDocResults.getRankedDocs().forEach(r -> { assertNotNull(r.text()); }); | ||
} else { | ||
rankedDocResults.getRankedDocs().forEach(r -> { assertNull(r.text()); }); | ||
} | ||
|
||
}, e -> fail("Expected successful parsing but got failure: " + e)), returnDocuments); | ||
|
||
var chunkedInputs = chunker.getChunkedInputs(); | ||
assertEquals(2, chunkedInputs.size()); | ||
|
@@ -192,14 +212,20 @@ public void testParseChunkedRerankResultsListener_MultipleInputsWithoutChunking( | |
public void testParseChunkedRerankResultsListener_MultipleInputsWithSomeChunking() { | ||
var inputs = List.of(generateTestText(10), generateTestText(100)); | ||
var chunker = new RerankRequestChunker(TEST_SENTENCE, inputs, null); | ||
var returnDocuments = randomBoolean(); | ||
var listener = chunker.parseChunkedRerankResultsListener(ActionListener.wrap(results -> { | ||
assertThat(results, instanceOf(RankedDocsResults.class)); | ||
var rankedDocResults = (RankedDocsResults) results; | ||
assertEquals(2, rankedDocResults.getRankedDocs().size()); | ||
var sortedResults = new ArrayList<>(rankedDocResults.getRankedDocs()); | ||
sortedResults.sort((r1, r2) -> Float.compare(r2.relevanceScore(), r1.relevanceScore())); | ||
assertEquals(sortedResults, rankedDocResults.getRankedDocs()); | ||
}, e -> fail("Expected successful parsing but got failure: " + e))); | ||
if (returnDocuments) { | ||
rankedDocResults.getRankedDocs().forEach(r -> { assertNotNull(r.text()); }); | ||
} else { | ||
rankedDocResults.getRankedDocs().forEach(r -> { assertNull(r.text()); }); | ||
} | ||
}, e -> fail("Expected successful parsing but got failure: " + e)), returnDocuments); | ||
|
||
var chunkedInputs = chunker.getChunkedInputs(); | ||
assertEquals(4, chunkedInputs.size()); | ||
|
@@ -217,14 +243,20 @@ public void testParseChunkedRerankResultsListener_MultipleInputsWithSomeChunking | |
public void testParseChunkedRerankResultsListener_MultipleInputsWithAllRequiringChunking() { | ||
var inputs = List.of(generateTestText(100), generateTestText(100)); | ||
var chunker = new RerankRequestChunker(TEST_SENTENCE, inputs, null); | ||
var returnDocuments = randomBoolean(); | ||
var listener = chunker.parseChunkedRerankResultsListener(ActionListener.wrap(results -> { | ||
assertThat(results, instanceOf(RankedDocsResults.class)); | ||
var rankedDocResults = (RankedDocsResults) results; | ||
assertEquals(2, rankedDocResults.getRankedDocs().size()); | ||
var sortedResults = new ArrayList<>(rankedDocResults.getRankedDocs()); | ||
sortedResults.sort((r1, r2) -> Float.compare(r2.relevanceScore(), r1.relevanceScore())); | ||
assertEquals(sortedResults, rankedDocResults.getRankedDocs()); | ||
}, e -> fail("Expected successful parsing but got failure: " + e))); | ||
if (returnDocuments) { | ||
rankedDocResults.getRankedDocs().forEach(r -> { assertNotNull(r.text()); }); | ||
} else { | ||
rankedDocResults.getRankedDocs().forEach(r -> { assertNull(r.text()); }); | ||
} | ||
}, e -> fail("Expected successful parsing but got failure: " + e)), returnDocuments); | ||
|
||
var chunkedInputs = chunker.getChunkedInputs(); | ||
assertEquals(6, chunkedInputs.size()); | ||
|
Uh oh!
There was an error while loading. Please reload this page.