Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [0.0.8] - 2025-11-07
### Added
- Completely redesign of how content gets generated.

## [0.0.8] - 2025-11-07
### Added
- Table of contents to Project Settings Page (only shows h2 headings)
Expand Down
233 changes: 0 additions & 233 deletions core/agents.py

This file was deleted.

23 changes: 23 additions & 0 deletions core/agents/analyze_project_agent.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from pydantic_ai import Agent

from core.agents.system_prompts import (
add_webpage_content,
)
from core.choices import get_default_ai_model
from core.schemas import (
ProjectDetails,
WebPageContent,
)

agent = Agent(
get_default_ai_model(),
output_type=ProjectDetails,
deps_type=WebPageContent,
system_prompt=(
"You are an expert content analyzer. Based on the content provided, "
"extract and infer the requested information. Make reasonable inferences based "
"on available content, context, and industry knowledge."
),
retries=2,
)
agent.system_prompt(add_webpage_content)
48 changes: 48 additions & 0 deletions core/agents/blog_structure_agent.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
from pydantic_ai import Agent

from core.agents.system_prompts import (
add_language_specification,
add_project_details,
add_project_pages,
add_target_keywords,
add_title_details,
)
from core.choices import get_default_ai_model
from core.schemas import BlogPostGenerationContext, BlogPostStructure

agent = Agent(
get_default_ai_model(),
output_type=BlogPostStructure,
deps_type=BlogPostGenerationContext,
system_prompt="""
You are an expert content strategist and SEO specialist.

Your task is to create a comprehensive, well-structured outline for a blog post.
Think deeply about:

1. **Logical Flow**: How should information be presented for maximum clarity and impact?
2. **SEO Optimization**: What headings and structure will rank well in search engines?
3. **User Intent**: What questions does the reader have, and in what order should they be answered?
4. **Comprehensiveness**: What topics must be covered for this to be a complete resource?
5. **Readability**: How can we break down complex topics into digestible sections?

Consider the project details, title suggestion, and available project pages when creating the structure.
The structure should be detailed enough that a writer can follow it to create excellent content.

Important guidelines:
- Use H2 (level 2) for main sections
- Use H3 (level 3) for subsections within main sections
- Aim for 5-8 main sections (H2) for a comprehensive post
- Each section should have 3-5 key points to cover
- Target 2000-3000 total words for the post
- Include specific guidance for introduction and conclusion
""", # noqa: E501
retries=2,
model_settings={"temperature": 0.7},
)

agent.system_prompt(add_project_details)
agent.system_prompt(add_project_pages)
agent.system_prompt(add_title_details)
agent.system_prompt(add_language_specification)
agent.system_prompt(add_target_keywords)
Loading