Skip to content

narrative

Content optimization module for Direktor.

direktor.core.narrative

Narrative optimization module for Direktor.

Provides content optimization, NLP narrative enhancement, and grapheme-level optimization using the OpenAI API.

content_optimization(content)

Optimize content for clarity, engagement, and readability.

Source code in direktor/core/narrative.py
def content_optimization(content: str) -> str:
    """Optimize content for clarity, engagement, and readability."""
    logger.info("Running content optimization")
    return get_ai_response(_CONTENT_OPTIMIZATION_PROMPT, content)

get_ai_response(prompt, content, max_tokens=1000)

Get an AI response from the OpenAI API.

Parameters:

Name Type Description Default
prompt str

System prompt for the AI.

required
content str

User content to process.

required
max_tokens int

Maximum tokens in the response.

1000

Returns:

Type Description
str

AI response content.

Raises:

Type Description
ValueError

If the response content is empty.

Source code in direktor/core/narrative.py
def get_ai_response(prompt: str, content: str, max_tokens: int = 1000) -> str:
    """Get an AI response from the OpenAI API.

    Args:
        prompt: System prompt for the AI.
        content: User content to process.
        max_tokens: Maximum tokens in the response.

    Returns:
        AI response content.

    Raises:
        ValueError: If the response content is empty.
    """
    settings = get_settings()
    response = settings.client.chat.completions.create(
        model=settings.gpt4_model,
        messages=[
            {"role": "system", "content": prompt},
            {"role": "user", "content": content},
        ],
        max_tokens=max_tokens,
        n=1,
        temperature=0.7,
    )
    result = response.choices[0].message.content
    if result is None:
        raise ValueError("OpenAI returned empty response content.")
    return result.strip()

grapheme_optimization(content)

Optimize content at the grapheme (character) level.

Source code in direktor/core/narrative.py
def grapheme_optimization(content: str) -> str:
    """Optimize content at the grapheme (character) level."""
    logger.info("Running grapheme-level optimization")
    return get_ai_response(_GRAPHEME_PROMPT, content)

nlp_narrative_enhancement(content)

Enhance content using neuro-linguistic programming techniques.

Source code in direktor/core/narrative.py
def nlp_narrative_enhancement(content: str) -> str:
    """Enhance content using neuro-linguistic programming techniques."""
    logger.info("Running NLP narrative enhancement")
    return get_ai_response(_NLP_PROMPT, content)

optimize_content(input_content)

Optimize content through multiple enhancement stages.

Parameters:

Name Type Description Default
input_content str

Original content to optimize.

required

Returns:

Type Description
str

Fully optimized content.

Source code in direktor/core/narrative.py
def optimize_content(input_content: str) -> str:
    """Optimize content through multiple enhancement stages.

    Args:
        input_content: Original content to optimize.

    Returns:
        Fully optimized content.
    """
    logger.info("Starting content optimization")
    optimized_content = content_optimization(input_content)
    nlp_enhanced_content = nlp_narrative_enhancement(optimized_content)
    final_content = grapheme_optimization(nlp_enhanced_content)
    logger.info("Content optimization complete")
    return final_content