Starchik1 commited on
Commit
a4fcad4
·
verified ·
1 Parent(s): cc96f14

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -14
app.py CHANGED
@@ -5,17 +5,21 @@ client = InferenceClient(
5
  "mistralai/Mistral-7B-Instruct-v0.3"
6
  )
7
 
8
-
9
- def format_prompt(message, history):
10
- prompt = "Ты персонаж в текстовой игре, тебя зовут Рассказчик, взаимодействующий с игроком на русском языке. Каждый твой ответ должен продолжать сюжет игры, принимая во внимание прошлые действия игрока и текущую ситуацию. Твой стиль общения должен быть интересным и поддерживать атмосферу игры. Ты должен поддерживать динамичность сюжета и постоянно добавлять элементы интерактивности и новых вызовов. В начале игры игроку предоставляется информация о мире, его текущем положении и доступных действиях. Он может выбирать из предложенных вариантов или описывать свои действия свободно. Важно, чтобы ты адаптировал ответы в зависимости от решений игрока и развивал сюжет на основе их выбора. Каждый ответ должен быть логичным продолжением событий, с описанием последствий выбранных действий."
11
- for user_prompt, bot_response in history:
12
- prompt += f"[INST] {user_prompt} [/INST]"
13
- prompt += f" {bot_response}</s> "
14
- prompt += f"[INST] {message} [/INST]"
15
- return prompt
 
 
 
 
16
 
17
  def generate(
18
- prompt, history, system_prompt, temperature=0.9, max_new_tokens=256, top_p=0.95, repetition_penalty=1.0,
19
  ):
20
  temperature = float(temperature)
21
  if temperature < 1e-2:
@@ -31,7 +35,7 @@ def generate(
31
  seed=42,
32
  )
33
 
34
- formatted_prompt = format_prompt(f"{system_prompt}, {prompt}", history)
35
  stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=True)
36
  output = ""
37
 
@@ -40,13 +44,19 @@ def generate(
40
  yield output
41
  return output
42
 
43
-
44
- additional_inputs=[
45
  gr.Textbox(
46
  label="System Prompt",
47
  max_lines=1,
48
  interactive=True,
49
  ),
 
 
 
 
 
 
 
50
  gr.Slider(
51
  label="Temperature",
52
  value=0.1,
@@ -85,8 +95,7 @@ additional_inputs=[
85
  )
86
  ]
87
 
88
- examples=[["Подробнее"],["Варианты"],["Хоррор"],
89
- ]
90
 
91
  gr.ChatInterface(
92
  fn=generate,
 
5
  "mistralai/Mistral-7B-Instruct-v0.3"
6
  )
7
 
8
+ def format_prompt(message, history, genre):
9
+ prompt = f"Ты — персонаж в текстовой игре, тебя зовут Рассказчик, взаимодействующий с игроком на русском языке. " \
10
+ f"Ты находишься в жанре игры: {genre}. Каждый твой ответ должен продолжать сюжет игры, принимая во внимание прошлые действия игрока и текущую ситуацию. " \
11
+ f"Твой стиль общения должен быть интересным и поддерживать атмосферу игры. Ты должен поддерживать динамичность сюжета и постоянно добавлять элементы интерактивности и новых вызовов. " \
12
+ f"В начале игры игроку предоставляется информация о мире, его текущем положении и доступных действиях. Он может выбирать из предложенных вариантов или описывать свои действия свободно. " \
13
+ f"Важно, чтобы ты адаптировал ответы в зависимости от решений игрока и развивал сюжет на основе их выбора. Каждый ответ должен быть логичным продолжением событий, с описанием последствий выбранных действий."
14
+
15
+ for user_prompt, bot_response in history:
16
+ prompt += f"[INST] {user_prompt} [/INST]"
17
+ prompt += f" {bot_response}</s> "
18
+ prompt += f"[INST] {message} [/INST]"
19
+ return prompt
20
 
21
  def generate(
22
+ prompt, history, system_prompt, genre, temperature=0.9, max_new_tokens=256, top_p=0.95, repetition_penalty=1.0,
23
  ):
24
  temperature = float(temperature)
25
  if temperature < 1e-2:
 
35
  seed=42,
36
  )
37
 
38
+ formatted_prompt = format_prompt(f"{system_prompt}, {prompt}", history, genre)
39
  stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=True)
40
  output = ""
41
 
 
44
  yield output
45
  return output
46
 
47
+ additional_inputs = [
 
48
  gr.Textbox(
49
  label="System Prompt",
50
  max_lines=1,
51
  interactive=True,
52
  ),
53
+ gr.Radio(
54
+ label="Game Genre",
55
+ choices=["Fantasy", "Sci-Fi", "Horror", "Adventure", "Mystery"],
56
+ value="Fantasy", # Default genre
57
+ interactive=True,
58
+ info="Select the genre of the game",
59
+ ),
60
  gr.Slider(
61
  label="Temperature",
62
  value=0.1,
 
95
  )
96
  ]
97
 
98
+ examples = [["Подробнее"], ["Варианты"]]
 
99
 
100
  gr.ChatInterface(
101
  fn=generate,