File size: 1,235 Bytes
409c17a
 
 
 
 
 
7bbda89
409c17a
 
 
 
 
 
7bbda89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
409c17a
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"""

HuggingFace Space Entry Point

Wraps FastAPI app for Gradio/Spaces deployment

"""
import os
import sys
import asyncio

# Add app to path
sys.path.insert(0, os.path.dirname(__file__))

from app.main import app

async def init_db():
    """Initialize database tables"""
    try:
        from app.infrastructure.database.models import Base
        from sqlalchemy.ext.asyncio import create_async_engine
        
        database_url = os.getenv("DATABASE_URL", "sqlite+aiosqlite:///./rag_onboarding.db")
        
        # Create engine
        engine = create_async_engine(database_url, echo=False)
        
        # Create all tables
        async with engine.begin() as conn:
            await conn.run_sync(Base.metadata.create_all)
        
        print("✓ Database initialized")
        await engine.dispose()
    except Exception as e:
        print(f"! Database init warning: {e}")

# Initialize DB before starting
asyncio.run(init_db())

# For HF Spaces
if __name__ == "__main__":
    import uvicorn
    
    port = int(os.getenv("PORT", 7860))  # HF Spaces default port
    uvicorn.run(
        app,
        host="0.0.0.0",
        port=port,
        log_level="info"
    )