Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions ai-backend/config/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ class Settings(BaseSettings):
"""Application settings loaded from environment variables with validation."""

# Required settings
openai_api_key: str = Field(..., min_length=20, description="OpenAI API key")
supabase_url: str = Field(..., description="Supabase project URL")
supabase_service_role_key: str = Field(
OPENAI_API_KEY: str = Field(..., min_length=20, description="OpenAI API key")
SUPABASE_URL: str = Field(..., description="Supabase project URL")
SUPABASE_SERVICE_ROLE_KEY: str = Field(
..., min_length=20, description="Supabase service role key"
)
rapidapi_key: str = Field(
RAPIDAPI_KEY: str = Field(
..., min_length=10, description="RapidAPI key for API-Football"
)

Expand Down Expand Up @@ -56,15 +56,15 @@ class Settings(BaseSettings):
description="API-Football base URL",
)

@validator("openai_api_key")
@validator("OPENAI_API_KEY")
def validate_openai_key(cls, v: str) -> str: # noqa: N805
if not v or v == "your-openai-api-key" or v == "sk-...":
raise ValueError("Valid OpenAI API key is required")
if not v.startswith("sk-"):
raise ValueError('OpenAI API key must start with "sk-"')
return v

@validator("supabase_url")
@validator("SUPABASE_URL")
def validate_supabase_url(cls, v: str) -> str: # noqa: N805
if not v.startswith("https://"):
raise ValueError("Supabase URL must be a valid HTTPS URL")
Expand Down
64 changes: 64 additions & 0 deletions ai-backend/test_environment.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
"""Test script to verify all dependencies are properly installed."""

import sys

print(f"Python version: {sys.version}")

# Test core dependencies
# try:
# import openai

# print("βœ… OpenAI package imported successfully")
# except ImportError as e:
# print(f"❌ OpenAI import failed: {e}")

# try:
# from agents.researcher import ResearchAgent

# print("βœ… OpenAI Agents package imported successfully")
# except ImportError as e:
# print(f"❌ OpenAI Agents import failed: {e}")

# try:
# import fastapi

# print("βœ… FastAPI package imported successfully")
# except ImportError as e:
# print(f"❌ FastAPI import failed: {e}")

# try:
# from pydantic import BaseModel

# print("βœ… Pydantic package imported successfully")
# except ImportError as e:
# print(f"❌ Pydantic import failed: {e}")

# try:
# from supabase import create_client

# print("βœ… Supabase package imported successfully")
# except ImportError as e:
# print(f"❌ Supabase import failed: {e}")

# try:
# import aiohttp

# print("βœ… Aiohttp package imported successfully")
# except ImportError as e:
# print(f"❌ Aiohttp import failed: {e}")

# try:
# from dotenv import load_dotenv

# print("βœ… Python-dotenv package imported successfully")
# except ImportError as e:
# print(f"❌ Python-dotenv import failed: {e}")

# try:
# import structlog

# print("βœ… Structlog package imported successfully")
# except ImportError as e:
# print(f"❌ Structlog import failed: {e}")

# print("\nπŸŽ‰ Environment test completed!")
40 changes: 40 additions & 0 deletions ai-backend/test_openai.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
"""Test OpenAI API connection."""

import os

import openai
from dotenv import load_dotenv

# Load environment variables
load_dotenv()

# Set up OpenAI client
client = openai.OpenAI(api_key=os.getenv("OPENAI_API_KEY"))


def test_openai_connection() -> None:
"""Test basic OpenAI API connection."""
if (
not os.getenv("OPENAI_API_KEY")
or os.getenv("OPENAI_API_KEY") == "your_openai_api_key_here"
):
print("⚠️ OpenAI API key not set. Skipping connection test.")
return

try:
# Test with a simple completion
response = client.chat.completions.create(
model="gpt-4.1-nano",
messages=[{"role": "user", "content": "Say 'Hello from Sport Scribe AI!'"}],
max_tokens=50,
)

print("βœ… OpenAI API connection successful!")
print(f"Response: {response.choices[0].message.content}")

except Exception as e:
print(f"❌ OpenAI API connection failed: {e}")


if __name__ == "__main__":
test_openai_connection()