Skip to content

Commit d8d5430

Browse files
author
Paweł Kędzia
committed
Extend BaseModelOptions with anonymize_algorithm and model_name_anonymize (add typing imports) and update endpoint_i to pop these new fields from the request payload.
1 parent 406cc4d commit d8d5430

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

llm_router_api/endpoints/endpoint_i.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -865,6 +865,8 @@ def _prepare_payload_at_beginning(
865865
"""
866866
# Remember general options before clear payload
867867
_anon_payload = FORCE_ANONYMISATION or payload.pop("anonymize", False)
868+
_anonymize_algorithm = payload.pop("anonymize_algorithm", None)
869+
_model_name_anonymize = payload.pop("model_name_anonymize", None)
868870

869871
payload = self._clear_payload(payload=payload)
870872
if not _anon_payload:
@@ -898,7 +900,7 @@ def _clear_payload(payload: Dict[str, Any]):
898900
payload.pop(k, "")
899901

900902
# If stream param is not given, then set as False
901-
payload["stream"] = payload.get("stream", False)
903+
payload["stream"] = payload.get("stream", False)
902904
return payload
903905

904906
def _anonymize_payload(self, payload: Dict | str | List | Any) -> Dict[str, Any]:

llm_router_lib/data_models/base_model.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"""
99

1010
from pydantic import BaseModel
11+
from typing import Literal, Optional
1112

1213

1314
class BaseModelOptions(BaseModel):
@@ -21,6 +22,21 @@ class BaseModelOptions(BaseModel):
2122
library's :class:`~llm_router_lib.anonymizer.core.Anonymizer` before any
2223
downstream logic is executed. The default value ``False`` disables
2324
anonymisation.
25+
26+
anonymize_algorithm : Literal["fast_masker", "genai", "priv_masker"], default ``"fast_masker"``
27+
Specifies which anonymisation algorithm to use when ``anonymize`` is ``True``.
28+
* ``"fast_masker"`` – a lightweight, high‑performance masker.
29+
* ``"genai"`` – a generative‑AI based approach.
30+
* ``"priv_masker"`` – a privacy‑focused masking technique.
31+
32+
model_name_anonymize : Optional[str], default ``None``
33+
Name or identifier of the model to be used for anonymisation when
34+
``anonymize_algorithm`` requires a specific model (e.g., for the ``"genai"``
35+
algorithm). If ``None``, the library will fall back to its default model.
2436
"""
2537

2638
anonymize: bool = False
39+
anonymize_algorithm: Literal["fast_masker", "genai", "priv_masker"] = (
40+
"fast_masker"
41+
)
42+
model_name_anonymize: Optional[str] = None

0 commit comments

Comments
 (0)