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¶
One named model option inside a reusable suite. |
|
A named, iterable set of model options. |
Functions¶
|
Return built-in suite names. |
|
Build a named suite from configured provider presets. |
|
Build a suite from |
|
Build a suite from filtered catalog rows. |
Module Contents¶
- 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.BaseModelOne named model option inside a reusable suite.
- model_config[source]¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- role: ModelSuiteRoleName = 'custom'[source]¶
- reasoning: ooai_llm.reasoning.ReasoningInput = 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
LLMruntime for this entry.
- class ooai_llm.model_suites.ModelSuite(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelA named, iterable set of model options.
- model_config[source]¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- entries: list[ModelSuiteEntry] = None[source]¶
- __iter__() collections.abc.Iterator[ModelSuiteEntry][source]¶
Iterate over suite entries.
- __getitem__(key: int | str) ModelSuiteEntry[source]¶
Get an entry by index or key.
- 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
LLMruntimes for every suite entry.
- 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
AppSettingsprovider 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.