|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| example_custom_anchors.json | ||
| example_deployment_targets.json | ||
| example_multi_site_deployment.json | ||
| example_multi_tier_batch.json | ||
| example_story_3.1_full_features.json | ||
| example_tier1_batch.json | ||
| project_1_tier1_5articles.json | ||
| test_augmentation.json | ||
| test_small.json | ||
README.md
Job File Format
Job files define batch content generation parameters using JSON format.
Structure
{
"jobs": [
{
"project_id": 1,
"tiers": {
"tier1": {
"count": 5,
"min_word_count": 2000,
"max_word_count": 2500,
"min_h2_tags": 3,
"max_h2_tags": 5,
"min_h3_tags": 5,
"max_h3_tags": 10
}
}
}
]
}
Fields
Job Level
project_id(required): The project ID to generate content fortiers(required): Dictionary of tier configurationsdeployment_targets(optional): Array of site custom_hostnames or site_deployment_ids to cycle throughdeployment_overflow(optional): Strategy when batch size exceeds deployment_targets ("round_robin", "random_available", or "none"). Default: "round_robin"
Tier Level
count(required): Number of articles to generate for this tiermin_word_count(optional): Minimum word count (uses defaults if not specified)max_word_count(optional): Maximum word count (uses defaults if not specified)min_h2_tags(optional): Minimum H2 headings (uses defaults if not specified)max_h2_tags(optional): Maximum H2 headings (uses defaults if not specified)min_h3_tags(optional): Minimum H3 subheadings total (uses defaults if not specified)max_h3_tags(optional): Maximum H3 subheadings total (uses defaults if not specified)
Tier Defaults
If tier parameters are not specified, these defaults are used:
tier1
min_word_count: 2000max_word_count: 2500min_h2_tags: 3max_h2_tags: 5min_h3_tags: 5max_h3_tags: 10
tier2
min_word_count: 1500max_word_count: 2000min_h2_tags: 2max_h2_tags: 4min_h3_tags: 3max_h3_tags: 8
tier3
min_word_count: 1000max_word_count: 1500min_h2_tags: 2max_h2_tags: 3min_h3_tags: 2max_h3_tags: 6
Examples
Simple: Single Tier with Defaults
{
"jobs": [
{
"project_id": 1,
"tiers": {
"tier1": {
"count": 5
}
}
}
]
}
Custom Word Counts
{
"jobs": [
{
"project_id": 1,
"tiers": {
"tier1": {
"count": 3,
"min_word_count": 2500,
"max_word_count": 3000
}
}
}
]
}
Multi-Tier
{
"jobs": [
{
"project_id": 1,
"tiers": {
"tier1": {
"count": 5
},
"tier2": {
"count": 10
},
"tier3": {
"count": 15
}
}
}
]
}
Multiple Projects
{
"jobs": [
{
"project_id": 1,
"tiers": {
"tier1": {
"count": 5
}
}
},
{
"project_id": 2,
"tiers": {
"tier1": {
"count": 3
},
"tier2": {
"count": 8
}
}
}
]
}
Usage
Run batch generation with:
python main.py generate-batch --job-file jobs/example_tier1_batch.json --username youruser --password yourpass
Options
--job-file, -j: Path to job JSON file (required)--username, -u: Username for authentication--password, -p: Password for authentication--debug: Save AI responses to debug_output/--continue-on-error: Continue processing if article generation fails--model, -m: AI model to use (default: gpt-4o-mini)
Deployment Target Assignment (Story 2.5)
Optionally specify which sites/buckets to deploy articles to:
{
"jobs": [
{
"project_id": 1,
"deployment_targets": [
"www.domain1.com",
"www.domain2.com",
"www.domain3.com"
],
"deployment_overflow": "round_robin",
"tiers": {
"tier1": {
"count": 10
}
}
}
]
}
This generates 10 articles distributed across 3 sites:
- Articles 0, 3, 6, 9 → domain1.com
- Articles 1, 4, 7 → domain2.com
- Articles 2, 5, 8 → domain3.com
Overflow Strategies:
round_robin(default): Cycle back through specified targetsrandom_available: Use random sites not in the targets listnone: Error if batch exceeds target count (strict mode)
If deployment_targets is omitted, articles receive random templates (no site assignment).
Debug Mode
When using --debug, AI responses are saved to debug_output/:
title_project{id}_tier{tier}_article{n}_{timestamp}.txtoutline_project{id}_tier{tier}_article{n}_{timestamp}.jsoncontent_project{id}_tier{tier}_article{n}_{timestamp}.htmlaugmented_project{id}_tier{tier}_article{n}_{timestamp}.html(if augmented)