SimrusDenuvo commited on
Commit
2b31b9f
·
verified ·
1 Parent(s): 7a9745c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -36
app.py CHANGED
@@ -1,43 +1,21 @@
1
- import gradio as gr
2
  from transformers import AutoTokenizer, AutoModelForCausalLM
3
- import torch
4
 
5
- # Загружаем модель для русского языка
6
- model_name = "sberbank-ai/ruT5-base"
7
  tokenizer = AutoTokenizer.from_pretrained(model_name)
8
- model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
9
-
10
 
11
- # Проверка доступности GPU (если оно есть)
12
- device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
13
- model = model.to(device)
14
-
15
- # Генерация ответа с более точным форматом
16
- # Генерация ответа
17
- def generate_response(question):
18
- # Новый промпт
19
- prompt = f"Представьте, что вы сотрудник банка, и клиент спрашивает вас: '{question}'. Пожалуйста, дайте подробный ответ."
20
-
21
- # Подготовка входных данных
22
- inputs = tokenizer(prompt, return_tensors="pt").to(device)
23
-
24
- # Генерация ответа с измененными параметрами
25
- outputs = model.generate(**inputs, max_new_tokens=50, do_sample=True, top_p=0.95, top_k=50, temperature=1.0)
26
-
27
- # Декодирование и удаление лишнего текста
28
- generated = tokenizer.decode(outputs[0], skip_special_tokens=True)
29
- response = generated.replace(prompt, "").strip()
30
-
31
- return response
32
 
 
33
 
34
- # Интерфейс Gradio
35
- iface = gr.Interface(
36
- fn=generate_response,
37
- inputs=gr.Textbox(lines=2, placeholder="Введите банковский вопрос..."),
38
- outputs="text",
39
- title="Русский банковский чат-бот",
40
- description="Задайте вопрос, например: 'Какие комиссии за переводы?' или 'Как активировать карту?'"
41
- )
42
 
43
- iface.launch()
 
 
 
 
 
1
  from transformers import AutoTokenizer, AutoModelForCausalLM
 
2
 
3
+ model_name = "ai-forever/ruGPT-3.5-13B" # название модели на Hugging Face
 
4
  tokenizer = AutoTokenizer.from_pretrained(model_name)
5
+ model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto") # загрузка модели (может быть большая, требует GPU)
 
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
+ import gradio as gr
9
 
10
+ # Определяем функцию ответа, использующую загруженную ранее модель:
11
+ def answer_question(user_input):
12
+ # Формируем промпт для модели – просто сам вопрос пользователя.
13
+ input_ids = tokenizer.encode(user_input, return_tensors='pt').to(model.device)
14
+ output_ids = model.generate(input_ids, max_new_tokens=100, eos_token_id=tokenizer.eos_token_id)
15
+ answer = tokenizer.decode(output_ids[0][input_ids.shape[-1]:], skip_special_tokens=True)
16
+ return answer
 
17
 
18
+ # Создаем интерфейс Gradio с текстовым полем ввода и вывода:
19
+ demo = gr.Interface(fn=answer_question, inputs="text", outputs="text",
20
+ title="Помощник банка", description="Задайте вопрос об услугах банка")
21
+ demo.launch()