|
""" |
|
Minimal deployment verification script for GAIA Agent |
|
""" |
|
|
|
import os |
|
import sys |
|
from datetime import datetime |
|
import traceback |
|
|
|
def print_header(message): |
|
print("\n" + "=" * 50) |
|
print(message) |
|
print("=" * 50) |
|
|
|
def check_file_structure(): |
|
"""Check if critical files are present.""" |
|
print_header("Checking file structure") |
|
|
|
critical_files = [ |
|
"app.py", |
|
"requirements.txt", |
|
"agent/config.py", |
|
"agent/agent.py" |
|
] |
|
|
|
missing_files = [] |
|
for file_path in critical_files: |
|
if not os.path.exists(file_path): |
|
missing_files.append(file_path) |
|
print(f"[FAIL] Missing critical file: {file_path}") |
|
else: |
|
print(f"[PASS] Found file: {file_path}") |
|
|
|
return len(missing_files) == 0, missing_files |
|
|
|
def check_env_vars(): |
|
"""Check if critical environment variables are accessible.""" |
|
print_header("Checking environment variables") |
|
|
|
critical_vars = [ |
|
"OPENAI_API_KEY", |
|
"SUPABASE_URL", |
|
"SUPABASE_KEY" |
|
] |
|
|
|
missing_vars = [] |
|
for var_name in critical_vars: |
|
var_value = os.getenv(var_name, "") |
|
if not var_value: |
|
missing_vars.append(var_name) |
|
print(f"[FAIL] Missing environment variable: {var_name}") |
|
else: |
|
print(f"[PASS] Found environment variable: {var_name}") |
|
|
|
return len(missing_vars) == 0, missing_vars |
|
|
|
def check_packages(): |
|
"""Check if requirements.txt contains critical packages.""" |
|
print_header("Checking requirements.txt packages") |
|
|
|
critical_packages = [ |
|
"openai", |
|
"gradio", |
|
"langchain" |
|
] |
|
|
|
if not os.path.exists("requirements.txt"): |
|
print("[FAIL] requirements.txt file not found") |
|
return False, ["requirements.txt file not found"] |
|
|
|
try: |
|
with open("requirements.txt", "r") as f: |
|
content = f.read().lower() |
|
|
|
missing_packages = [] |
|
for package in critical_packages: |
|
if package.lower() not in content: |
|
missing_packages.append(package) |
|
print(f"[FAIL] Missing package in requirements.txt: {package}") |
|
else: |
|
print(f"[PASS] Found package in requirements.txt: {package}") |
|
|
|
return len(missing_packages) == 0, missing_packages |
|
except Exception as e: |
|
print(f"[ERROR] Error reading requirements.txt: {str(e)}") |
|
return False, [f"Error reading requirements.txt: {str(e)}"] |
|
|
|
def main(): |
|
"""Run minimal verification checks.""" |
|
try: |
|
print_header(f"GAIA Agent Minimal Verification - {datetime.now()}") |
|
|
|
|
|
file_check = check_file_structure() |
|
env_check = check_env_vars() |
|
pkg_check = check_packages() |
|
|
|
|
|
print_header("Verification Summary") |
|
print(f"File structure check: {'[PASS]' if file_check[0] else '[FAIL]'}") |
|
print(f"Environment variables check: {'[PASS]' if env_check[0] else '[FAIL]'}") |
|
print(f"Package requirements check: {'[PASS]' if pkg_check[0] else '[FAIL]'}") |
|
|
|
|
|
if file_check[0] and env_check[0] and pkg_check[0]: |
|
print("\n[SUCCESS] All checks passed. Basic deployment verification successful.") |
|
return 0 |
|
else: |
|
print("\n[FAILURE] Some checks failed. Please address the issues before deployment.") |
|
return 1 |
|
|
|
except Exception as e: |
|
print_header("ERROR OCCURRED") |
|
print(f"Error during verification: {str(e)}") |
|
print("\nTraceback:") |
|
traceback.print_exc() |
|
return 1 |
|
|
|
if __name__ == "__main__": |
|
sys.exit(main()) |