Skip to content

Commit a240363

Browse files
committed
fix: Add run alert function
1 parent 7ed4126 commit a240363

2 files changed

Lines changed: 57 additions & 4 deletions

File tree

asknews_sdk/api/chat.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,29 @@ def delete_alert(
502502
headers=http_headers,
503503
)
504504

505+
def run_alert(
506+
self,
507+
alert_id: Union[UUID, str],
508+
*,
509+
http_headers: Optional[Dict] = None,
510+
) -> AlertResponse:
511+
"""
512+
Run an alert immediately.
513+
514+
:param alert_id: The alert ID.
515+
:type alert_id: Union[UUID, str]
516+
:param http_headers: Additional HTTP headers.
517+
:type http_headers: Optional[Dict]
518+
:return: The alert response.
519+
:rtype: AlertResponse
520+
"""
521+
response = self.client.request(
522+
method="GET",
523+
endpoint=f"/v1/chat/alerts/{alert_id}/run",
524+
headers=http_headers,
525+
)
526+
return AlertResponse.model_validate(response.content)
527+
505528
def list_alert_logs(
506529
self,
507530
alert_id: Union[UUID, str],
@@ -1182,6 +1205,29 @@ async def delete_alert(
11821205
headers=http_headers,
11831206
)
11841207

1208+
async def run_alert(
1209+
self,
1210+
alert_id: Union[UUID, str],
1211+
*,
1212+
http_headers: Optional[Dict] = None,
1213+
) -> AlertResponse:
1214+
"""
1215+
Run an alert immediately.
1216+
1217+
:param alert_id: The alert ID.
1218+
:type alert_id: Union[UUID, str]
1219+
:param http_headers: Additional HTTP headers.
1220+
:type http_headers: Optional[Dict]
1221+
:return: The alert response.
1222+
:rtype: AlertResponse
1223+
"""
1224+
response = await self.client.request(
1225+
method="GET",
1226+
endpoint=f"/v1/chat/alerts/{alert_id}/run",
1227+
headers=http_headers,
1228+
)
1229+
return AlertResponse.model_validate(response.content)
1230+
11851231
async def list_alert_logs(
11861232
self,
11871233
alert_id: Union[UUID, str],

asknews_sdk/dto/alert.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474

7575
class DeepNewsParams(BaseModel):
7676
"""Base parameters shared between DeepNews source and report configurations."""
77+
7778
sources: Optional[Union[DeepNewsSourceType, List[DeepNewsSourceType]]] = Field(
7879
default=DeepNewsSourceTypeDefault,
7980
description=(
@@ -82,7 +83,7 @@ class DeepNewsParams(BaseModel):
8283
f"Defaults to {DeepNewsSourceTypeDefault}."
8384
),
8485
)
85-
filter_params: Optional[FilterParams] = Field(
86+
filter_params: Optional[dict] = Field(
8687
default=None,
8788
description="Filter parameters to apply to the AskNews search within DeepNews.",
8889
)
@@ -115,6 +116,7 @@ class DeepNewsSourceParams(DeepNewsParams):
115116
116117
DeepNews performs deep research using multiple tools.
117118
"""
119+
118120
model: Optional[DeepNewsModel] = Field(
119121
default=DeepNewsSourceModelDefault,
120122
description=(
@@ -144,6 +146,7 @@ class DeepNewsReportParams(DeepNewsParams):
144146
145147
DeepNews performs deep research using multiple tools.
146148
"""
149+
147150
model: Optional[DeepNewsModel] = Field(
148151
default=DeepNewsReportModelDefault,
149152
description=(
@@ -314,6 +317,7 @@ class Triggers(RootModel):
314317

315318
class ReportRequestParams(BaseModel):
316319
"""Base parameters shared between legacy and DeepNews report configurations."""
320+
317321
logo_url: Optional[HttpUrlString] = Field(
318322
default=None,
319323
description="The logo URL to use for the report",
@@ -334,6 +338,7 @@ class LegacyReportRequest(ReportRequestParams):
334338
This is the original ReportRequest format that uses a simple model field
335339
for report generation without DeepNews capabilities.
336340
"""
341+
337342
identifier: Literal["legacy"] = "legacy"
338343
model: AlertReportModel = Field(
339344
default=AlertReportModelDefault,
@@ -347,6 +352,7 @@ class DeepNewsReportRequest(ReportRequestParams):
347352
348353
Uses DeepNews deep research capabilities for information retrieval and report generation.
349354
"""
355+
350356
identifier: Literal["deepnews"] = "deepnews"
351357
params: DeepNewsReportParams = Field(default_factory=DeepNewsReportParams)
352358
prompt: Optional[str] = Field(
@@ -359,7 +365,7 @@ class DeepNewsReportRequest(ReportRequestParams):
359365
examples=[
360366
"Monitor Tesla stock and summarize any major price movements with percentage changes",
361367
"Track the current situation in the Middle East and give me a bullet point list of "
362-
"recent events"
368+
"recent events",
363369
],
364370
)
365371

@@ -605,8 +611,9 @@ class UpdateAlertRequest(BaseSchema):
605611
"If set, the alert will be disabled after this date."
606612
),
607613
)
608-
report: Optional[Union[ReportRequestTypeNoDiscriminator,
609-
List[ReportRequestTypeNoDiscriminator]]] = Field(
614+
report: Optional[
615+
Union[ReportRequestTypeNoDiscriminator, List[ReportRequestTypeNoDiscriminator]]
616+
] = Field(
610617
default=None,
611618
description=(
612619
"Configuration for generating a written report when the alert triggers. "

0 commit comments

Comments
 (0)