Skip to content

Commit 01b289c

Browse files
author
stlc-bot
committed
feat(search): add languages filter to web search (#1833)
Stainless-Generated-From: ef4c743ce181726fe3cdc8046afc92bcd263eaed
1 parent f2f8fae commit 01b289c

5 files changed

Lines changed: 342 additions & 5 deletions

File tree

‎src/context/dev/resources/web.py‎

Lines changed: 173 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from __future__ import annotations
44

5-
from typing import Dict, Optional
5+
from typing import Dict, List, Union, Optional
66
from typing_extensions import Literal
77

88
import httpx
@@ -1028,6 +1028,88 @@ def search(
10281028
freshness: Literal["last_24_hours", "last_week", "last_month", "last_year"] | Omit = omit,
10291029
highlights_options: Optional[web_search_params.HighlightsOptions] | Omit = omit,
10301030
include_domains: SequenceNotStr[str] | Omit = omit,
1031+
languages: Union[
1032+
Literal["all"],
1033+
List[
1034+
Literal[
1035+
"am",
1036+
"ar",
1037+
"az",
1038+
"be",
1039+
"bg",
1040+
"bn",
1041+
"ca",
1042+
"ceb",
1043+
"cs",
1044+
"cy",
1045+
"da",
1046+
"de",
1047+
"el",
1048+
"en",
1049+
"es",
1050+
"et",
1051+
"eu",
1052+
"fa",
1053+
"fi",
1054+
"fr",
1055+
"gu",
1056+
"ha",
1057+
"haw",
1058+
"he",
1059+
"hi",
1060+
"hr",
1061+
"hu",
1062+
"hy",
1063+
"id",
1064+
"is",
1065+
"it",
1066+
"ja",
1067+
"ka",
1068+
"kk",
1069+
"kn",
1070+
"ko",
1071+
"ku",
1072+
"ky",
1073+
"lo",
1074+
"lt",
1075+
"lv",
1076+
"mk",
1077+
"ml",
1078+
"mn",
1079+
"mr",
1080+
"ms",
1081+
"ne",
1082+
"nl",
1083+
"no",
1084+
"or",
1085+
"pa",
1086+
"pl",
1087+
"ps",
1088+
"pt",
1089+
"ro",
1090+
"ru",
1091+
"sk",
1092+
"sl",
1093+
"so",
1094+
"sq",
1095+
"sr",
1096+
"sv",
1097+
"sw",
1098+
"ta",
1099+
"te",
1100+
"th",
1101+
"tl",
1102+
"tr",
1103+
"uk",
1104+
"ur",
1105+
"uz",
1106+
"vi",
1107+
"yo",
1108+
"zh",
1109+
]
1110+
],
1111+
]
1112+
| Omit = omit,
10311113
markdown_options: Optional[web_search_params.MarkdownOptions] | Omit = omit,
10321114
num_results: int | Omit = omit,
10331115
query_fanout: bool | Omit = omit,
@@ -1067,6 +1149,9 @@ def search(
10671149
Allowlist — only return results from these domains. Up to 100 domains. Example:
10681150
["arxiv.org", "github.com"].
10691151
1152+
languages: Languages to return results in, as BCP 47 language codes such as `en` or `de`,
1153+
or "all" for any language. Defaults to "all". Example: ["en", "de"].
1154+
10701155
markdown_options: Inline Markdown scraping for each result. Set `enabled: true` to activate.
10711156
10721157
num_results: Number of results to request and return (1–100). Defaults to 10.
@@ -1099,6 +1184,7 @@ def search(
10991184
"freshness": freshness,
11001185
"highlights_options": highlights_options,
11011186
"include_domains": include_domains,
1187+
"languages": languages,
11021188
"markdown_options": markdown_options,
11031189
"num_results": num_results,
11041190
"query_fanout": query_fanout,
@@ -2440,6 +2526,88 @@ async def search(
24402526
freshness: Literal["last_24_hours", "last_week", "last_month", "last_year"] | Omit = omit,
24412527
highlights_options: Optional[web_search_params.HighlightsOptions] | Omit = omit,
24422528
include_domains: SequenceNotStr[str] | Omit = omit,
2529+
languages: Union[
2530+
Literal["all"],
2531+
List[
2532+
Literal[
2533+
"am",
2534+
"ar",
2535+
"az",
2536+
"be",
2537+
"bg",
2538+
"bn",
2539+
"ca",
2540+
"ceb",
2541+
"cs",
2542+
"cy",
2543+
"da",
2544+
"de",
2545+
"el",
2546+
"en",
2547+
"es",
2548+
"et",
2549+
"eu",
2550+
"fa",
2551+
"fi",
2552+
"fr",
2553+
"gu",
2554+
"ha",
2555+
"haw",
2556+
"he",
2557+
"hi",
2558+
"hr",
2559+
"hu",
2560+
"hy",
2561+
"id",
2562+
"is",
2563+
"it",
2564+
"ja",
2565+
"ka",
2566+
"kk",
2567+
"kn",
2568+
"ko",
2569+
"ku",
2570+
"ky",
2571+
"lo",
2572+
"lt",
2573+
"lv",
2574+
"mk",
2575+
"ml",
2576+
"mn",
2577+
"mr",
2578+
"ms",
2579+
"ne",
2580+
"nl",
2581+
"no",
2582+
"or",
2583+
"pa",
2584+
"pl",
2585+
"ps",
2586+
"pt",
2587+
"ro",
2588+
"ru",
2589+
"sk",
2590+
"sl",
2591+
"so",
2592+
"sq",
2593+
"sr",
2594+
"sv",
2595+
"sw",
2596+
"ta",
2597+
"te",
2598+
"th",
2599+
"tl",
2600+
"tr",
2601+
"uk",
2602+
"ur",
2603+
"uz",
2604+
"vi",
2605+
"yo",
2606+
"zh",
2607+
]
2608+
],
2609+
]
2610+
| Omit = omit,
24432611
markdown_options: Optional[web_search_params.MarkdownOptions] | Omit = omit,
24442612
num_results: int | Omit = omit,
24452613
query_fanout: bool | Omit = omit,
@@ -2479,6 +2647,9 @@ async def search(
24792647
Allowlist — only return results from these domains. Up to 100 domains. Example:
24802648
["arxiv.org", "github.com"].
24812649
2650+
languages: Languages to return results in, as BCP 47 language codes such as `en` or `de`,
2651+
or "all" for any language. Defaults to "all". Example: ["en", "de"].
2652+
24822653
markdown_options: Inline Markdown scraping for each result. Set `enabled: true` to activate.
24832654
24842655
num_results: Number of results to request and return (1–100). Defaults to 10.
@@ -2511,6 +2682,7 @@ async def search(
25112682
"freshness": freshness,
25122683
"highlights_options": highlights_options,
25132684
"include_domains": include_domains,
2685+
"languages": languages,
25142686
"markdown_options": markdown_options,
25152687
"num_results": num_results,
25162688
"query_fanout": query_fanout,

‎src/context/dev/types/news_search_params.py‎

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,84 @@ class FilterBy(TypedDict, total=False):
206206
"""
207207

208208
article_language: Annotated[
209-
List[Literal["ar", "de", "en", "es", "fr", "hi", "it", "ja", "ko", "nl", "pt", "ru", "zh"]],
209+
List[
210+
Literal[
211+
"am",
212+
"ar",
213+
"az",
214+
"be",
215+
"bg",
216+
"bn",
217+
"ca",
218+
"ceb",
219+
"cs",
220+
"cy",
221+
"da",
222+
"de",
223+
"el",
224+
"en",
225+
"es",
226+
"et",
227+
"eu",
228+
"fa",
229+
"fi",
230+
"fr",
231+
"gu",
232+
"ha",
233+
"haw",
234+
"he",
235+
"hi",
236+
"hr",
237+
"hu",
238+
"hy",
239+
"id",
240+
"is",
241+
"it",
242+
"ja",
243+
"ka",
244+
"kk",
245+
"kn",
246+
"ko",
247+
"ku",
248+
"ky",
249+
"lo",
250+
"lt",
251+
"lv",
252+
"mk",
253+
"ml",
254+
"mn",
255+
"mr",
256+
"ms",
257+
"ne",
258+
"nl",
259+
"no",
260+
"or",
261+
"pa",
262+
"pl",
263+
"ps",
264+
"pt",
265+
"ro",
266+
"ru",
267+
"sk",
268+
"sl",
269+
"so",
270+
"sq",
271+
"sr",
272+
"sv",
273+
"sw",
274+
"ta",
275+
"te",
276+
"th",
277+
"tl",
278+
"tr",
279+
"uk",
280+
"ur",
281+
"uz",
282+
"vi",
283+
"yo",
284+
"zh",
285+
]
286+
],
210287
PropertyInfo(alias="articleLanguage"),
211288
]
212289
"""Article languages to include. Up to 3."""

0 commit comments

Comments
 (0)