An AI-powered content generation and publishing platform that automates article creation while ensuring uniqueness and relevance.
- 🔍 Multi-engine web search (Google, Tavily, SERP, YouTube)
- 🧠 AI-powered content generation using LangGraph
- ✨ Content uniqueness verification via Pinecone embeddings
- 📝 Automated publishing to Ghost CMS
- 🔔 Slack notifications for generation updates
- 🐳 Docker containerization support
graph TD
A[User Input / Slack Trigger] -->|Manual or Scheduled| B[FastAPI Backend]
B --> C[Query Generator]
C --> D[Multi-Engine Search]
D --> E[Content Scraper]
E --> F[Uniqueness Verifier]
F --> G[Article Generator]
G --> H[Content Formatter]
H --> I[Ghost CMS Publisher]
I --> J[Slack Notifier]
style A fill:#4682B4,stroke:#2F4F4F
style B fill:#5F9EA0,stroke:#2F4F4F
style C fill:#8FBC8F,stroke:#2F4F4F
style D fill:#8FBC8F,stroke:#2F4F4F
style E fill:#8FBC8F,stroke:#2F4F4F
style F fill:#CD5C5C,stroke:#2F4F4F
style G fill:#8FBC8F,stroke:#2F4F4F
style H fill:#8FBC8F,stroke:#2F4F4F
style I fill:#5F9EA0,stroke:#2F4F4F
style J fill:#DAA520,stroke:#2F4F4F
- Backend: FastAPI
- Frontend: Streamlit
- Orchestration: LangGraph
- Database: PostgreSQL with pgvector
- Vector Store: Pinecone
- CMS: Ghost
- Containerization: Docker
- Authentication: Google OAuth
- Python 3.11+
- Docker and Docker Compose
- PostgreSQL 14+
- Pinecone API account
- Ghost CMS instance
- Google Cloud Platform account
- Slack webhook (optional)
git clone https://github.com/your-username/ghostwriter.git
cd ghostwritercp .env.example .env
# Edit .env with your credentialsdocker-compose up --build- Streamlit UI: http://localhost:8501
- FastAPI docs: http://localhost:8000/docs
PINECONE_API_KEY=your_key
GHOST_API_URL=https://your-ghost-cms.com
GHOST_API_KEY=your_key
OPENAI_API_KEY=your_key
SLACK_WEBHOOK_URL=your_webhook_url| Parameter | Description | Default |
|---|---|---|
| search_engines | Active search engines | ["google", "tavily"] |
| max_search_results | Results per query | 10 |
| similarity_threshold | Content uniqueness threshold | 0.85 |
| use_query_generator | Enable smart query generation | true |
- User provides topic or URL
- Query generator creates optimal search queries
- Flow can be triggered manually from Slack or scheduled automatically
- Multi-engine search execution
- Content scraping and cleaning
- Uniqueness checking via embeddings
- Relevance verification
- AI-powered article writing
- HTML formatting and structuring
- Automatic Ghost CMS publishing
- Slack notifications
# Install test dependencies
pip install -r requirements-dev.txt
# Run tests
pytest tests/Detailed API documentation is available at /docs when running the FastAPI server.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- LangGraph team for the orchestration framework
- Ghost CMS team for the publishing platform
- All contributors who have helped shape this project
For more information or support, please open an issue or contact the maintainers.