Function: classifyEndpoints()
classifyEndpoints(
endpoints):Record<ModelClass,ServingEndpointSummary[]>
Bucket live endpoints into ModelClasses, ranked best-first within each chat band.
Embedding endpoints (task === "llm/v1/embeddings") go into
ModelClass.Embedding by task, in listing order (they carry no
capability score to rank on).
Chat endpoints (task === "llm/v1/chat") split into the three chat
bands. Scored endpoints (those carrying a profile.quality) drive
the banding: the observed quality distribution is split at its 1/3
and 2/3 quantiles, so the top third is ModelClass.ChatThinking,
the bottom third ModelClass.ChatFast, and the middle
ModelClass.ChatBalanced. Because the thresholds come from the
data, the split adapts as Databricks adds or rescores models -
nothing is pinned to a fixed score band.
Unscored chat endpoints are placed by classifyByFamily and ranked after the scored ones in their band; unrecognized, unscored endpoints (e.g. custom external models) are omitted entirely so they are never picked as an automatic default.
Within a chat band, scored models sort by quality desc, then cost
asc, then speed desc, then parsed name version desc; family-only
models sort by version rank then parsed version. The version
tie-break (versionTuple) is what separates point releases
that share a score profile (e.g. opus-4-8 ahead of opus-4-7).
Parameters
Section titled “Parameters”endpoints
Section titled “endpoints”readonly object[]
Returns
Section titled “Returns”Record<ModelClass, ServingEndpointSummary[]>