Skip to content

Commit 929f36c

Browse files
committed
fix: Add concrete return type for chat headline questions method
1 parent 86dd133 commit 929f36c

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

asknews_sdk/api/chat.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
CreateChatCompletionRequest,
66
CreateChatCompletionResponse,
77
CreateChatCompletionResponseStream,
8+
HeadlineQuestionsResponse,
89
ListModelResponse,
910
)
1011
from asknews_sdk.response import EventSource
@@ -106,7 +107,9 @@ def list_chat_models(self) -> ListModelResponse:
106107
)
107108
return ListModelResponse.model_validate(response.content)
108109

109-
def get_headline_questions(self, queries: Optional[List[str]] = None) -> Dict[str, List[str]]:
110+
def get_headline_questions(
111+
self, queries: Optional[List[str]] = None
112+
) -> HeadlineQuestionsResponse:
110113
"""
111114
Get headline questions for a given query.
112115
@@ -115,14 +118,14 @@ def get_headline_questions(self, queries: Optional[List[str]] = None) -> Dict[st
115118
:param queries: List of queries to get headline questions for
116119
:type queries: Optional[List[str]]
117120
:return: Headline questions
118-
:rtype: Dict[str, List[str]]
121+
:rtype: HeadlineQuestionsResponse
119122
"""
120123
response = self.client.request(
121124
method="GET",
122125
endpoint="/v1/chat/questions",
123126
query={"queries": queries}
124127
)
125-
return response.content
128+
return HeadlineQuestionsResponse.model_validate(response.content)
126129

127130

128131
class AsyncChatAPI(BaseAPI):
@@ -224,7 +227,7 @@ async def list_chat_models(self) -> ListModelResponse:
224227

225228
async def get_headline_questions(
226229
self, queries: Optional[List[str]] = None
227-
) -> Dict[str, List[str]]:
230+
) -> HeadlineQuestionsResponse:
228231
"""
229232
Get headline questions for a given query.
230233
@@ -233,11 +236,11 @@ async def get_headline_questions(
233236
:param queries: List of queries to get headline questions for
234237
:type queries: Optional[List[str]]
235238
:return: Headline questions
236-
:rtype: Dict[str, List[str]]
239+
:rtype: HeadlineQuestionsResponse
237240
"""
238241
response = await self.client.request(
239242
method="GET",
240243
endpoint="/v1/chat/questions",
241244
query={"queries": queries}
242245
)
243-
return response.content
246+
return HeadlineQuestionsResponse.model_validate(response.content)

asknews_sdk/dto/chat.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from datetime import datetime, timezone
44
from typing import Any, Dict, List, Literal, Optional, Union
55

6-
from pydantic import BaseModel, ConfigDict, Field
6+
from pydantic import BaseModel, ConfigDict, Field, RootModel
77
from typing_extensions import Annotated
88

99
from asknews_sdk.dto.base import BaseSchema
@@ -107,3 +107,7 @@ class ListModelResponse(BaseSchema):
107107

108108
object: Annotated[Optional[str], Field("list", title="Object")]
109109
data: Annotated[List[ModelItem], Field(title="Data")]
110+
111+
112+
class HeadlineQuestionsResponse(BaseSchema, RootModel[Dict[str, List[str]]]):
113+
...

0 commit comments

Comments
 (0)