Spaces:
Sleeping
Sleeping
| # Multi-Agent Content Generation System - API Endpoints | |
| **Base URL:** `http://localhost:7860` | |
| **Port:** `7860` (all agents on single port) | |
| --- | |
| ## Health & Status | |
| ### Health Check | |
| ``` | |
| GET /health | |
| ``` | |
| Returns system health status and current run ID. | |
| **Response:** | |
| ```json | |
| { | |
| "status": "healthy", | |
| "run_id": "uuid", | |
| "port": 7860 | |
| } | |
| ``` | |
| ### Root Endpoint | |
| ``` | |
| GET / | |
| ``` | |
| Returns API information and available endpoints. | |
| --- | |
| ## Pipeline Endpoints | |
| ### Execute Full Pipeline | |
| ``` | |
| POST /api/pipeline/execute | |
| ``` | |
| Execute the complete 7-stage content generation pipeline. | |
| **Request Body:** | |
| ```json | |
| { | |
| "user_brief": "string", | |
| "season_arc_document": "string", | |
| "character_bible": "string", | |
| "world_building_document": "string", | |
| "character_voice_guide": "string", | |
| "style_guide": "string", | |
| "continuity_log": "string", | |
| "hook_brief": "string (optional)" | |
| } | |
| ``` | |
| **Response:** | |
| ```json | |
| { | |
| "run_id": "uuid", | |
| "status": "success", | |
| "final_output": { ... }, | |
| "hf_output_url": "https://huggingface.co/...", | |
| "hf_metadata_url": "https://huggingface.co/..." | |
| } | |
| ``` | |
| ### Get Pipeline Status | |
| ``` | |
| GET /api/pipeline/status/{run_id} | |
| ``` | |
| Get the status and state of a specific pipeline run. | |
| **Response:** | |
| ```json | |
| { | |
| "run_id": "uuid", | |
| "status": "completed|failed|running", | |
| "pipeline_state": { ... } | |
| } | |
| ``` | |
| --- | |
| ## Agent Endpoints | |
| All agents run on port 7860 with dedicated endpoints. | |
| ### 1. Showrunner Agent | |
| ``` | |
| POST /api/agents/showrunner | |
| ``` | |
| Generate episode directive from user brief. | |
| **Input:** | |
| ```json | |
| { | |
| "user_brief": "string", | |
| "season_arc_document": "string", | |
| "character_bible": "string" | |
| } | |
| ``` | |
| **Output:** | |
| ```json | |
| { | |
| "episode_directive": "string", | |
| "story_premise": "string", | |
| "tone_brief": "string", | |
| "character_focus_notes": "string" | |
| } | |
| ``` | |
| --- | |
| ### 2. Story Editor Agent | |
| ``` | |
| POST /api/agents/story-editor | |
| ``` | |
| Generate episode outline from directive. | |
| **Input:** | |
| ```json | |
| { | |
| "episode_directive": "string", | |
| "series_continuity_log": "string", | |
| "character_list": ["Alex", "Jordan", "Casey", "Morgan"] | |
| } | |
| ``` | |
| **Output:** | |
| ```json | |
| { | |
| "episode_outline": "string", | |
| "act_structure": "string", | |
| "story_notes_for_writers": "string" | |
| } | |
| ``` | |
| --- | |
| ### 3. Cultural Consultant Agent | |
| ``` | |
| POST /api/agents/cultural-consultant | |
| ``` | |
| Review outline for cultural accuracy. | |
| **Input:** | |
| ```json | |
| { | |
| "episode_outline": "string", | |
| "world_building_document": "string", | |
| "character_list": ["Alex", "Jordan", "Casey", "Morgan"] | |
| } | |
| ``` | |
| **Output:** | |
| ```json | |
| { | |
| "cultural_accuracy_notes": "string", | |
| "flagged_inaccuracies": ["issue1", "issue2"], | |
| "approved_touchpoints": ["touchpoint1"], | |
| "reference_suggestions": ["suggestion1"] | |
| } | |
| ``` | |
| --- | |
| ### 4. Lead Writer Agent | |
| ``` | |
| POST /api/agents/lead-writer | |
| ``` | |
| Write episode script from outline and cultural notes. | |
| **Input:** | |
| ```json | |
| { | |
| "approved_outline": "string", | |
| "cultural_consultant_notes": "string", | |
| "character_voice_guide": "string", | |
| "character_list": ["Alex", "Jordan", "Casey", "Morgan"], | |
| "story_premise": "string" | |
| } | |
| ``` | |
| **Output:** | |
| ```json | |
| { | |
| "full_episode_first_draft": "string", | |
| "scene_descriptions": "string", | |
| "dialogue": "string", | |
| "stage_directions": "string" | |
| } | |
| ``` | |
| --- | |
| ### 5. Dialogue Specialist Agent | |
| ``` | |
| POST /api/agents/dialogue-specialist | |
| ``` | |
| Polish dialogue in the script. | |
| **Input:** | |
| ```json | |
| { | |
| "first_draft_script": "string (must not be empty)", | |
| "character_voice_guide": "string", | |
| "character_list": ["Alex", "Jordan", "Casey", "Morgan"], | |
| "dialect_slang_reference": "string" | |
| } | |
| ``` | |
| **Output:** | |
| ```json | |
| { | |
| "dialogue_polished_script": "string", | |
| "voice_consistency_notes": "string" | |
| } | |
| ``` | |
| --- | |
| ### 6. Comedy Writer Agent | |
| ``` | |
| POST /api/agents/comedy-writer | |
| ``` | |
| Add humor and punch-ups to the script. | |
| **Input:** | |
| ```json | |
| { | |
| "dialogue_polished_script": "string (must not be empty)", | |
| "hook_brief_from_showrunner": "string", | |
| "character_list": ["Alex", "Jordan", "Casey", "Morgan"], | |
| "tone_brief": "string" | |
| } | |
| ``` | |
| **Output:** | |
| ```json | |
| { | |
| "comedy_sharpened_script": "string", | |
| "punch_up_notes": "string", | |
| "hook_rewrite_for_opening": "string" | |
| } | |
| ``` | |
| --- | |
| ### 7. Proofreader Agent | |
| ``` | |
| POST /api/agents/proofreader | |
| ``` | |
| Final quality control on the script. | |
| **Input:** | |
| ```json | |
| { | |
| "comedy_sharpened_script": "string (must not be empty)", | |
| "style_guide": "string", | |
| "continuity_log": "string", | |
| "character_list": ["Alex", "Jordan", "Casey", "Morgan"] | |
| } | |
| ``` | |
| **Output:** | |
| ```json | |
| { | |
| "final_locked_script": "string", | |
| "qc_report": { | |
| "issues": [], | |
| "style_alignment": "string", | |
| "character_consistency": "string", | |
| "formatting_notes": "string", | |
| "recommendations": [] | |
| }, | |
| "continuity_log_update": "string" | |
| } | |
| ``` | |
| --- | |
| ## API Usage Examples | |
| ### Example 1: Execute Full Pipeline | |
| ```bash | |
| curl -X POST http://localhost:7860/api/pipeline/execute \ | |
| -H "Content-Type: application/json" \ | |
| -d '{ | |
| "user_brief": "A tech startup launches a new app", | |
| "season_arc_document": "Season 1: The Rise", | |
| "character_bible": "Alex (CEO), Jordan (CTO), Casey (Designer), Morgan (Marketer)", | |
| "world_building_document": "Modern Silicon Valley", | |
| "character_voice_guide": "Alex: sarcastic, Jordan: technical, Casey: perfectionist, Morgan: optimistic", | |
| "style_guide": "Fast-paced, comedic, tech satire", | |
| "continuity_log": "Episode 1: Team formation, Episode 2: First failure, Episode 3: Launch day" | |
| }' | |
| ``` | |
| ### Example 2: Call Individual Agent | |
| ```bash | |
| curl -X POST http://localhost:7860/api/agents/showrunner \ | |
| -H "Content-Type: application/json" \ | |
| -d '{ | |
| "user_brief": "A tech startup launches a new app", | |
| "season_arc_document": "Season 1: The Rise", | |
| "character_bible": "Alex (CEO), Jordan (CTO), Casey (Designer), Morgan (Marketer)" | |
| }' | |
| ``` | |
| ### Example 3: Check Pipeline Status | |
| ```bash | |
| curl -X GET http://localhost:7860/api/pipeline/status/0e35979c-8240-4451-a693-6bed1516aa4d | |
| ``` | |
| --- | |
| ## Error Handling | |
| All endpoints return appropriate HTTP status codes: | |
| - **200 OK** - Successful request | |
| - **400 Bad Request** - Invalid input | |
| - **404 Not Found** - Resource not found | |
| - **500 Internal Server Error** - Server error | |
| Error responses include a detail message: | |
| ```json | |
| { | |
| "detail": "Error message explaining what went wrong" | |
| } | |
| ``` | |
| --- | |
| ## Documentation | |
| - **Interactive API Docs:** `http://localhost:7860/docs` (Swagger UI) | |
| - **Alternative Docs:** `http://localhost:7860/redoc` (ReDoc) | |
| --- | |
| ## Architecture | |
| ``` | |
| Port 7860 (Single Port) | |
| βββ /health | |
| βββ / | |
| βββ /api/pipeline/ | |
| β βββ execute | |
| β βββ status/{run_id} | |
| βββ /api/agents/ | |
| βββ showrunner | |
| βββ story-editor | |
| βββ cultural-consultant | |
| βββ lead-writer | |
| βββ dialogue-specialist | |
| βββ comedy-writer | |
| βββ proofreader | |
| ``` | |
| All agents communicate through the orchestrator and share state via the pipeline. | |