NelzGPT-A1 / app.py
SunDay-s's picture
Update app.py
50eac17 verified
raw
history blame
2.61 kB
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Загрузка модели и токенизатора с учетом FP8 и пользовательского кода
model_name = "deepseek-ai/DeepSeek-V3"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
trust_remote_code=True,
torch_dtype=torch.float8_e4m3fn, # Используем FP8 для совместимости
device_map="auto" # Автоматическое распределение по доступным GPU
)
# Системное сообщение
system_message = (
"Вы — NelzGPT-A1, дружелюбный и умный помощник, созданный Nelz Studio. "
"Отвечайте на вопросы вежливо и информативно. "
"Если вы не знаете ответа, скажите, что не можете помочь."
)
def chat_with_model(message, history):
# Добавляем системное сообщение в начало диалога
full_prompt = f"{system_message}\n\nПользователь: {message}\nАссистент:"
# Подготовка входных данных для модели
inputs = tokenizer(full_prompt, return_tensors="pt").to(model.device)
# Генерация ответа с использованием Multi-Token Prediction (MTP)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_length=200, # Максимальная длина ответа
num_return_sequences=1, # Один ответ
temperature=0.7, # Контроль креативности
top_p=0.9, # Контроль разнообразия
do_sample=True # Включение сэмплирования
)
# Декодирование ответа
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
# Убираем системное сообщение и промпт из ответа
response = response.replace(full_prompt, "").strip()
return response
# Создание Gradio интерфейса
iface = gr.ChatInterface(
fn=chat_with_model,
title="NelzGPT-A1 Chatbot",
description="Чат с нейросетью NelzGPT-A1, созданной Nelz Studio. Системное сообщение задает контекст диалога."
)
# Запуск интерфейса
iface.launch()