Skip to main content

Content Generation Service - User Guide

Quick Start

Generate professional content in 3 steps:

from packages.content_generation import BlogPostGenerator, ContentGenerationRequest
from packages.content_generation.models import ContentType, AudienceSegment, Tone

# 1. Create generator
generator = BlogPostGenerator()

# 2. Create request
request = ContentGenerationRequest(
content_type=ContentType.BLOG_POST,
topic="Your Topic Here",
audience_segment=AudienceSegment.BUSINESS_USERS,
tone=Tone.PROFESSIONAL,
created_by="your_user_id"
)

# 3. Generate content
content = await generator.generate_blog_post(request)
print(content.title)

Content Types

Marketing Content

Blog Posts:

from packages.content_generation import BlogPostGenerator

generator = BlogPostGenerator()
blog = await generator.generate_blog_post(request, seo_focus="main keyword")

# Get SEO metadata
print(f"SEO Score: {blog.quality_scores.seo_score}")
print(f"Meta: {blog.metadata['meta_description']}")
print(f"Tags: {blog.metadata['tags']}")

Email Campaigns:

from packages.content_generation import EmailCampaignGenerator

generator = EmailCampaignGenerator()
email = await generator.generate_email_campaign(
request,
email_type="promotional", # or: transactional, newsletter, nurture, announcement
generate_variants=3 # Get 3 subject line variants
)

# Get A/B test variants
for i, subject in enumerate(email.metadata['subject_lines'], 1):
print(f"Subject {i}: {subject}")

Social Media:

from packages.content_generation import SocialMediaGenerator

generator = SocialMediaGenerator()

# Single platform
linkedin = await generator.generate_social_post(request, platform="linkedin")

# All platforms at once
posts = await generator.generate_multi_platform(request)
for platform, content in posts.items():
print(f"{platform}: {content.character_count} chars")

Sales Content

Sales Outreach:

from packages.content_generation import SalesOutreachGenerator

generator = SalesOutreachGenerator()

# Single outreach email
outreach = await generator.generate_sales_outreach(
request,
prospect_data={
"prospect_name": "John Smith",
"company": "Acme Corp",
"pain_point": "manual processes"
}
)

# Multi-touch sequence
sequence = await generator.generate_sales_sequence(request, sequence_length=5)
# Returns 5 emails with evolving tone and CTAs

Sales Proposals:

from packages.content_generation import ProposalGenerator

generator = ProposalGenerator()
proposal = await generator.generate_proposal(
request,
client_data={
"client_name": "Acme Corp",
"budget": "$50,000",
"timeline": "3 months"
}
)

Quality Analysis

Check Content Quality

from packages.content_generation import QualityScorer

scorer = QualityScorer()
scores = await scorer.score_content(
title="My Article",
body="Content here...",
target_keywords=["keyword1", "keyword2"]
)

print(f"Readability: {scores['readability']['flesch_reading_ease']}")
print(f"Grammar: {scores['grammar']['grammar_score']}")
print(f"SEO: {scores['seo']['seo_score']}")
print(f"Safety: {scores['toxicity']['safety_score']}")

Check Compliance

from packages.content_generation import ContentComplianceChecker

checker = ContentComplianceChecker()
compliance = await checker.check_compliance(
title="Article Title",
body="Content here...",
requirements={
"min_words": 500,
"max_words": 1500
}
)

if not compliance.passed:
print(f"Issues: {compliance.issues}")
print(f"Warnings: {compliance.warnings}")

A/B Testing

Generate Variants

from packages.content_generation import ContentVariantGenerator

variant_gen = ContentVariantGenerator()

# Tone variants
tone_variants = await variant_gen.generate_tone_variants(request)

# Audience variants
audience_variants = await variant_gen.generate_audience_variants(request)

# Compare and get best
comparison = variant_gen.compare_variants(tone_variants)
print(f"Best variant: {comparison['recommended_variant']}")

API Usage

Generate Content

curl -X POST http://localhost:8000/api/v1/content/generate \
-H "Content-Type: application/json" \
-d '{
"content_type": "blog_post",
"topic": "AI in Healthcare",
"audience_segment": "business_users",
"tone": "professional",
"target_keywords": ["AI", "healthcare"],
"created_by": "user_123"
}'

Analyze Quality

curl -X POST http://localhost:8000/api/v1/content/quality/analyze \
-H "Content-Type: application/json" \
-d '{
"content": "Your content here...",
"title": "Article Title",
"target_keywords": ["keyword1", "keyword2"]
}'

Best Practices

Content Generation

  1. Be Specific: Detailed topics get better results
  2. Use Keywords: Improves SEO and relevance
  3. Set Word Counts: Get content of appropriate length
  4. Choose Right Tone: Match your audience
  5. Enable RAG: Better context = better content

Quality Optimization

  1. Check Readability: Aim for 60-70 Flesch score
  2. Review Grammar: Fix flagged errors
  3. Optimize SEO: Use extracted keywords
  4. Validate Safety: Ensure toxicity < 0.3
  5. Iterate: Use A/B testing to improve

Sales Content

  1. Personalize: Use prospect data
  2. Be Concise: <250 words for outreach
  3. Multiple Touches: Use sequences (5 emails)
  4. Soft CTAs: Low-friction asks
  5. Add Value: Include resources, insights

Troubleshooting

Low Quality Scores:

  • Check if quality libraries are installed
  • Verify content meets minimum standards
  • Review generated content manually

Slow Generation:

  • Reduce max_words
  • Disable unnecessary features
  • Check API rate limits

High Costs:

  • Set max_tokens limits
  • Use caching
  • Monitor daily budgets

Support

  • Documentation: See full docs in docs/docs/services/personalized-content-generation/
  • Examples: Check examples/content_generation_demo.py
  • Tests: Review test files for usage patterns

User Guide Version: 1.0
Last Updated: October 9, 2025