Xolkin commited on
Commit
f29c29c
·
verified ·
1 Parent(s): fd212a6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -20
app.py CHANGED
@@ -6,27 +6,17 @@ model_name = "gpt2" # Модель GPT-2
6
  model = AutoModelForCausalLM.from_pretrained(model_name)
7
  tokenizer = AutoTokenizer.from_pretrained(model_name)
8
 
9
- def respond(
10
- message,
11
- history=None,
12
- system_message=None,
13
- max_tokens=512,
14
- temperature=0.7,
15
- top_p=0.95,
16
- ):
17
- # Инициализация history как пустого списка, если его нет
18
  if history is None:
19
- history = []
20
- elif not isinstance(history, list):
21
- history = []
22
 
23
- # Объединяем сообщения в историю, добавляя последнее сообщение пользователя
24
  input_text = "\n".join([msg[1] for msg in history] + [message])
25
 
26
- # Токенизация текста для модели
27
  inputs = tokenizer(input_text, return_tensors="pt", truncation=True, padding=True)
28
 
29
- # Генерация ответа с использованием модели
30
  outputs = model.generate(
31
  inputs["input_ids"],
32
  max_length=max_tokens,
@@ -35,13 +25,15 @@ def respond(
35
  do_sample=True,
36
  )
37
 
38
- # Декодируем ответ модели
39
  response = tokenizer.decode(outputs[0], skip_special_tokens=True)
40
 
41
- # Форматируем ответ в соответствии с шаблоном
42
  response = format_response(response)
43
 
44
- return response
 
 
 
45
 
46
  def format_response(response):
47
  # Форматируем ответ в соответствии с шаблоном
@@ -60,7 +52,6 @@ def extract_diagnosis(response):
60
 
61
  def extract_operation(response):
62
  # Извлекаем название операции из ответа
63
- # Здесь можно настроить под реальный сценарий
64
  operation = "Не требуется" # Пример, что операция не требуется
65
  return operation.strip()
66
 
@@ -78,7 +69,8 @@ demo = gr.Interface(
78
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, label="Temperature"),
79
  gr.Slider(minimum=0.1, maximum=1.0, value=0.95, label="Top-p"),
80
  ],
81
- outputs="text",
 
82
  )
83
 
84
  if __name__ == "__main__":
 
6
  model = AutoModelForCausalLM.from_pretrained(model_name)
7
  tokenizer = AutoTokenizer.from_pretrained(model_name)
8
 
9
+ def respond(message, history=None, system_message=None, max_tokens=512, temperature=0.7, top_p=0.95):
 
 
 
 
 
 
 
 
10
  if history is None:
11
+ history = [] # Инициализируем пустой список, если history не передан
 
 
12
 
13
+ # Объединяем сообщения в историю
14
  input_text = "\n".join([msg[1] for msg in history] + [message])
15
 
16
+ # Токенизация текста
17
  inputs = tokenizer(input_text, return_tensors="pt", truncation=True, padding=True)
18
 
19
+ # Генерация ответа
20
  outputs = model.generate(
21
  inputs["input_ids"],
22
  max_length=max_tokens,
 
25
  do_sample=True,
26
  )
27
 
 
28
  response = tokenizer.decode(outputs[0], skip_special_tokens=True)
29
 
30
+ # Формируем ответ согласно шаблону
31
  response = format_response(response)
32
 
33
+ # Обновляем историю
34
+ history.append((message, response))
35
+
36
+ return response, history
37
 
38
  def format_response(response):
39
  # Форматируем ответ в соответствии с шаблоном
 
52
 
53
  def extract_operation(response):
54
  # Извлекаем название операции из ответа
 
55
  operation = "Не требуется" # Пример, что операция не требуется
56
  return operation.strip()
57
 
 
69
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, label="Temperature"),
70
  gr.Slider(minimum=0.1, maximum=1.0, value=0.95, label="Top-p"),
71
  ],
72
+ outputs=["text", "state"], # Возвращаем ответ и обновленную историю
73
+ live=True # Обновляем интерфейс в реальном времени
74
  )
75
 
76
  if __name__ == "__main__":