Improved prompt for GPT
This commit is contained in:
@@ -28,33 +28,43 @@ class GPTService:
|
||||
"""
|
||||
genre_text = f" (жанр: {game_genre})" if game_genre else ""
|
||||
|
||||
prompt = f"""Для видеоигры "{game_title}"{genre_text} сгенерируй 6 челленджей для игрового марафона.
|
||||
prompt = f"""Ты — эксперт по видеоиграм. Сгенерируй 6 КОНКРЕТНЫХ челленджей для игры "{game_title}"{genre_text}.
|
||||
|
||||
Требования:
|
||||
- 2 лёгких челленджа (15-30 минут игры)
|
||||
- 2 средних челленджа (1-2 часа игры)
|
||||
- 2 сложных челленджа (3+ часов или высокая сложность)
|
||||
ВАЖНО: Челленджи должны быть СПЕЦИФИЧНЫМИ для этой игры!
|
||||
- Используй РЕАЛЬНЫЕ названия локаций, боссов, персонажей, миссий, уровней из игры
|
||||
- Основывайся на том, какие челленджи РЕАЛЬНО делают игроки в этой игре (спидраны, no-hit боссов, сбор коллекционных предметов и т.д.)
|
||||
- НЕ генерируй абстрактные челленджи типа "пройди уровень" или "убей 10 врагов"
|
||||
|
||||
Для каждого челленджа укажи:
|
||||
- title: короткое название на русском (до 50 символов)
|
||||
- description: что нужно сделать на русском (1-2 предложения)
|
||||
- type: один из [completion, no_death, speedrun, collection, achievement, challenge_run]
|
||||
- difficulty: easy/medium/hard
|
||||
- points: очки (easy: 20-40, medium: 45-75, hard: 90-150)
|
||||
- estimated_time: примерное время в минутах
|
||||
- proof_type: screenshot/video/steam (что лучше подойдёт для проверки)
|
||||
- proof_hint: что должно быть на скриншоте/видео для подтверждения на русском
|
||||
Примеры ХОРОШИХ челленджей:
|
||||
- Dark Souls: "Победи Орнштейна и Смоуга без призыва" / "Пройди Чумной город без отравления"
|
||||
- GTA V: "Получи золото в миссии «Ювелирное дело»" / "Выиграй уличную гонку на Vinewood"
|
||||
- Hollow Knight: "Победи Хорнет без получения урона" / "Найди все грибные споры в Грибных пустошах"
|
||||
- Minecraft: "Убей Дракона Края за один визит в Энд" / "Построй работающую ферму железа"
|
||||
|
||||
Ответь ТОЛЬКО валидным JSON объектом с ключом "challenges" содержащим массив челленджей.
|
||||
Пример формата:
|
||||
Требования по сложности:
|
||||
- 2 лёгких (15-30 мин): простые задачи, знакомство с игрой
|
||||
- 2 средних (1-2 часа): требуют навыка или исследования
|
||||
- 2 сложных (3+ часа): серьёзный челлендж, достижения, полное прохождение
|
||||
|
||||
Формат ответа — JSON:
|
||||
- title: название на русском (до 50 символов), конкретное и понятное
|
||||
- description: что именно сделать (1-2 предложения), с деталями из игры
|
||||
- type: completion | no_death | speedrun | collection | achievement | challenge_run
|
||||
- difficulty: easy | medium | hard
|
||||
- points: easy=20-40, medium=45-75, hard=90-150
|
||||
- estimated_time: время в минутах
|
||||
- proof_type: screenshot | video | steam
|
||||
- proof_hint: ЧТО КОНКРЕТНО должно быть видно на скриншоте/видео (экран победы, достижение, локация и т.д.)
|
||||
|
||||
Ответь ТОЛЬКО JSON:
|
||||
{{"challenges": [{{"title": "...", "description": "...", "type": "...", "difficulty": "...", "points": 50, "estimated_time": 30, "proof_type": "...", "proof_hint": "..."}}]}}"""
|
||||
|
||||
response = await self.client.chat.completions.create(
|
||||
model="gpt-4o-mini",
|
||||
model="gpt-5-mini",
|
||||
messages=[{"role": "user", "content": prompt}],
|
||||
response_format={"type": "json_object"},
|
||||
temperature=0.7,
|
||||
max_tokens=2000,
|
||||
temperature=0.8,
|
||||
max_tokens=2500,
|
||||
)
|
||||
|
||||
content = response.choices[0].message.content
|
||||
|
||||
Reference in New Issue
Block a user