Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ Built-in providers:
- [MistralAI](https://strandsagents.com/latest/user-guide/concepts/model-providers/mistral/)
- [Ollama](https://strandsagents.com/latest/user-guide/concepts/model-providers/ollama/)
- [OpenAI](https://strandsagents.com/latest/user-guide/concepts/model-providers/openai/)
- [OpenAI Responses API](https://strandsagents.com/latest/user-guide/concepts/model-providers/openai/)
- [SageMaker](https://strandsagents.com/latest/user-guide/concepts/model-providers/sagemaker/)
- [Writer](https://strandsagents.com/latest/user-guide/concepts/model-providers/writer/)

Expand Down
4 changes: 4 additions & 0 deletions src/strands/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ def __getattr__(name: str) -> Any:
from .openai import OpenAIModel

return OpenAIModel
if name == "OpenAIResponsesModel":
from .openai_responses import OpenAIResponsesModel

return OpenAIResponsesModel
if name == "SageMakerAIModel":
from .sagemaker import SageMakerAIModel

Expand Down
691 changes: 691 additions & 0 deletions src/strands/models/openai_responses.py

Large diffs are not rendered by default.

25 changes: 25 additions & 0 deletions tests/strands/models/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
"""Pytest configuration for model tests."""

import sys
import unittest.mock

# Mock OpenAI version check before the openai_responses module is imported.
# This is necessary because the version check happens at module import time.
# We patch importlib.metadata.version directly since that's where get_package_version comes from.
if "strands.models.openai_responses" not in sys.modules:
_original_version = None
try:
from importlib.metadata import version as _original_version_func

_original_version = _original_version_func
except ImportError:
pass

def _mock_version(package_name: str) -> str:
if package_name == "openai":
return "2.0.0"
if _original_version:
return _original_version(package_name)
raise Exception(f"Package {package_name} not found")

unittest.mock.patch("importlib.metadata.version", _mock_version).start()
Loading
Loading