(results: SearchResult[])
| 171 | * the embedding model isn't confident about the ranking. |
| 172 | */ |
| 173 | export function isAmbiguous(results: SearchResult[]): boolean { |
| 174 | if (results.length < 3) return false; |
| 175 | |
| 176 | const topScore = results[0].score; |
| 177 | const thirdScore = results[Math.min(2, results.length - 1)].score; |
| 178 | const gap = topScore - thirdScore; |
| 179 | |
| 180 | return gap < AMBIGUITY_THRESHOLD; |
| 181 | } |
| 182 | |
| 183 | /** |
| 184 | * Rerank the top-K results using a cross-encoder. |
no outgoing calls
no test coverage detected