shao3d commited on
Commit
19ff1cd
·
verified ·
1 Parent(s): 0ba7013

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -24
app.py CHANGED
@@ -4,47 +4,44 @@ from transformers import AutoTokenizer, AutoModelForCausalLM
4
  from peft import PeftModel
5
 
6
  # Загружаем модель и токенизатор
7
- base_model_name = "t-tech/T-lite-it-1.0" # Базовая модель T-Lite
8
- lora_repo = "shao3d/my-t-lite-qlora" # Твой репозиторий с LoRA-адаптером
9
 
10
  tokenizer = AutoTokenizer.from_pretrained(base_model_name)
11
  base_model = AutoModelForCausalLM.from_pretrained(
12
  base_model_name,
13
- device_map="cpu", # Бесплатный Space использует CPU
14
- torch_dtype=torch.float16 # Экономим память
15
  )
16
  model = PeftModel.from_pretrained(base_model, lora_repo)
17
- model.eval() # Режим предсказания
18
 
19
- def generate_response(history, message):
20
- # Проверяем, что пользователь ввёл сообщение
21
- if not message or message.strip() == "":
22
- raise gr.Error("Пожалуйста, введите сообщение в текстовое поле перед отправкой.")
23
-
24
- # Генерируем ответ от модели
25
- inputs = tokenizer(message, return_tensors="pt").to("cpu")
26
  outputs = model.generate(
27
  **inputs,
28
- max_new_tokens=50, # Ограничиваем длину для скорости
29
- temperature=0.7, # Баланс между точностью и разнообразием
30
- do_sample=True # Включаем разнообразие ответов
 
31
  )
32
  response = tokenizer.decode(outputs[0], skip_special_tokens=True)
33
-
34
- # Обновляем историю: добавляем [вопрос, ответ]
35
- if history is None:
36
- history = []
37
- return history + [[message, response]]
38
 
39
- # Создаём интерфейс Gradio
40
  with gr.Blocks() as demo:
41
  gr.Markdown("# Тест дообученной T-Lite")
42
  chatbot = gr.Chatbot()
43
  msg = gr.Textbox(placeholder="Напиши сообщение для модели...")
44
  clear = gr.Button("Очистить чат")
45
-
46
- # Связываем ввод с функцией
47
- msg.submit(generate_response, inputs=[chatbot, msg], outputs=chatbot)
48
  clear.click(lambda: [], None, chatbot)
49
 
50
  demo.launch()
 
4
  from peft import PeftModel
5
 
6
  # Загружаем модель и токенизатор
7
+ base_model_name = "t-tech/T-lite-it-1.0"
8
+ lora_repo = "shao3d/my-t-lite-qlora"
9
 
10
  tokenizer = AutoTokenizer.from_pretrained(base_model_name)
11
  base_model = AutoModelForCausalLM.from_pretrained(
12
  base_model_name,
13
+ device_map="cpu",
14
+ torch_dtype=torch.float16
15
  )
16
  model = PeftModel.from_pretrained(base_model, lora_repo)
17
+ model.eval()
18
 
19
+ # Функция генерации ответа
20
+ def generate_response(history):
21
+ if not history:
22
+ return []
23
+ user_message = history[-1][0] # Последний вопрос пользователя
24
+ inputs = tokenizer(user_message, return_tensors="pt").to("cpu")
 
25
  outputs = model.generate(
26
  **inputs,
27
+ max_new_tokens=50, # Ограничение длины
28
+ temperature=0.7, # Креативность
29
+ top_p=0.9, # Разнообразие
30
+ do_sample=True
31
  )
32
  response = tokenizer.decode(outputs[0], skip_special_tokens=True)
33
+ # Убираем повторение вопроса
34
+ if response.startswith(user_message):
35
+ response = response[len(user_message):].strip()
36
+ return history + [[user_message, response]]
 
37
 
38
+ # Интерфейс Gradio
39
  with gr.Blocks() as demo:
40
  gr.Markdown("# Тест дообученной T-Lite")
41
  chatbot = gr.Chatbot()
42
  msg = gr.Textbox(placeholder="Напиши сообщение для модели...")
43
  clear = gr.Button("Очистить чат")
44
+ msg.submit(generate_response, inputs=chatbot, outputs=chatbot)
 
 
45
  clear.click(lambda: [], None, chatbot)
46
 
47
  demo.launch()