{{ message }}
Repository navigation
Conversation
jfrancoa
force-pushed
the
jose/rerank-decide
branch
2 times, most recently
from
October 13, 2026 13:21
ba924f7 to
a389b0a
Compare
jfrancoa
force-pushed
the
jose/decide-openai
branch
2 times, most recently
from
October 13, 2026 13:51
92bde34 to
82d568a
Compare
jfrancoa
force-pushed
the
jose/rerank-decide
branch
from
October 13, 2026 13:51
a389b0a to
2c1e09c
Compare
4 tasks
The Rerank gRPC message gains an optional decision sub-message with min_probability and order. Its presence routes the rerank to the class's decisions module, which answers the query as a predicate about every candidate; the probability is the score, the candidates below the threshold are dropped, and the survivors keep the search order or are sorted by probability. A class without a decisions module rejects it, and a plain rerank on a class with a reranker and a decisions module goes to the reranker. The class settings minProbability and order of a decisions module are the defaults the request overrides. The threshold and the order live once in the shared rank provider, for every decisions module. decisions-typesafeai loses its own filter, the rubric on rerank and the X-Typesafeai-Min-Probability, -Min-Score, -Score-Levels and -Order headers; a rubric is a score question of decide. decisions-openai gains the minProbability and order class settings. decisions-dummy answers a rerank as the predicate it already answers, so the acceptance tests can tell the reranker from the decisions module on one class. [api]
A rerank by a decision on a class without a decisions module, or with a limit above the module's maxDocuments, now fails in the gRPC parser as decide does, before the search runs. The limit check is shared with decide.
jfrancoa
force-pushed
the
jose/decide-openai
branch
from
October 13, 2026 17:12
82d568a to
3e46b50
Compare
jfrancoa
force-pushed
the
jose/rerank-decide
branch
from
October 13, 2026 17:12
2c1e09c to
590e321
Compare
1 of 4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




What's being changed:
rerankby a decision model:Rerank.decisionon the gRPC request sends the rerank query to the collection's decisions module as a yes/no question about every candidate. The probability is thererank_score, candidates belowmin_probabilityare dropped, andorderkeeps the search order or sorts by probability. The RFC section is "rerank with a decision model".Proto.
Rerank.decision(RerankDecision { optional double min_probability = 1; optional RerankOrder order = 2; },RerankOrdersearchorprobability). A field left unset takes the class setting of the module (minProbability,order, on bothdecisions-typesafeaianddecisions-openai); a value out of range fails before the search.Routing (
usecases/modules). A class may have one reranker and one decisions module (#13477).rerankwithoutdecisiongoes to the reranker; a class with only a decisions module serves it as a relevance predicate.rerankwithdecisiongoes to the decisions module, and is an error on a class without one.decidealways goes to the decisions module.Shared rank provider (
usecases/modulecomponents/additional/rank).Params.Decisioncarries the request values;DecisionDefaultsreads the class settings; afterRank, the threshold and the order apply for decisions providers only, so rerankers are unchanged. The page can come back short: nothing is fetched beyondoffset+limit(no over-fetch in this version, see the RFC), andmaxDocumentsbounds the page.Modules.
decisions-typesafeailoses its own filter (filter.go), the rubric settings (scoreLevels,minScore) and the per-request headersX-Typesafeai-Min-Probability,-Order,-Score-Levels,-Min-Score; threshold and order come from core.decisions-openaigets theminProbabilityandorderclass settings.decisions-dummyranks by the share of the query words in the text, so the acceptance tests can check thresholds and orders.Tests. Rank provider (threshold, order, class defaults, request override, rerankers untouched), modules provider (routing, the error without a decisions module), gRPC parsing (the sub-message, unset fields, out-of-range values). Acceptance (
test/acceptance/decisions): class defaults, threshold, order by probability, the plain rerank fallback, class setting overridden by the request, the error on a reranker-only class, the out-of-range error, and a class with both modules.Stacked on #13485. The rubric rerank (
levels,min_score) is a later PR. Client: weaviate/weaviate-python-client#2198.Review checklist