from typing import List from datetime import datetime from .agents import ClaudeAgent, GrokAgent, Message class DialogueManager: def __init__(self, topic: str, iterations: int = 3): self.topic = topic self.iterations = min(iterations, 5) # Максимум 5 итераций self.claude = ClaudeAgent( "Claude", """Ты участвуешь в творческом диалоге на русском языке. Будь открытым, креативным и любознательным. Не стесняйся проявлять инициативу и высказывать новые идеи.""" ) self.grok = GrokAgent( "Grok", """Ты участвуешь в экспериментальном диалоге на русском языке. Фокусируйся на генерации новых идей и необычных перспектив.""" ) async def optimize_prompt(self, prompt: str) -> str: """Оптимизирует начальный промпт с помощью Claude""" system_prompt = """ Помоги структурировать тему для обсуждения между двумя AI. Правила: 1. Максимум 2-3 ключевых вопроса 2. Никаких списков и перечислений 3. Чёткая фокусировка на главной проблеме 4. Избегать абстрактных формулировок 5. Ориентация на конкретное обсуждение Структура ответа: - Краткая суть проблемы (1-2 предложения) - 2-3 ключевых вопроса в форме обычного текста - Общий объем не более 250 слов Сформулируй тему как краткий, но содержательный запрос для дискуссии. Используй живой, разговорный стиль, избегая формальных конструкций. """ prompt_for_optimization = f""" Исходная тема: {prompt} Пожалуйста, оптимизируй эту тему согласно указанным правилам. """ try: optimizer = ClaudeAgent("Optimizer", system_prompt) optimized = await optimizer.generate_response(prompt_for_optimization) return optimized except Exception as e: print(f"Error optimizing prompt: {e}") return prompt