AndrewOficial
commited on
Commit
•
275f473
1
Parent(s):
a5ec982
Upload 6 files
Browse files
chat.py
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from transformers import T5Tokenizer, AutoModelForSeq2SeqLM
|
2 |
+
|
3 |
+
# Загрузка токенизатора и модели
|
4 |
+
tokenizer = T5Tokenizer.from_pretrained("D:/MyAI/IGM/googleflan-t5-large/")
|
5 |
+
model = AutoModelForSeq2SeqLM.from_pretrained("D:/MyAI/IGM/googleflan-t5-large/")
|
6 |
+
|
7 |
+
def generate_answer(input_text):
|
8 |
+
# Формируем запрос к модели с явным указанием задачи
|
9 |
+
prompt = f"{input_text}"
|
10 |
+
|
11 |
+
# Подготовка текста для модели
|
12 |
+
inputs = tokenizer.encode(prompt, return_tensors="pt", max_length=512, truncation=True)
|
13 |
+
|
14 |
+
# Генерация ответа
|
15 |
+
outputs = model.generate(
|
16 |
+
inputs,
|
17 |
+
max_length=400, # Увеличим максимальную длину вывода
|
18 |
+
num_beams=30, # Используем beam search с 5 путями
|
19 |
+
early_stopping=True,
|
20 |
+
repetition_penalty=0.9, # Добавим штраф за повторения
|
21 |
+
no_repeat_ngram_size=15 # Предотвращаем повторение трехграмм
|
22 |
+
)
|
23 |
+
|
24 |
+
# Декодирование и вывод текста
|
25 |
+
answer = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
26 |
+
return answer
|
27 |
+
|
28 |
+
print("Запуск чата с моделью T5. Введите 'exit' для выхода.")
|
29 |
+
|
30 |
+
while True:
|
31 |
+
input_text = input()
|
32 |
+
if input_text.lower() == "exit":
|
33 |
+
break
|
34 |
+
|
35 |
+
# Вывод запроса
|
36 |
+
print(f"Вы: {input_text}")
|
37 |
+
|
38 |
+
# Генерация ответа
|
39 |
+
answer = generate_answer(input_text)
|
40 |
+
|
41 |
+
# Вывод ответа
|
42 |
+
print(f"AI: {answer}")
|