108 lines
3.4 KiB
Markdown
108 lines
3.4 KiB
Markdown
# Expected Response Structure for generate_images_from_prompts
|
|
|
|
## Function Flow
|
|
|
|
1. **Frontend calls**: `POST /v1/writer/images/generate_images/` with `{ ids: [1, 2, 3] }`
|
|
2. **Backend ViewSet** (`ImagesViewSet.generate_images`):
|
|
- Calls `run_ai_task` with `function_name='generate_images_from_prompts'`
|
|
- Returns response with `queued_prompts` if in TEST MODE
|
|
|
|
3. **AIEngine.execute**:
|
|
- Validates, prepares, builds prompt (placeholder), parses (placeholder)
|
|
- Calls `save_output` which queues prompts (TEST MODE)
|
|
|
|
4. **GenerateImagesFromPromptsFunction.save_output**:
|
|
- Returns dict with queued prompts
|
|
|
|
## Response Structure (TEST MODE)
|
|
|
|
```json
|
|
{
|
|
"success": true,
|
|
"count": 3,
|
|
"images_generated": 0,
|
|
"images_failed": 0,
|
|
"total_images": 3,
|
|
"queued_prompts": [
|
|
{
|
|
"image_id": 1,
|
|
"index": 1,
|
|
"image_type": "featured_image",
|
|
"content_title": "Your Content Title",
|
|
"provider": "openai",
|
|
"model": "dall-e-2",
|
|
"formatted_prompt": "Create a high-quality realistic image to use as a featured photo for a blog post titled \"Your Content Title\". The image should visually represent the theme, mood, and subject implied by the image prompt: [original prompt]. Focus on a realistic, well-composed scene that naturally communicates the topic without text or logos...",
|
|
"negative_prompt": null,
|
|
"prompt_length": 250
|
|
},
|
|
{
|
|
"image_id": 2,
|
|
"index": 2,
|
|
"image_type": "in_article_1",
|
|
"content_title": "Your Content Title",
|
|
"provider": "openai",
|
|
"model": "dall-e-2",
|
|
"formatted_prompt": "...",
|
|
"negative_prompt": null,
|
|
"prompt_length": 245
|
|
}
|
|
],
|
|
"test_mode": true,
|
|
"provider": "openai",
|
|
"model": "dall-e-2",
|
|
"errors": null
|
|
}
|
|
```
|
|
|
|
## Response Structure (Production Mode - when AI calls are enabled)
|
|
|
|
```json
|
|
{
|
|
"success": true,
|
|
"count": 3,
|
|
"images_generated": 3,
|
|
"images_failed": 0,
|
|
"total_images": 3,
|
|
"errors": null
|
|
}
|
|
```
|
|
|
|
## Key Points
|
|
|
|
1. **TEST MODE** (current):
|
|
- `images_generated: 0` (no actual images generated)
|
|
- `queued_prompts` array contains all formatted prompts
|
|
- `test_mode: true`
|
|
- Each prompt includes the complete formatted prompt that would be sent to AI
|
|
|
|
2. **Production MODE** (when AI calls are uncommented):
|
|
- `images_generated` will be > 0
|
|
- `queued_prompts` will not be in response
|
|
- `test_mode: false` or not present
|
|
- Images will have `image_url` and `status='generated'`
|
|
|
|
## Console Logging
|
|
|
|
The function logs to console (if DEBUG_MODE=True):
|
|
- `[generate_images_from_prompts] [TEST MODE] Queued prompt X/Y`
|
|
- `[generate_images_from_prompts] [TEST MODE] Provider: openai, Model: dall-e-2`
|
|
- `[generate_images_from_prompts] [TEST MODE] Prompt length: 250 chars`
|
|
- `[generate_images_from_prompts] [TEST MODE] Prompt preview: ...`
|
|
|
|
## Frontend Console Output
|
|
|
|
When clicking "Generate Images", browser console will show:
|
|
```
|
|
[Generate Images] Request: { imageIds: [1, 2, 3], count: 3 }
|
|
[Generate Images] Endpoint: /v1/writer/images/generate_images/
|
|
[Generate Images] Full Response: { success: true, queued_prompts: [...], ... }
|
|
[Generate Images] Queued Prompts (TEST MODE - NOT sent to AI): [...]
|
|
[Generate Images] Provider: openai, Model: dall-e-2
|
|
[Generate Images] Prompt 1/3:
|
|
- Image Type: featured_image
|
|
- Content: "Your Content Title"
|
|
- Prompt Length: 250 chars
|
|
- Full Prompt: "Create a high-quality realistic image..."
|
|
```
|
|
|