diff --git a/jigsawstack/store.py b/jigsawstack/store.py index c7441b4..e6f1ac2 100644 --- a/jigsawstack/store.py +++ b/jigsawstack/store.py @@ -23,6 +23,7 @@ class KVAddParams(TypedDict): key: str value: str encrypt: NotRequired[bool] + byo_secret: NotRequired[str] class KVAddResponse(TypedDict): diff --git a/jigsawstack/summary.py b/jigsawstack/summary.py index 3fc79cd..4cfbcb6 100644 --- a/jigsawstack/summary.py +++ b/jigsawstack/summary.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, List, Union, cast +from typing import Any, Dict, List, Union, cast, Literal from typing_extensions import NotRequired, TypedDict from .request import Request, RequestConfig from typing import List, Union @@ -6,16 +6,20 @@ class SummaryParams(TypedDict): - text: str + text: NotRequired[str] """ The text to summarize. """ - type: NotRequired[str] + type: NotRequired[Literal["text", "points"]] """ The summary result type. Supported values are: text, points """ + url: NotRequired[str] + file_store_key: NotRequired[str] + max_points: NotRequired[int] + max_characters: NotRequired[int] class SummaryResponse(TypedDict): @@ -29,6 +33,17 @@ class SummaryResponse(TypedDict): """ +class SummaryListResponse(TypedDict): + success: bool + """ + Indicates whether the translation was successful. + """ + summary: List[str] + """ + The summarized text. + """ + + class Summary(ClientConfig): config: RequestConfig @@ -46,7 +61,9 @@ def __init__( disable_request_logging=disable_request_logging, ) - def summarize(self, params: SummaryParams) -> SummaryResponse: + def summarize( + self, params: SummaryParams + ) -> Union[SummaryResponse, SummaryListResponse]: path = "/ai/summary" resp = Request( config=self.config, diff --git a/jigsawstack/translate.py b/jigsawstack/translate.py index a0f0d12..bdcc6a6 100644 --- a/jigsawstack/translate.py +++ b/jigsawstack/translate.py @@ -14,7 +14,7 @@ class TranslateParams(TypedDict): """ Language to translate from. """ - text: str + text: Union[str, list[str]] """ The text to translate. """ @@ -31,6 +31,17 @@ class TranslateResponse(TypedDict): """ +class TranslateListResponse(TypedDict): + success: bool + """ + Indicates whether the translation was successful. + """ + translated_text: List[str] + """ + The translated text. + """ + + class Translate(ClientConfig): config: RequestConfig @@ -48,7 +59,9 @@ def __init__( disable_request_logging=disable_request_logging, ) - def translate(self, params: TranslateParams) -> TranslateResponse: + def translate( + self, params: TranslateParams + ) -> Union[TranslateResponse, TranslateListResponse]: path = "/ai/translate" resp = Request( config=self.config, diff --git a/jigsawstack/validate.py b/jigsawstack/validate.py index 9f7ab43..aa0062e 100644 --- a/jigsawstack/validate.py +++ b/jigsawstack/validate.py @@ -96,26 +96,29 @@ def email(self, params: EmailValidationParams) -> EmailValidationResponse: return resp def nsfw(self, url: str) -> NSFWResponse: - path = f"/validate/nsfw?url={url}" + path = f"/validate/nsfw" resp = Request( config=self.config, path=path, - params=cast(Dict[Any, Any], params={"url": url}), - verb="get", + params=cast( + Dict[Any, Any], + params={"url": url}, + ), + verb="post", ).perform_with_content() return resp def profanity(self, params: ProfanityParams) -> ProfanityResponse: text = params.get("text") censor_replacement = params.get("censor_replacement", "*") - path = ( - f"/validate/profanity?text={text}&censor_replacement={censor_replacement}" - ) + path = f"/validate/profanity" resp = Request( config=self.config, path=path, - params=cast(Dict[Any, Any], params), - verb="get", + params=cast( + Dict[Any, Any], {"text": text, "censor_replacement": censor_replacement} + ), + verb="post", ).perform_with_content() return resp @@ -127,12 +130,12 @@ def spellcheck(self, params: SpellCheckParams) -> SpellCheckResponse: config=self.config, path=path, params=cast(Dict[Any, Any], params), - verb="get", + verb="post", ).perform_with_content() return resp def spamcheck(self, params: SpamCheckParams) -> SpamCheckResponse: - path = "/ai/spamcheck" + path = "/validate/spam_check" resp = Request( config=self.config, path=path, diff --git a/setup.py b/setup.py index 2b35731..5346ad2 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ setup( name="jigsawstack", - version="0.1.18", + version="0.1.19", description="JigsawStack Python SDK", long_description=open("README.md", encoding="utf8").read(), long_description_content_type="text/markdown",