Skip to content

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).

readonly object[]

Record<ModelClass, ServingEndpointSummary[]>