ooai_llm.model_suites

Reusable model suites for comparisons and multi-model workflows.

Purpose:

Build configurable shortlists of models that can be iterated, serialized, converted to profiles, or materialized as LangChain chat models/runtimes.

Attributes

Classes

ModelSuiteEntry

One named model option inside a reusable suite.

ModelSuite

A named, iterable set of model options.

Functions

list_model_suite_names(→ list[str])

Return built-in suite names.

get_model_suite(→ ModelSuite)

Build a named suite from configured provider presets.

model_suite_from_presets(→ ModelSuite)

Build a suite from AppSettings provider presets.

model_suite_from_catalog(→ ModelSuite)

Build a suite from filtered catalog rows.

Module Contents

ooai_llm.model_suites.ModelSuiteStyle[source]
ooai_llm.model_suites.ModelSuiteName[source]
ooai_llm.model_suites.ModelSuiteRoleName[source]
ooai_llm.model_suites.DEFAULT_MODEL_SUITE_PRESETS: tuple[ooai_llm.settings.ModelPresetName, Ellipsis] = ('cheap', 'balanced', 'reasoning')[source]
ooai_llm.model_suites.COMPARISON_MODEL_SUITE_PRESETS: tuple[ooai_llm.settings.ModelPresetName, Ellipsis] = ('cheap', 'fast', 'balanced', 'reasoning', 'coding')[source]
ooai_llm.model_suites.TESTING_MODEL_SUITE_PRESETS: tuple[ooai_llm.settings.ModelPresetName, Ellipsis] = ('testing',)[source]
ooai_llm.model_suites.ALL_MODEL_SUITE_PRESETS: tuple[ooai_llm.settings.ModelPresetName, Ellipsis] = ('default', 'latest', 'cheap', 'testing', 'fast', 'balanced', 'reasoning', 'coding', 'vision')[source]
class ooai_llm.model_suites.ModelSuiteEntry(/, **data: Any)[source]

Bases: pydantic.BaseModel

One named model option inside a reusable suite.

model_config[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

key: str[source]
model: ooai_llm.types.ModelString[source]
role: ModelSuiteRoleName = 'custom'[source]
label: str | None = None[source]
description: str | None = None[source]
capabilities: list[str] = None[source]
reasoning: ooai_llm.reasoning.ReasoningInput = None[source]
profile_kwargs: dict[str, Any] = None[source]
tags: list[str] = None[source]
metadata: dict[str, Any] = None[source]
cost_labels: dict[str, str] = None[source]
cache: ooai_llm.profiles.CacheKeyPolicy | bool | None = None[source]
property provider: ooai_llm.providers.Provider | None[source]

Return the model provider when known.

model_name(*, style: ModelSuiteStyle = 'langchain') str[source]

Return the model string in the requested style.

to_profile(**overrides: Any) ooai_llm.profiles.ChatModelProfile[source]

Convert this suite entry into a serializable chat-model profile.

create_llm(*, settings: ooai_llm.settings.AppSettings | None = None, **overrides: Any) Any[source]

Create a LangChain chat model for this entry.

create_runtime(*, settings: ooai_llm.settings.AppSettings | None = None, id: str | None = None, **overrides: Any) ooai_llm.profiles.LLM[source]

Create an LLM runtime for this entry.

class ooai_llm.model_suites.ModelSuite(/, **data: Any)[source]

Bases: pydantic.BaseModel

A named, iterable set of model options.

model_config[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str[source]
description: str | None = None[source]
entries: list[ModelSuiteEntry] = None[source]
notes: list[str] = None[source]
__iter__() collections.abc.Iterator[ModelSuiteEntry][source]

Iterate over suite entries.

__len__() int[source]

Return the number of entries.

__getitem__(key: int | str) ModelSuiteEntry[source]

Get an entry by index or key.

property providers: list[str][source]

Return providers represented in the suite.

model_list(*, style: ModelSuiteStyle = 'langchain') list[str][source]

Return suite models as an ordered list of strings.

model_dict(*, style: ModelSuiteStyle = 'langchain') dict[str, str][source]

Return suite models keyed by entry key.

entry_dict() dict[str, ModelSuiteEntry][source]

Return full suite entries keyed by entry key.

by_provider() dict[str, list[ModelSuiteEntry]][source]

Group entries by provider.

filter(*, providers: collections.abc.Iterable[ooai_llm.providers.Provider | str] | None = None, roles: collections.abc.Iterable[ModelSuiteRoleName | str] | None = None, capabilities: collections.abc.Iterable[str] | None = None, keys: collections.abc.Iterable[str] | None = None) ModelSuite[source]

Return a filtered copy of this suite.

to_profiles(**overrides: Any) dict[str, ooai_llm.profiles.ChatModelProfile][source]

Convert every entry into a chat-model profile.

create_llms(*, settings: ooai_llm.settings.AppSettings | None = None, **overrides: Any) dict[str, Any][source]

Create LangChain chat models for every suite entry.

create_runtimes(*, settings: ooai_llm.settings.AppSettings | None = None, **overrides: Any) dict[str, ooai_llm.profiles.LLM][source]

Create LLM runtimes for every suite entry.

ooai_llm.model_suites.list_model_suite_names() list[str][source]

Return built-in suite names.

ooai_llm.model_suites.get_model_suite(name: ModelSuiteName | str = 'practical', *, settings: ooai_llm.settings.AppSettings | None = None, providers: collections.abc.Iterable[ooai_llm.providers.Provider | str] | None = None, presets: collections.abc.Iterable[ooai_llm.settings.ModelPresetName] | None = None, temperature: float | None = None, parallel_tool_calls: bool | None = None) ModelSuite[source]

Build a named suite from configured provider presets.

ooai_llm.model_suites.model_suite_from_presets(*, settings: ooai_llm.settings.AppSettings | None = None, providers: collections.abc.Iterable[ooai_llm.providers.Provider | str] | None = None, presets: collections.abc.Iterable[ooai_llm.settings.ModelPresetName] = DEFAULT_MODEL_SUITE_PRESETS, name: str = 'provider-presets', temperature: float | None = None, parallel_tool_calls: bool | None = None) ModelSuite[source]

Build a suite from AppSettings provider presets.

ooai_llm.model_suites.model_suite_from_catalog(*, settings: ooai_llm.settings.AppSettings | None = None, providers: collections.abc.Iterable[ooai_llm.providers.Provider | str] | None = None, source: ooai_llm.model_defaults.ModelDefaultSource = 'auto', config: ooai_llm.catalog.ListModelsConfig | None = None, include_non_chat: bool = False, capabilities: collections.abc.Iterable[ooai_llm.model_defaults.ModelCapabilityName] | None = None, min_context_tokens: int | None = None, min_output_tokens: int | None = None, max_input_cost_per_1m: decimal.Decimal | None = None, max_output_cost_per_1m: decimal.Decimal | None = None, released_after: str | None = None, released_before: str | None = None, sort_by: ooai_llm.model_defaults.ModelCatalogSortName = 'recency', limit: int | None = None, name: str = 'catalog', temperature: float | None = None, parallel_tool_calls: bool | None = None, strict: bool = False) ModelSuite[source]

Build a suite from filtered catalog rows.