ooai_llm.dspy¶
Optional DSPy model integration.
- Purpose:
Create DSPy
LMinstances from the same model strings, serializable profiles, and runtime identity used by the LangChain-first OOAI surface.- Design:
Keep DSPy optional and lazily imported.
Resolve all model choices to LiteLLM-style
provider/modelstrings, which is DSPy’s constructor shape.Expose only model-substrate helpers here. DSPy programs, runnables, LangGraph nodes, optimizers, and artifacts belong in
ooai-agents.
Examples
>>> config = DSPyLMConfig(model="openai:gpt-5-mini", temperature=0)
>>> config.resolve_model_name()
'openai/gpt-5-mini'
Attributes¶
DSPy model protocol style passed to |
Exceptions¶
Raised when DSPy helpers are used without the optional dependency. |
Classes¶
Serializable configuration for creating a DSPy |
|
DSPy LM plus resolved OOAI metadata. |
Functions¶
|
Resolve a model choice to DSPy's LiteLLM-style model name. |
|
Create a native DSPy |
|
Create a DSPy |
|
Create a DSPy |
|
Extract normalized token usage from a DSPy prediction or LM object. |
Build a usage event from a DSPy prediction when usage is available. |
|
|
Record DSPy prediction usage when the prediction exposes counts. |
Module Contents¶
- exception ooai_llm.dspy.DSPyDependencyError[source]¶
Bases:
ImportErrorRaised when DSPy helpers are used without the optional dependency.
- class ooai_llm.dspy.DSPyLMConfig(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelSerializable configuration for creating a DSPy
LM.- Parameters:
model – Explicit OOAI model string, such as
"openai:gpt-5-mini".alias – Optional configured model alias when
modelis omitted.provider – Optional provider for alias/preset resolution.
preset – Provider preset name when resolving by provider.
model_type – DSPy LM type:
"chat","text", or"responses".lm_kwargs – DSPy/LiteLLM passthrough kwargs for provider-specific needs.
- model_config[source]¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- alias: ooai_llm.settings.ModelAliasName | None = None[source]¶
- provider: str | ooai_llm.providers.Provider | None = None[source]¶
- preset: ooai_llm.settings.ModelPresetName = 'default'[source]¶
- model_type: DSPyModelType = 'chat'[source]¶
- reasoning: ooai_llm.reasoning.ReasoningInput = None[source]¶
- classmethod from_profile(profile: ooai_llm.profiles.ChatModelProfile, *, model_type: DSPyModelType = 'chat') DSPyLMConfig[source]¶
Build a DSPy config from a serializable chat-model profile.
- classmethod from_runtime(runtime: ooai_llm.profiles.LLM, *, model_type: DSPyModelType = 'chat') DSPyLMConfig[source]¶
Build a DSPy config from an
LLMruntime.
- resolve_model_string(*, settings: ooai_llm.settings.AppSettings | None = None) ooai_llm.types.ModelString[source]¶
Resolve this config to an OOAI model string.
- resolve_model_name(*, settings: ooai_llm.settings.AppSettings | None = None) str[source]¶
Resolve this config to DSPy’s LiteLLM-style model name.
- trace_metadata(*, model: ooai_llm.types.ModelString | None = None, settings: ooai_llm.settings.AppSettings | None = None) dict[str, Any][source]¶
Return JSON-safe runtime/model metadata for downstream wrappers.
- to_lm_kwargs(*, settings: ooai_llm.settings.AppSettings | None = None) dict[str, Any][source]¶
Return keyword arguments for
dspy.LM.
- class ooai_llm.dspy.CreatedDSPyLMBundle[source]¶
DSPy LM plus resolved OOAI metadata.
- metadata: ooai_llm.metadata.ModelInfo[source]¶
- config: DSPyLMConfig[source]¶
- ooai_llm.dspy.resolve_dspy_model_name(model: str | ooai_llm.types.ModelString | None = None, *, settings: ooai_llm.settings.AppSettings | None = None, alias: ooai_llm.settings.ModelAliasName | None = None, provider: ooai_llm.providers.Provider | str | None = None, preset: ooai_llm.settings.ModelPresetName = 'default', auto_refresh_models: bool | None = None, force_model_refresh: bool = False) str[source]¶
Resolve a model choice to DSPy’s LiteLLM-style model name.
- ooai_llm.dspy.create_dspy_lm(config: ooai_llm.profiles.ChatModelProfile | DSPyLMConfig | ooai_llm.profiles.LLM | str | ooai_llm.types.ModelString | None = None, *, settings: ooai_llm.settings.AppSettings | None = None, **kwargs: Any) Any[source]¶
Create a native DSPy
LMfrom OOAI config.Unknown keyword arguments are passed through to
dspy.LMviaDSPyLMConfig.lm_kwargs.
- ooai_llm.dspy.create_dspy_lm_bundle(config: ooai_llm.profiles.ChatModelProfile | DSPyLMConfig | ooai_llm.profiles.LLM | str | ooai_llm.types.ModelString | None = None, *, settings: ooai_llm.settings.AppSettings | None = None, **kwargs: Any) CreatedDSPyLMBundle[source]¶
Create a DSPy
LMand return resolved OOAI metadata with it.
- ooai_llm.dspy.configure_dspy_lm(config: ooai_llm.profiles.ChatModelProfile | DSPyLMConfig | ooai_llm.profiles.LLM | str | ooai_llm.types.ModelString | None = None, *, settings: ooai_llm.settings.AppSettings | None = None, configure_kwargs: collections.abc.Mapping[str, Any] | None = None, **kwargs: Any) Any[source]¶
Create a DSPy
LM, configure DSPy’s global settings, and return it.
- ooai_llm.dspy.extract_dspy_usage(value: Any) dict[str, Any] | None[source]¶
Extract normalized token usage from a DSPy prediction or LM object.
- ooai_llm.dspy.build_dspy_usage_event(*, prediction: Any, model: str | ooai_llm.types.ModelString, settings: ooai_llm.settings.AppSettings | None = None, budget: ooai_llm.callbacks.BudgetPolicy | None = None, profile: collections.abc.Mapping[str, Any] | None = None, run_name: str | None = None, tags: list[str] | tuple[str, Ellipsis] | None = None, metadata: collections.abc.Mapping[str, Any] | None = None, cost_labels: collections.abc.Mapping[str, str] | None = None) ooai_llm.callbacks.UsageEvent | None[source]¶
Build a usage event from a DSPy prediction when usage is available.
- ooai_llm.dspy.record_dspy_usage(recorder: ooai_llm.callbacks.UsageRecorder, *, prediction: Any, model: str | ooai_llm.types.ModelString, settings: ooai_llm.settings.AppSettings | None = None, budget: ooai_llm.callbacks.BudgetPolicy | None = None, profile: collections.abc.Mapping[str, Any] | None = None, run_name: str | None = None, tags: list[str] | tuple[str, Ellipsis] | None = None, metadata: collections.abc.Mapping[str, Any] | None = None, cost_labels: collections.abc.Mapping[str, str] | None = None) ooai_llm.callbacks.UsageEvent | None[source]¶
Record DSPy prediction usage when the prediction exposes counts.