fix(playbook): preserve exact match scores in hybrid recommendations
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled

This commit is contained in:
ogt
2026-07-10 00:55:10 +08:00
parent e8ab80023c
commit d4266cb494
2 changed files with 20 additions and 0 deletions

View File

@@ -350,6 +350,11 @@ class PlaybookService:
hybrid_by_id = {match.playbook_id: match for match in hybrid_matches}
for playbook_id, jaccard_score in jaccard_results:
if playbook_id in hybrid_by_id:
match = hybrid_by_id[playbook_id]
if match.similarity_score < jaccard_score:
match.similarity_score = jaccard_score
if match.match_type == "vector":
match.match_type = "hybrid"
continue
hybrid_matches.append(
PlaybookMatch(

View File

@@ -250,6 +250,21 @@ class TestPlaybookService:
playbook = create_test_playbook()
await mock_repo.create(playbook)
class LowerScoringRagService:
async def hybrid_search(self, **_kwargs):
return [
PlaybookMatch(
playbook_id=playbook.playbook_id,
similarity_score=0.4,
match_type="hybrid",
)
]
async def fake_rag_service():
return LowerScoringRagService()
service._get_rag_service = fake_rag_service
# Query with matching symptoms
symptoms = SymptomPattern(
alert_names=["HighCPU"],