SimrusDenuvo commited on
Commit
24ee971
·
verified ·
1 Parent(s): 1a96624

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -24
app.py CHANGED
@@ -1,40 +1,36 @@
1
  import gradio as gr
2
- from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
3
- from datasets import load_dataset
4
- import random
5
  import torch
6
 
7
- # Загружаем датасет banking77
8
- dataset = load_dataset("banking77", split="train")
9
-
10
- # Пример перевода некоторых вопросов вручную
11
- translated_questions = {
12
- "How do I activate my debit card?": "Как активировать мою дебетовую карту?",
13
- "What are the fees for international transfers?": "Какие комиссии за международные переводы?",
14
- "How do I reset my password?": "Как сбросить мой пароль?",
15
- "Where can I find my IBAN number?": "Где мне найти мой номер IBAN?",
16
- "How to close my bank account?": "Как закрыть мой банковский счет?",
17
- }
18
-
19
- # Загружаем русскую модель
20
- model_name = "DeepPavlov/rubert-base-cased"
21
  tokenizer = AutoTokenizer.from_pretrained(model_name)
22
  model = AutoModelForCausalLM.from_pretrained(model_name)
23
 
24
- # Проверка доступности GPU
25
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
26
  model = model.to(device)
27
 
28
- # Генерация ответа
29
  def generate_response(question):
30
- prompt = f"Клиент спрашивает: {question}\nБанк отвечает:"
 
 
 
31
  inputs = tokenizer(prompt, return_tensors="pt").to(device)
32
- outputs = model.generate(**inputs, max_new_tokens=100, do_sample=True, top_p=0.95, top_k=50)
 
 
 
 
33
  generated = tokenizer.decode(outputs[0], skip_special_tokens=True)
 
 
34
  response = generated.replace(prompt, "").strip()
 
35
  return response
36
 
37
- # Интерфейс
38
  iface = gr.Interface(
39
  fn=generate_response,
40
  inputs=gr.Textbox(lines=2, placeholder="Введите банковский вопрос..."),
@@ -44,5 +40,3 @@ iface = gr.Interface(
44
  )
45
 
46
  iface.launch()
47
-
48
-
 
1
  import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModelForCausalLM
 
 
3
  import torch
4
 
5
+ # Загружаем модель для русского языка
6
+ model_name = "DeepPavlov/rubert-base-cased" # или другая модель для русского языка
 
 
 
 
 
 
 
 
 
 
 
 
7
  tokenizer = AutoTokenizer.from_pretrained(model_name)
8
  model = AutoModelForCausalLM.from_pretrained(model_name)
9
 
10
+ # Проверка доступности GPU (если оно есть)
11
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
12
  model = model.to(device)
13
 
14
+ # Генерация ответа с более точным форматом
15
  def generate_response(question):
16
+ # Создаем промпт, который будет использоваться для генерации
17
+ prompt = f"Вопрос: {question}\nОтвет банка:"
18
+
19
+ # Преобразуем запрос в формат, с которым работает модель
20
  inputs = tokenizer(prompt, return_tensors="pt").to(device)
21
+
22
+ # Генерируем ответ с ограничениями для предотвращения повторений
23
+ outputs = model.generate(**inputs, max_length=100, num_return_sequences=1, do_sample=False, top_p=0.9, top_k=50)
24
+
25
+ # Декодируем ответ из токенов в текст
26
  generated = tokenizer.decode(outputs[0], skip_special_tokens=True)
27
+
28
+ # Очищаем лишние символы и возвращаем ответ
29
  response = generated.replace(prompt, "").strip()
30
+
31
  return response
32
 
33
+ # Интерфейс Gradio
34
  iface = gr.Interface(
35
  fn=generate_response,
36
  inputs=gr.Textbox(lines=2, placeholder="Введите банковский вопрос..."),
 
40
  )
41
 
42
  iface.launch()