Spaces:
Sleeping
Sleeping
| """Day 1 smoke test: verify both Gemini and Groq API keys work end-to-end. | |
| Usage: | |
| uv run python scripts/smoke_test.py | |
| """ | |
| from __future__ import annotations | |
| import sys | |
| from pathlib import Path | |
| # Make `researchpath` importable when running this file directly. | |
| sys.path.insert(0, str(Path(__file__).resolve().parents[1])) | |
| from rich.console import Console | |
| from researchpath.llm import gemini_generate, groq_generate | |
| console = Console() | |
| PROMPT = "In one sentence, what is policy gradient in reinforcement learning?" | |
| def run_provider(name: str, fn) -> bool: | |
| console.print(f"[bold cyan]Testing {name}...[/bold cyan]") | |
| try: | |
| result = fn(PROMPT) | |
| console.print(f"[green]OK[/green] {name} ({result.model}):") | |
| console.print(f" {result.text.strip()}") | |
| if result.input_tokens is not None: | |
| console.print( | |
| f" [dim]tokens: {result.input_tokens} in / {result.output_tokens} out[/dim]" | |
| ) | |
| console.print() | |
| return True | |
| except Exception as e: | |
| console.print(f"[red]FAIL {name}:[/red] {e}\n") | |
| return False | |
| def main() -> int: | |
| console.print("[bold]ResearchPath smoke test[/bold]\n") | |
| results = [ | |
| run_provider("Gemini", gemini_generate), | |
| run_provider("Groq", groq_generate), | |
| ] | |
| if all(results): | |
| console.print("[bold green]All providers working. You're ready for Day 2.[/bold green]") | |
| return 0 | |
| console.print("[bold red]One or more providers failed. Fix and re-run.[/bold red]") | |
| return 1 | |
| if __name__ == "__main__": | |
| sys.exit(main()) | |