Run an opt-in provider smoke test for the settings page.
(kind: str)
| 1230 | return { |
| 1231 | "arxiv_categories": resolved_arxiv, |
| 1232 | "conferences": resolved_conferences, |
| 1233 | "journals": resolved_journals, |
| 1234 | "custom_rss_urls": _string_list(source_preferences.get("custom_rss_urls")) |
| 1235 | if source_preferences.get("enable_custom_rss") |
| 1236 | else [], |
| 1237 | "enable_semantic_scholar": bool(source_preferences.get("enable_semantic_scholar")), |
| 1238 | "enable_custom_rss": bool(source_preferences.get("enable_custom_rss")), |
| 1239 | } |
| 1240 | |
| 1241 | |
| 1242 | def test_provider(kind: str) -> Dict[str, Any]: |
| 1243 | """Run an opt-in provider smoke test for the settings page.""" |
| 1244 | normalized = (kind or "").strip().lower() |
| 1245 | if normalized == "llm": |
| 1246 | from paperflow.providers import build_llm_provider |
| 1247 | |
| 1248 | provider = build_llm_provider() |
| 1249 | response = provider.generate( |
| 1250 | "Reply with exactly: pong", |
| 1251 | system="You are a provider health checker.", |
| 1252 | temperature=0.0, |
| 1253 | max_tokens=8, |
| 1254 | ) |
| 1255 | return { |
| 1256 | "kind": "llm", |
| 1257 | "ok": True, |
| 1258 | "provider": getattr(provider, "name", "unknown"), |
| 1259 | "model": getattr(provider, "model", "unknown"), |
| 1260 | "response": response.text, |
| 1261 | "prompt_tokens": response.prompt_tokens, |
| 1262 | "completion_tokens": response.completion_tokens, |
| 1263 | } |
| 1264 | if normalized == "embedding": |
| 1265 | from paperflow.providers import build_embedding_provider |
| 1266 | |
| 1267 | provider = build_embedding_provider() |
| 1268 | vector = provider.embed("PaperFlow provider health check") |
| 1269 | return { |
nothing calls this directly
no test coverage detected