Перейти к содержанию

Generator

Агент генерации контента из идей.

Возможности

  • Генерация постов для Telegram
  • Адаптация для Instagram
  • Автоматические хештеги
  • Генерация изображений
  • Определение необходимости согласования

Использование

from kit.agents.content import ContentAgent

agent = ContentAgent(
    llm_client=claude_client,
    image_client=dalle_client,
    idea_repository=idea_repo,
    post_repository=post_repo,
    settings=settings
)

# Обработка новых идей
await agent.run()

# Ручное создание
post = await agent.create_manual_post(
    topic="AI в бизнесе",
    context="Практические кейсы"
)

Workflow генерации

async def create_post_from_idea(self, idea):
    # 1. Генерация для Telegram
    telegram_content = await self.llm.generate_post(
        topic=idea.title,
        platform="telegram",
        tone="casual",
        max_length=2000
    )

    # 2. Адаптация для Instagram
    instagram_content = await self.llm.adapt_for_platform(
        content=telegram_content,
        target_platform="instagram"
    )

    # 3. Хештеги
    hashtags = await self.llm.generate_hashtags(
        content=telegram_content,
        count=15
    )

    # 4. Изображение
    image_prompt = await self.llm.generate_image_prompt(content)
    image_path = await self.image_client.generate_image(image_prompt)

    # 5. Создание поста
    return await self.post_repository.create(
        content_telegram=telegram_content,
        content_instagram=instagram_content,
        hashtags=hashtags,
        media_urls=[image_path],
        status="pending_approval" if needs_approval else "approved"
    )

Логика согласования

def _needs_approval(self, idea):
    # Авто-одобрение из доверенных источников
    if idea.source_name in settings.auto_approve_sources:
        return False

    # Авто-одобрение при высокой релевантности
    if idea.relevance_score > 0.85:
        return False

    return True

Генерация вариаций

variations = await agent.generate_variations(
    content="Исходный текст поста",
    count=3
)
# Вернёт 3 варианта текста

LLM Client Interface

class LLMClient:
    async def generate_post(topic, platform, context, tone, max_length): ...
    async def adapt_for_platform(content, source_platform, target_platform): ...
    async def generate_hashtags(content, count, platform): ...
    async def generate_image_prompt(content, style): ...
    async def rewrite(content, style): ...