fix: degrade to partial results below the grounding floor
This commit is contained in:
parent
0ccc9a5d4e
commit
47cbeac87a
3 changed files with 68 additions and 3 deletions
|
|
@ -243,3 +243,46 @@ def _track(track_id: str, title: str) -> Track:
|
|||
album_art_url=None,
|
||||
external_url=None,
|
||||
)
|
||||
|
||||
|
||||
def test_below_floor_pool_streams_partial_results_after_warning() -> None:
|
||||
async def run() -> None:
|
||||
found = _track("found", "Found Song")
|
||||
missing = _track("missing", "Missing Song")
|
||||
catalog = FakeCatalog((found,))
|
||||
recommender = FakeRecommender([_intent(found, missing)])
|
||||
pipeline = RecommendationPipeline(
|
||||
recommender,
|
||||
Settings(
|
||||
rerank_count=2,
|
||||
rerank_pool_buffer=0,
|
||||
grounding_floor=2,
|
||||
grounding_concurrency=2,
|
||||
request_deadline_seconds=1.0,
|
||||
),
|
||||
)
|
||||
|
||||
events = await _collect(pipeline, catalog, "query")
|
||||
|
||||
assert [event.type for event in events] == ["metadata", "warning", "track", "done"]
|
||||
warning = events[1]
|
||||
assert warning.type == "warning"
|
||||
assert warning.code == "partial_results"
|
||||
|
||||
asyncio.run(run())
|
||||
|
||||
|
||||
def test_empty_pool_is_a_terminal_error() -> None:
|
||||
async def run() -> None:
|
||||
missing = _track("missing", "Missing Song")
|
||||
catalog = FakeCatalog(())
|
||||
recommender = FakeRecommender([_intent(missing)])
|
||||
|
||||
events = await _run_pipeline(catalog, recommender)
|
||||
|
||||
assert [event.type for event in events] == ["metadata", "error"]
|
||||
error = events[-1]
|
||||
assert error.type == "error"
|
||||
assert error.code == "no_grounded_results"
|
||||
|
||||
asyncio.run(run())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue