Spaces:
Sleeping
Sleeping
File size: 2,828 Bytes
b5cf840 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
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 |