Spaces:
Running
Running
| from fastapi import APIRouter, HTTPException | |
| from pydantic import BaseModel | |
| from modules.prompt_analyzer import create_prompt_analyzer, get_prompt_templates | |
| router = APIRouter(prefix="/api", tags=["prompts"]) | |
| class AnalyzeRequest(BaseModel): | |
| prompt: str | |
| async def get_templates(): | |
| """Get available system prompt templates.""" | |
| try: | |
| templates = get_prompt_templates() | |
| return {"templates": templates} | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| async def analyze_prompt_endpoint(request: AnalyzeRequest): | |
| """Analyze a system prompt to extract domain and metadata.""" | |
| try: | |
| analyzer = create_prompt_analyzer() | |
| analysis = analyzer.analyze_prompt(request.prompt) | |
| return {"analysis": analysis} | |
| except Exception as e: | |
| # Fallback is handled inside analyze_prompt, but just in case | |
| raise HTTPException(status_code=500, detail=str(e)) | |