ai-dialog-lab / dialogue /manager.py
roadz's picture
Upload 2 files
b5cf840 verified
raw
history blame
2.83 kB
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