Spaces:
Sleeping
Sleeping
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 |