File size: 1,856 Bytes
5aa3c7f ea7ec85 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
import gradio as gr
# Загрузка модели DialoGPT и токенизатора
model_name = "microsoft/DialoGPT-large"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Функция, которая генерирует ответ на основе входного текста
def generate_response(prompt):
# Преобразование входного текста в токены
input_ids = tokenizer.encode(prompt + tokenizer.eos_token, return_tensors="pt")
# Генерация ответа на основе входных токенов
chat_response = model.generate(
input_ids,
max_length=1000,
pad_token_id=tokenizer.eos_token_id,
do_sample=True,
top_k=50,
top_p=0.95,
temperature=0.8,
no_repeat_ngram_size=2
)
# Декодирование ответа из токенов в текст
response = tokenizer.decode(chat_response[0], skip_special_tokens=True)
return response
# Создание интерфейса с помощью Gradio
inputs = gr.inputs.Textbox(lines=7, label="Введите сообщение")
outputs = gr.outputs.Textbox(label="Ответ")
title = "Chat.UI на основе DialoGPT"
description = "Простой чат на основе модели DialoGPT из библиотеки transformers"
examples = [
["Привет, как дела?"],
["Что ты думаешь о новом фильме?"]
]
chat_interface = gr.Interface(
fn=generate_response,
inputs=inputs,
outputs=outputs,
title=title,
description=description,
examples=examples
)
# Запуск интерфейса
chat_interface.launch() |