From 05941657daed4c1922382707e125776debc134a2 Mon Sep 17 00:00:00 2001 From: mateo-berri <277851410+mateo-berri@users.noreply.github.com> Date: Fri, 6 Nov 2026 17:21:27 -0800 Subject: [PATCH] fix(bedrock): keep the vector store filter types importable on Python 3.10 Python 3.10's typing.Union hashes every member, and the FailFast() marker in the filter value's list member is an unhashable dataclass, so importing litellm raised TypeError: unhashable type: 'FailFast'. Field(fail_fast=True) sets the same fail-fast flag on the tuple schema and is hashable, so the value and the and/or group use it instead. --- litellm/types/vector_stores.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/litellm/types/vector_stores.py b/litellm/types/vector_stores.py index f5f425347eb..2aefe19a461 100644 --- a/litellm/types/vector_stores.py +++ b/litellm/types/vector_stores.py @@ -4,7 +4,7 @@ from datetime import datetime from enum import Enum from typing import Annotated, Any, Literal, TypeAlias -from pydantic import AfterValidator, ConfigDict, FailFast, Field, StrictFloat, StrictInt, StrictStr +from pydantic import AfterValidator, ConfigDict, Field, StrictFloat, StrictInt, StrictStr from typing_extensions import ReadOnly, TypedDict from litellm.types.llms.base import LiteLLMBaseModel @@ -329,7 +329,7 @@ class OpenAIComparisonFilter(LiteLLMBaseModel): type: Literal["eq", "ne", "gt", "gte", "lt", "lte", "in", "nin"] key: str - value: str | bool | int | float | Annotated[tuple[StrictStr | StrictInt | StrictFloat, ...], FailFast()] + value: str | bool | int | float | Annotated[tuple[StrictStr | StrictInt | StrictFloat, ...], Field(fail_fast=True)] def _require_members(members: tuple["OpenAIVectorStoreFilter", ...]) -> tuple["OpenAIVectorStoreFilter", ...]: @@ -342,7 +342,7 @@ class OpenAICompoundFilter(LiteLLMBaseModel): model_config = ConfigDict(frozen=True) type: Literal["and", "or"] - filters: Annotated[tuple["OpenAIVectorStoreFilter", ...], FailFast(), AfterValidator(_require_members)] + filters: Annotated[tuple["OpenAIVectorStoreFilter", ...], Field(fail_fast=True), AfterValidator(_require_members)] OpenAIVectorStoreFilter: TypeAlias = Annotated[