InkLore / app /api /routes.py
garvitcpp's picture
Update app/api/routes.py
1685af4 verified
from fastapi import APIRouter, HTTPException
from app.models.request_models import StoryRequest, StoryResponse
from app.services.story_generator import StoryGenerator
from app.services.story_refinement import clean_text, refine_story
import logging
# Create the router instance
router = APIRouter()
logger = logging.getLogger(__name__)
@router.post("/generate_story", response_model=StoryResponse)
async def generate_story(request: StoryRequest):
try:
# Initialize generator and generate initial story
generator = StoryGenerator()
initial_story = generator.generate_story(
request.prompt,
request.max_length,
request.temperature
)
# Clean the initial story
cleaned_story = clean_text(initial_story)
try:
# Try to get the refined story
final_story = await refine_story(cleaned_story)
except Exception as e:
logger.error(f"Refinement failed: {str(e)}")
final_story = cleaned_story # Use cleaned story if refinement fails
return StoryResponse(story=final_story)
except Exception as e:
logger.error(f"Story generation failed: {str(e)}")
raise HTTPException(
status_code=500,
detail=f"Story generation failed: {str(e)}"
)
@router.get("/health")
@router.head("/health") # Add support for HEAD requests
async def health_check():
"""
Simple health check endpoint to keep the space awake.
Returns a 200 OK status with a basic message.
"""
return {"status": "alive", "message": "Story Generation Service is Running"}