Download validate_setup.py from onewayto/water3: direct link, hf CLI and curl.
- Browser
- Download file 5.66 kB
-
https://huggingface.co/spaces/onewayto/water3/resolve/main/validate_setup.py
- Command line
-
hf download hf://spaces/onewayto/water3/validate_setup.py
-
curl -L -o validate_setup.py https://huggingface.co/spaces/onewayto/water3/resolve/main/validate_setup.py
5.66 kB
| #!/usr/bin/env python3 | |
| """Validate the OpenRouter setup in the backend.""" | |
| import json | |
| import os | |
| import sys | |
| from pathlib import Path | |
| from dotenv import load_dotenv | |
| # Load environment variables | |
| load_dotenv() | |
| def check_env_variables(): | |
| """Check that required environment variables are set.""" | |
| print("=" * 60) | |
| print("Checking Environment Variables") | |
| print("=" * 60) | |
| required = ["OPENROUTER_API_KEY", "HF_TOKEN"] | |
| optional = ["OPENROUTER_MODEL", "OPENROUTER_REFERER", "OPENROUTER_APP_TITLE"] | |
| all_good = True | |
| for var in required: | |
| value = os.environ.get(var) | |
| if value: | |
| masked = value[:20] + "..." if len(value) > 20 else value | |
| print(f"β {var}: {masked}") | |
| else: | |
| print(f"β {var}: NOT SET (Required)") | |
| all_good = False | |
| for var in optional: | |
| value = os.environ.get(var) | |
| if value: | |
| print(f"β {var}: {value}") | |
| else: | |
| print(f"β οΈ {var}: Not set (Optional)") | |
| return all_good | |
| def check_config_file(): | |
| """Check that the config file is properly configured.""" | |
| print("\n" + "=" * 60) | |
| print("Checking Config File") | |
| print("=" * 60) | |
| config_path = Path(__file__).parent / "configs" / "main_agent_config.json" | |
| if not config_path.exists(): | |
| print(f"β Config file not found: {config_path}") | |
| return False | |
| try: | |
| with open(config_path) as f: | |
| config = json.load(f) | |
| print(f"β Config file loaded: {config_path}") | |
| # Check key fields | |
| checks = [ | |
| ("model_name", config.get("model_name")), | |
| ("openrouter_enabled", config.get("openrouter_enabled")), | |
| ("openrouter_model", config.get("openrouter_model")), | |
| ] | |
| for key, value in checks: | |
| if value: | |
| print(f"β {key}: {value}") | |
| else: | |
| print(f"β οΈ {key}: Not set") | |
| # Verify OpenRouter is enabled | |
| if config.get("openrouter_enabled"): | |
| print("\nβ OpenRouter is ENABLED in config") | |
| else: | |
| print("\nβ οΈ OpenRouter is NOT enabled in config") | |
| return True | |
| except json.JSONDecodeError as e: | |
| print(f"β Invalid JSON in config file: {e}") | |
| return False | |
| except Exception as e: | |
| print(f"β Error reading config: {e}") | |
| return False | |
| def check_agent_loop(): | |
| """Check that agent_loop.py has the OpenRouter fixes.""" | |
| print("\n" + "=" * 60) | |
| print("Checking Agent Loop (OpenRouter Integration)") | |
| print("=" * 60) | |
| agent_loop_path = Path(__file__).parent / "agent" / "core" / "agent_loop.py" | |
| if not agent_loop_path.exists(): | |
| print(f"β agent_loop.py not found: {agent_loop_path}") | |
| return False | |
| with open(agent_loop_path) as f: | |
| content = f.read() | |
| checks = [ | |
| ("api_base_to_use", "api_base parameter"), | |
| ("extra_headers", "extra_headers parameter"), | |
| ("https://openrouter.ai/api/v1", "OpenRouter API base URL"), | |
| ("HTTP-Referer", "HTTP-Referer header"), | |
| ("X-Title", "X-Title header"), | |
| ] | |
| all_good = True | |
| for keyword, description in checks: | |
| if keyword in content: | |
| print(f"β {description}: Found") | |
| else: | |
| print(f"β {description}: NOT found") | |
| all_good = False | |
| return all_good | |
| def check_routes(): | |
| """Check that routes/agent.py has the OpenRouter fixes.""" | |
| print("\n" + "=" * 60) | |
| print("Checking Routes (OpenRouter Integration)") | |
| print("=" * 60) | |
| routes_path = Path(__file__).parent / "routes" / "agent.py" | |
| if not routes_path.exists(): | |
| print(f"β agent.py not found: {routes_path}") | |
| return False | |
| with open(routes_path) as f: | |
| content = f.read() | |
| checks = [ | |
| ("llm_health_check", "Health check endpoint"), | |
| ("generate_title", "Title generation endpoint"), | |
| ("api_base", "api_base in routes"), | |
| ("openrouter_enabled", "openrouter_enabled check"), | |
| ] | |
| all_good = True | |
| for keyword, description in checks: | |
| if keyword in content: | |
| print(f"β {description}: Found") | |
| else: | |
| print(f"β {description}: NOT found") | |
| all_good = False | |
| return all_good | |
| def main(): | |
| """Run all validation checks.""" | |
| print("=" * 60) | |
| print("OpenRouter Setup Validation") | |
| print("=" * 60) | |
| results = [] | |
| results.append(("Environment Variables", check_env_variables())) | |
| results.append(("Config File", check_config_file())) | |
| results.append(("Agent Loop", check_agent_loop())) | |
| results.append(("Routes", check_routes())) | |
| print("\n" + "=" * 60) | |
| print("Validation Summary") | |
| print("=" * 60) | |
| for name, passed in results: | |
| status = "β PASS" if passed else "β FAIL" | |
| print(f"{name}: {status}") | |
| all_passed = all(r[1] for r in results) | |
| if all_passed: | |
| print("\nπ All validation checks passed!") | |
| print("The backend is configured correctly for OpenRouter.") | |
| return 0 | |
| else: | |
| print("\nβ οΈ Some validation checks failed.") | |
| print("Please review the errors above and fix the issues.") | |
| return 1 | |
| if __name__ == "__main__": | |
| sys.exit(main()) | |