Skip to content
Merged
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
4 changes: 2 additions & 2 deletions dapr_agents/llm/dapr/chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -332,10 +332,10 @@ def generate(
if dapr_runtime_version is not None:
# Allow only versions >=1.16.0 and <2.0.0 for Alpha2 Chat Client
if not is_version_supported(
str(dapr_runtime_version), ">=1.16.0, <2.0.0"
str(dapr_runtime_version), ">=1.16.0, edge, <2.0.0"
):
raise DaprRuntimeVersionNotSupportedError(
f"!!!!! Dapr Runtime Version {dapr_runtime_version} is not supported with Alpha2 Dapr Chat Client. Only Dapr runtime versions >=1.16.0 and <2.0.0 are supported."
f"!!!!! Dapr Runtime Version {dapr_runtime_version} is not supported with Alpha2 Dapr Chat Client. Only Dapr runtime versions >=1.16.0, edge,and <2.0.0 are supported."
)

raw = self.client.chat_completion_alpha2(
Expand Down
2 changes: 2 additions & 0 deletions dapr_agents/utils/semver.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ def is_version_supported(version: str, constraints: str) -> bool:
- Each token supports operators: ==, !=, >=, <=, >, <
- Missing operator defaults to ==
"""
if version == "edge":
return True
v = Version.parse(version)
for group in constraints.split("||"):
group = group.strip()
Expand Down
22 changes: 22 additions & 0 deletions tests/utils/test_semver.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,25 @@ def test_version_parse_defaults_missing_parts_to_zero() -> None:
assert Version.parse("1.2").major == 1
assert Version.parse("1.2").minor == 2
assert Version.parse("1.2").patch == 0


def test_edge_version_always_satisfies_constraints() -> None:
"""Edge version should always satisfy any constraint."""
assert is_version_supported("edge", "==1.2.3") is True
assert is_version_supported("edge", "!=1.2.3") is True
assert is_version_supported("edge", ">1.2.2") is True
assert is_version_supported("edge", ">=1.2.3") is True
assert is_version_supported("edge", "<1.2.4") is True
assert is_version_supported("edge", "<=1.2.3") is True
assert is_version_supported("edge", ">=1.16.0, <2.0.0") is True
assert is_version_supported("edge", ">=2.0.0, <3.0.0 || ==1.16.1") is True
assert is_version_supported("edge", "==0.0.0") is True
assert is_version_supported("edge", ">999.999.999") is True
assert is_version_supported("edge", "<0.0.1") is True


def test_edge_version_case_sensitivity() -> None:
"""Edge version should be case sensitive."""
assert is_version_supported("edge", "==1.2.3") is True
assert is_version_supported("Edge", "==1.2.3") is False
assert is_version_supported("EDGE", "==1.2.3") is False