Skip to content

Commit b972bac

Browse files
CodexVeritasclaude
andcommitted
Switch DeepNews bot to gpt-6-astra and add podcasts source
AskNews recommended moving the DeepNews research-only bot to their new Astra model and adding "podcasts" to the DeepNews sources list. - METAC_ASKNEWS_DEEPNEWS now uses asknews/deep-research/high-depth/gpt-6-astra - Medium and high depth DeepNews presets include the "podcasts" source - Bump asknews SDK to 0.14.2, which is the first version whose client-side validation accepts "podcasts" (and lists gpt-6-astra); no transitive dependency changes - Add a cheap integration test covering the podcasts source - Replace stale DeepNews model Literal with the SDK's DeepNewsModel type Note: as of Sep 5 2026 the AskNews server lists gpt-6-astra but still rejects requests with "Invalid model: gpt-6-astra" (rollout in progress). claude-fable-5 was verified working as a fallback. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 parent 7a54ace commit b972bac

5 files changed

Lines changed: 25 additions & 12 deletions

File tree

code_tests/integration_tests/test_asknews.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,19 @@ async def test_formatted_deep_research() -> None:
4040
assert len(news) > 100, "News is too short"
4141
assert "<final_answer>" not in news, "<final_answer> is in the final answer"
4242
assert "<think>" not in news, "<think> is in the news"
43+
44+
45+
async def test_deep_research_accepts_podcasts_source() -> None:
46+
if not os.getenv("ASKNEWS_CLIENT_ID") or not os.getenv("ASKNEWS_SECRET"):
47+
pytest.skip("ASKNEWS_CLIENT_ID or ASKNEWS_SECRET is not set")
48+
response = await AskNewsSearcher().run_deep_research(
49+
"In one sentence, what is the latest news about the US federal funds rate?",
50+
sources=["asknews", "podcasts"],
51+
model="open-source-best",
52+
search_depth=1,
53+
max_depth=1,
54+
)
55+
content = response.choices[0].message.content
56+
logger.info(f"Deep research with podcasts source: {content}")
57+
assert content is not None, "Content is None"
58+
assert len(content) > 100, "Content is too short"

forecasting_tools/helpers/asknews_searcher.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ async def call_preconfigured_version(self, preset: str, prompt: str) -> str:
164164
elif "asknews/deep-research/medium-depth" in preset:
165165
research = await self.get_formatted_deep_research(
166166
prompt,
167-
sources=["asknews", "google", "x", "wiki"],
167+
sources=["asknews", "google", "x", "wiki", "podcasts"],
168168
filter_params={"premium": True},
169169
search_depth=2,
170170
max_depth=4,
@@ -173,7 +173,7 @@ async def call_preconfigured_version(self, preset: str, prompt: str) -> str:
173173
elif "asknews/deep-research/high-depth" in preset:
174174
research = await self.get_formatted_deep_research(
175175
prompt,
176-
sources=["asknews", "google", "x", "wiki"],
176+
sources=["asknews", "google", "x", "wiki", "podcasts"],
177177
filter_params={"premium": True},
178178
search_depth=4,
179179
max_depth=6,
@@ -187,10 +187,7 @@ async def get_formatted_deep_research(
187187
self,
188188
query: str,
189189
sources: list[str] | None = None,
190-
model: (
191-
Literal["deepseek", "deepseek-basic", "claude-3-7-sonnet-latest", "o3-mini"]
192-
| str
193-
) = _default_model,
190+
model: DeepNewsModel | str = _default_model,
194191
search_depth: int = _default_search_depth,
195192
max_depth: int = _default_max_depth,
196193
filter_params: dict[str, bool] | None = None,
@@ -225,7 +222,7 @@ async def run_deep_research(
225222
from asknews_sdk.dto.deepnews import CreateDeepNewsResponse
226223
except ImportError:
227224
raise ImportError(
228-
"Most recent version of asknews package not installed, deep research will not work. Run `poetry add asknews@0.11.6`"
225+
"Most recent version of asknews package not installed, deep research will not work. Run `poetry add asknews@0.14.2`"
229226
)
230227
async with AsyncAskNewsSDK(
231228
client_id=self.client_id,

poetry.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ faker = ">=37.0.0,<41.0.0"
4545
plotly = ">=5.24.1,<7.0.0"
4646
pandas = ">=2.2.3,<4.0.0"
4747
streamlit = "^1.20.0"
48-
asknews = ">=0.9.1,<0.14.0"
48+
asknews = ">=0.14.2,<0.15.0"
4949
unidecode = "^1.4.0"
5050
hyperbrowser = ">=0.53.0,<1.0.0"
5151
pendulum = "^3.1.0"

run_bots.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ def get_default_bot_dict() -> dict[str, RunBotConfig]: # NOSONAR
505505
sonnet_4_5_name = "anthropic/claude-sonnet-4-5-20250929"
506506
gemini_2_5_pro = "openrouter/google/gemini-2.5-pro" # Used to be gemini-2.5-pro-preview (though automatically switched to regular pro when preview was deprecated)
507507
gemini_default_timeout = 5 * 60
508-
deepnews_model = "asknews/deep-research/high-depth/claude-opus-4-6" # Switched to opus 4.6 Feb 23rd. Switched to high depth Feb 16th 2026. Switched from claude-sonnet-4-20250514 to sonnet 4.5 in Nov 2025. Switched from high to medium depth on Jan 2nd, 2026
508+
deepnews_model = "asknews/deep-research/high-depth/gpt-6-astra" # Switched to gpt-6-astra and added podcasts source Sep 5th 2026 (per AskNews recommendation). Switched to opus 4.6 Feb 23rd. Switched to high depth Feb 16th 2026. Switched from claude-sonnet-4-20250514 to sonnet 4.5 in Nov 2025. Switched from high to medium depth on Jan 2nd, 2026
509509

510510
roughly_sonnet_4_cost = 0.25190
511511
roughly_gpt_5_high_cost = 0.37868

0 commit comments

Comments
 (0)