AI-powered marketing content creation with interactive chat, banner generation (DALL-E 3), and video generation (Google Veo 3.1)
- Features
- Quick Start
- Architecture
- Setup Instructions
- Usage & Workflows
- Configuration
- Project Structure
- API Costs
- Development
- Troubleshooting
- 4-Week POC Timeline
- Contributing
- License
- Natural Language Interface: Conversational interaction for content generation
- Context Memory: Maintains last 3 message exchanges for coherent conversations
- Intelligent Routing: Automatically detects intent (banner/video/image-to-video)
- Parameter Extraction: Extracts campaign details, brand info, specs from conversation
- Engine: OpenAI DALL-E 3 (HD quality)
- Sizes:
- Social media (1200Γ628)
- Leaderboard (728Γ90)
- Square (1024Γ1024)
- Speed: 10-30 seconds per banner
- Quality Assurance: Automatic validation using Claude Vision
- Auto-Retry: Regenerates up to 3 times if quality validation fails
- Validation Criteria:
- Brand visibility (1-10)
- Message clarity (1-10)
- CTA effectiveness (1-10)
- Visual appeal (1-10)
- Overall quality (1-10)
- Engine: Google Veo 3.1
- Modes:
- Text-to-video: Describe your video concept
- Image-to-video: Animate existing banners
- Durations: Short (4s), Standard (6s), Extended (8s)
- Quality: 720p or 1080p
- Aspect Ratios: 16:9 (landscape) or 9:16 (portrait)
- Speed: 1-3 minutes per video
- Native Audio: Videos include generated audio
- Gallery View: Browse all generated content with filtering
- Manual Forms: Alternative to chat for structured input
- Download: Direct download of all generated assets
- Metadata Tracking: JSON files with generation parameters
- Session Persistence: Conversation history maintained during session
- Python: 3.8 or higher
- uv: Fast Python package installer
- API Keys: OpenAI, Anthropic, Google
# 1. Clone repository
git clone https://github.com/gpolydatas/marketing_generator
cd marketing_generator
# 2. Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 3. Install dependencies
uv pip install -r requirements.txt
# 4. Configure API keys
cp fastagent.secrets.yaml.template fastagent.secrets.yaml
# Edit fastagent.secrets.yaml with your actual API keys
# 5. Run application
./start.shOpen in browser: http://localhost:8501
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β USER INTERFACE (Streamlit) β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Chat β β Manual β β Gallery β β
β β Interface β β Forms β β View β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ORCHESTRATION LAYER (FastAgent) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Marketing Orchestrator Agent β β
β β β’ Natural language understanding β β
β β β’ Context management (6 messages) β β
β β β’ Intent detection & routing β β
β β β’ Parameter extraction β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β
ββββββββββββββ΄βββββββββββββ
βΌ βΌ
ββββββββββββββββββββββββ ββββββββββββββββββββββββ
β BANNER MCP SERVER β β VIDEO MCP SERVER β
β β β β
β generate_banner() β β generate_video() β
β validate_banner() β β validate_video() β
β β β β
β βββββββββββββββββ β β βββββββββββββββββ β
β β DALL-E 3 β β β β Veo 3.1 β β
β β (OpenAI) β β β β (Google) β β
β βββββββββββββββββ β β βββββββββββββββββ β
β β β β
β βββββββββββββββββ β β βββββββββββββββββ β
β β Claude β β β β Claude β β
β β (Validation) β β β β (Validation) β β
β βββββββββββββββββ β β βββββββββββββββββ β
ββββββββββββββββββββββββ ββββββββββββββββββββββββ
β β
ββββββββββββ¬βββββββββββββββ
βΌ
ββββββββββββββββββββββββ
β STORAGE LAYER β
β (Local Filesystem) β
β β
β β’ outputs/*.png β
β β’ outputs/*.mp4 β
β β’ outputs/*.json β
ββββββββββββββββββββββββ
- Streamlit Application: Web interface
- Components:
- Chat interface with conversation history
- Manual forms for banner/video/image-to-video
- Gallery with filtering (banners/videos)
- Preview and download functionality
- Session State: Manages conversation context
- FastAgent Framework: MCP-based agent orchestration
- Responsibilities:
- Parse natural language requests
- Maintain conversation context (last 6 messages)
- Detect intent (banner/video/image-to-video)
- Extract parameters (campaign, brand, specs)
- Route to appropriate MCP server
- Handle errors and retries
Banner MCP Server (banner_mcp_server.py):
- Tools:
generate_banner: Creates banner with DALL-E 3validate_banner: Quality checks with Claude Vision
- Process:
- Build enhanced prompt from parameters
- Call DALL-E 3 API
- Download and save image
- Validate with Claude
- Regenerate if validation fails (up to 3 attempts)
Video MCP Server (video_mcp_server.py):
- Tools:
generate_video: Creates video with Veo 3.1validate_video: Manual review
- Process:
- Build prompt (text-to-video or image-to-video)
- Call Veo API
- Poll for completion (1-3 minutes)
- Download and save video
- Save metadata
OpenAI DALL-E 3:
- Model:
dall-e-3 - Quality: HD
- Sizes: 1024Γ1024, 1792Γ1024, 1024Γ1792
- Cost: ~$0.08 per image
Google Veo 3.1:
- Durations: 4s, 6s, 8s
- Resolutions: 720p, 1080p
- Aspect ratios: 16:9, 9:16
- Cost: ~$0.50 per video
Anthropic Claude:
- Model:
claude-sonnet-4-20250514 - Use: Validation and orchestration
- Cost: ~$0.003 per validation
- Location:
outputs/directory - File Naming:
- Banners:
banner_{type}_{size}_{timestamp}.png - Videos:
video_{duration}_{mode}_{timestamp}.mp4 - Metadata: Same name with
.jsonextension
- Banners:
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"Verify installation:
uv --versiongit clone https://github.com/gpolydatas/marketing_generator.git
cd marketing_generatorProduction:
uv pip install -r requirements.txtDevelopment (includes testing/linting tools):
uv pip install -r requirements-dev.txtCopy template:
cp fastagent.secrets.yaml.template fastagent.secrets.yamlEdit fastagent.secrets.yaml:
# FastAgent Secrets Configuration
openai:
api_key: sk-proj-YOUR_OPENAI_KEY_HERE
anthropic:
api_key: sk-ant-YOUR_ANTHROPIC_KEY_HERE
google:
api_key: YOUR_GOOGLE_KEY_HERE
mcp:
servers:
banner_tools:
env:
OPENAI_API_KEY: sk-proj-YOUR_OPENAI_KEY_HERE
ANTHROPIC_API_KEY: sk-ant-YOUR_ANTHROPIC_KEY_HERE
video_tools:
env:
GOOGLE_API_KEY: YOUR_GOOGLE_KEY_HERE
ANTHROPIC_API_KEY: sk-ant-YOUR_ANTHROPIC_KEY_HEREGet API Keys:
- OpenAI: https://platform.openai.com/api-keys
- Anthropic: https://console.anthropic.com/
- Google: https://console.cloud.google.com/
mkdir -p outputsuv run streamlit run app_working.pyApplication will open at: http://localhost:8501
Quick test in chat interface:
You: Create a test banner for TechCo
Wait 10-30 seconds - you should see a banner generated!
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. USER TYPES IN CHAT β
β "Create a Black Friday banner for Nike with 70% off" β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. AGENT ANALYZES REQUEST β
β β’ Intent: BANNER β
β β’ Parameters: β
β - Campaign: "Black Friday" β
β - Brand: "Nike" β
β - Type: "social" β
β - Message: "70% off" β
β - CTA: "Shop Now" β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. GENERATE BANNER β
β β’ Call banner_mcp_server.generate_banner() β
β β’ DALL-E 3 creates image (10-30 seconds) β
β β’ Save to outputs/banner_social_1792x1024_[timestamp].png β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. VALIDATE BANNER β
β β’ Call banner_mcp_server.validate_banner() β
β β’ Claude Vision scores: β
β - Brand visibility: 9/10 β
β - Message clarity: 8/10 β
β - CTA effectiveness: 9/10 β
β - Visual appeal: 8/10 β
β - Overall quality: 8.5/10 β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 5. CHECK VALIDATION β
β All scores β₯ 7? YES β Continue β
β Any score < 7? NO β Regenerate (up to 3 times) β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 6. DISPLAY RESULTS β
β β’ Show success message β
β β’ Display validation scores β
β β’ Preview banner image β
β β’ Add to gallery β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Example Conversation:
You: Create a Black Friday banner for Nike
π€: I'll create a Black Friday sale banner for Nike...
[Generates banner in 15 seconds]
β
Banner created! Validation scores:
β’ Brand visibility: 9/10
β’ Message clarity: 8/10
β’ CTA effectiveness: 9/10
You: Make the text bigger
π€: I'll regenerate with larger text...
[Generates improved banner]
β
Updated banner created!
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. USER TYPES IN CHAT β
β "Make a 6-second video showcasing headphones" β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. AGENT ANALYZES REQUEST β
β β’ Intent: VIDEO (text-to-video) β
β β’ Parameters: β
β - Duration: "standard" (6s) β
β - Description: "showcasing headphones" β
β - Resolution: "720p" β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. GENERATE VIDEO β
β β’ Call video_mcp_server.generate_video() β
β β’ Veo 3.1 generates video (1-3 minutes) β
β β’ Poll for completion every 10 seconds β
β β’ Download completed video β
β β’ Save to outputs/video_standard_6s_[timestamp].mp4 β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. DISPLAY RESULTS β
β β’ Show success message β
β β’ Display video preview β
β β’ Provide download link β
β β’ Add to gallery β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. FIRST: CREATE BANNER β
β You: "Create a banner for Summer Sale" β
β π€: [Creates banner_social_1792x1024_20251026.png] β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. THEN: ANIMATE IT β
β You: "Now animate it with a zoom effect" β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. AGENT UNDERSTANDS CONTEXT β
β β’ Intent: IMAGE-TO-VIDEO β
β β’ Extract filename from conversation history: β
β "banner_social_1792x1024_20251026.png" β
β β’ Motion: "zoom effect" β
β β’ Duration: "standard" (6s default) β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. GENERATE VIDEO FROM IMAGE β
β β’ Call video_mcp_server.generate_video() β
β β’ Include input_image_path parameter β
β β’ Veo 3.1 animates the banner (1-3 minutes) β
β β’ Save to outputs/video_6s_image_[timestamp].mp4 β
ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 5. DISPLAY RESULTS β
β β’ Show animated video β
β β’ Link back to source banner β
β β’ Add to gallery β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Example Multi-turn Conversation:
You: Create a Summer Sale banner for BeachWear
π€: [Generates banner]
β
Banner created!
You: Now make it a video with a slow zoom
π€: I'll animate the banner you just created...
[Animates banner into video]
β
Video created from your banner!
You: Can you make it 8 seconds instead?
π€: I'll regenerate as an 8-second video...
[Creates longer version]
β
Extended video ready!
For users who prefer structured input:
- Navigate to "Manual Forms" section
- Select form type:
- Create Banner
- Create Video
- Animate Banner (Image-to-Video)
- Fill out form fields:
- Campaign name
- Brand name
- Type/duration/specifications
- Message/description
- Click "Generate"
- Preview and download result
File: fastagent.config.yaml
mcp:
servers:
banner_tools:
command: "python"
args: ["banner_mcp_server.py"]
env:
OPENAI_API_KEY: "${OPENAI_API_KEY}"
ANTHROPIC_API_KEY: "${ANTHROPIC_API_KEY}"
video_tools:
command: "python"
args: ["video_mcp_server.py"]
env:
GOOGLE_API_KEY: "${GOOGLE_API_KEY}"
ANTHROPIC_API_KEY: "${ANTHROPIC_API_KEY}"# Set environment variables
export OPENAI_API_KEY="sk-proj-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export GOOGLE_API_KEY="..."
# Run app (will use env vars)
uv run streamlit run app_working.pyBanner Settings (in banner_mcp_server.py):
- Modify prompt templates
- Adjust validation thresholds
- Change retry logic
Video Settings (in video_mcp_server.py):
- Adjust polling intervals
- Modify timeout durations
- Change default resolutions
Agent Behavior (in agent.py):
- Adjust context window size
- Modify intent detection logic
- Change parameter extraction rules
marketing_generator/
βββ app_working.py # Main Streamlit application
β βββ Chat interface
β βββ Manual forms
β βββ Gallery view
β βββ Session state management
β
βββ agent.py # FastAgent orchestrator
β βββ Natural language processing
β βββ Intent detection
β βββ Parameter extraction
β βββ Tool routing
β
βββ banner_mcp_server.py # Banner generation MCP server
β βββ generate_banner() tool
β βββ validate_banner() tool
β βββ DALL-E 3 integration
β
βββ video_mcp_server.py # Video generation MCP server
β βββ generate_video() tool
β βββ validate_video() tool
β βββ Veo 3.1 integration
β
βββ fastagent.config.yaml # MCP server configuration
βββ fastagent.secrets.yaml # API keys (gitignored)
βββ fastagent.secrets.yaml.template # API keys template
β
βββ requirements.txt # Python dependencies
βββ requirements-dev.txt # Development dependencies
β
βββ .gitignore # Git ignore rules
βββ LICENSE # MIT License
βββ README.md # This file
β
βββ outputs/ # Generated content (auto-created)
βββ .gitkeep # Keeps directory in git
βββ banner_*.png # Generated banners
βββ banner_*.json # Banner metadata
βββ video_*.mp4 # Generated videos
βββ video_*.json # Video metadata
Banner Metadata (banner_*.json):
{
"campaign": "Black Friday",
"brand": "Nike",
"type": "social",
"message": "70% off",
"cta": "Shop Now",
"filename": "banner_social_1792x1024_20251026_094107.png",
"size": "1792x1024",
"file_size_mb": 1.2,
"timestamp": "2025-10-26T09:41:07",
"validation": {
"passed": true,
"brand_visibility": 9,
"message_clarity": 8,
"cta_effectiveness": 9,
"visual_appeal": 8,
"overall_quality": 8.5
}
}Video Metadata (video_*.json):
{
"campaign": "Product Launch",
"brand": "TechCo",
"duration": "standard",
"description": "Showcasing new headphones",
"resolution": "720p",
"aspect_ratio": "16:9",
"filename": "video_standard_6s_20251026_100050.mp4",
"file_size_mb": 5.8,
"timestamp": "2025-10-26T10:00:50",
"input_image": "banner_social_1792x1024_20251026_094107.png"
}| Asset Type | Service | Cost | Time |
|---|---|---|---|
| Banner | DALL-E 3 (HD) | $0.08 | 10-30s |
| Validation | Claude Vision | $0.003 | 3-5s |
| Video (4s) | Veo 3.1 | $0.30 | 1-2 min |
| Video (6s) | Veo 3.1 | $0.50 | 1-3 min |
| Video (8s) | Veo 3.1 | $0.70 | 2-3 min |
Small usage (100 banners + 50 videos):
- Banners: 100 Γ $0.08 = $8
- Videos: 50 Γ $0.50 = $25
- Validation: 150 Γ $0.003 = $0.45
- Total: ~$33/month
Medium usage (500 banners + 250 videos):
- Banners: 500 Γ $0.08 = $40
- Videos: 250 Γ $0.50 = $125
- Validation: 750 Γ $0.003 = $2.25
- Total: ~$167/month
High usage (1,000 banners + 500 videos):
- Banners: 1,000 Γ $0.08 = $80
- Videos: 500 Γ $0.50 = $250
- Validation: 1,500 Γ $0.003 = $4.50
- Total: ~$335/month
- Use caching: Cache similar prompts
- Batch similar requests: Generate related content together
- Use 720p for videos: Faster and cheaper than 1080p
- Set API spending limits: Monitor usage in dashboards
- Use shorter videos: 4s videos cost 40% less than 8s
# Install dev dependencies
uv pip install -r requirements-dev.txt
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov
# Run specific test
uv run pytest tests/test_banner.py# Format code
uv run black .
# Sort imports
uv run isort .
# Lint
uv run flake8 .
# Type checking
uv run mypy .# Run with custom port
uv run streamlit run app_working.py --server.port 8502
# Run with debug logging
uv run streamlit run app_working.py --logger.level=debug
# Run MCP servers individually
uv run python banner_mcp_server.py
uv run python video_mcp_server.py"uv: command not found"
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Reload shell
source ~/.bashrc # or restart terminal"Module not found"
# Reinstall dependencies
uv pip install -r requirements.txt --force-reinstall"API key not found"
- Verify
fastagent.secrets.yamlexists in project root - Check file format (4 spaces for indentation, no tabs)
- Ensure keys don't have extra spaces or quotes
"Invalid API key"
- Verify key copied correctly from provider
- Check key hasn't expired
- Ensure key has correct permissions
"Agent 'marketing_orchestrator' not found"
- Check
agent.pyis in same directory asapp_working.py - Verify FastAgent is installed:
uv pip list | grep fast-agent
"DALL-E rate limit exceeded"
- Wait 60 seconds and retry
- Check OpenAI usage dashboard
- Consider upgrading plan
"Video generation timeout"
- Normal for first videos (cold start)
- Videos take 1-3 minutes to generate
- Check Google API quota
"Validation always fails"
- DALL-E text accuracy is ~80%
- System auto-regenerates up to 3 times
- Try simpler prompts
"Port already in use"
# Use different port
uv run streamlit run app_working.py --server.port 8502"App is slow"
- Check internet connection
- Verify API services are operational
- Monitor system resources
"Out of memory"
- Close unused applications
- Reduce Streamlit cache size
- Restart application
Complete proof-of-concept delivery in 4 weeks with 4 major milestones.
Week 1: Foundation ββββββββββΊ M1: Banner Generation Complete
Week 2: Video & Agent βββββββΊ M2: Video & Agent Ready
Week 3: User Interface ββββββΊ M3: Full UI Complete
Week 4: Testing & Launch ββββΊ M4: POC Demo
Goals:
- Project setup and environment configuration
- Banner generation with DALL-E 3
- Validation system with Claude Vision
Days 1-2: Setup
- Repository setup
- Environment configuration
- API key setup
- Dependencies installation
Days 3-4: Banner MCP
- DALL-E 3 integration
- Prompt engineering
- File storage system
- Metadata generation
Days 5-7: Validation
- Claude Vision integration
- Validation scoring logic
- Regeneration workflow
- Testing and fine-tuning
Milestone 1 Success Criteria:
- β 90%+ API success rate
- β 80%+ validation pass rate
- β Banner generation < 30 seconds
- β All 3 banner sizes working
Goals:
- Video generation with Veo 3.1
- FastAgent orchestration
- Tool routing and parameter extraction
Days 8-10: Video MCP
- Veo API integration
- Text-to-video flow
- Image-to-video flow
- Polling mechanism
Days 11-12: Agent Setup
- FastAgent configuration
- MCP server connections
- Tool definitions
- Testing
Days 13-14: Agent Logic
- Intent parsing
- Parameter extraction
- Tool routing
- Context management
Milestone 2 Success Criteria:
- β Video generation working (text + image modes)
- β Agent routes requests correctly
- β Parameters extracted accurately
- β Video generation < 3 minutes
Goals:
- Complete Streamlit interface
- Interactive chat
- Gallery and downloads
Days 15-16: Basic UI
- Streamlit layout
- Banner form
- Video form
- File preview
Days 17-18: Interactive Chat
- Chat interface
- Conversation history
- Context management
- Agent integration
Days 19-21: Gallery & Polish
- Gallery view
- Filtering
- Download functionality
- UI polish and styling
Milestone 3 Success Criteria:
- β Chat interface functional
- β Conversation context maintained
- β All workflows working
- β Gallery operational
Goals:
- Comprehensive testing
- Complete documentation
- Demo preparation
- Stakeholder presentation
Days 22-23: Testing
- End-to-end testing
- Bug fixes
- Performance testing
- Error scenarios
Days 24-25: Documentation
- README (this file)
- User guide
- Deployment guide
- API documentation
Days 26-28: Demo & Launch
- Sample content creation
- Demo script preparation
- Stakeholder demo
- Feedback collection
- Next steps planning
Milestone 4 Success Criteria:
- β All features tested
- β Zero critical bugs
- β Documentation complete
- β Positive stakeholder feedback
- β Clear production roadmap
Team: 2-3 developers
- Developer 1: Backend & APIs (Weeks 1-2)
- Developer 2: Frontend & UX (Weeks 3-4)
- Developer 3 (Optional): QA & Documentation
Budget:
- Development: 4 weeks Γ team cost
- API Testing: ~$50-100
- Infrastructure: Minimal (local dev)
Technical:
- 90%+ API success rate
- 80%+ validation pass rate
- < 30s banner generation
- < 3min video generation
User Experience:
- Intuitive interface
- < 5 clicks to generate
- Clear error messages
- 4+ satisfaction rating
Business:
- POC delivered on time
- All features working
- Positive feedback
- Clear production path
We welcome contributions! Here's how:
- Fork the repository
- Clone your fork
git clone https://github.com/YOUR_USERNAME/marketing_generator.git
- Create a branch
git checkout -b feature/amazing-feature
- Make changes
- Test your changes
uv run pytest
- Commit
git commit -m "Add amazing feature" - Push
git push origin feature/amazing-feature
- Open Pull Request
- Follow PEP 8 style guide
- Add tests for new features
- Update documentation
- Keep commits atomic and descriptive
- Use uv for all package management
# Before committing, run:
uv run black .
uv run isort .
uv run flake8 .
uv run pytestThis project is licensed under the MIT License.
MIT License
Copyright (c) 2025 Marketing Content Generator Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- OpenAI DALL-E 3 - Banner generation
- Google Veo 3.1 - Video generation
- Anthropic Claude - Validation & orchestration
- FastAgent - Agent framework
- Streamlit - Web interface
- uv - Fast Python package installer
Need help?
- Check Troubleshooting section
- Review Configuration details
- Check API provider status pages
- Create an issue on GitHub
API Provider Support:
- OpenAI: https://help.openai.com/
- Anthropic: https://support.anthropic.com/
- Google: https://cloud.google.com/support
- Follow Setup Instructions above
- Test with sample content
- Explore all features
- Customize for your needs
- Scale to production when ready
Made with β€οΈ using uv
GitHub β’ Issues β’ Contribute
Ready to generate marketing content! π¨