DoctorAI / app.py
Xolkin's picture
Update app.py
85dd489 verified
raw
history blame
2.18 kB
import gradio as gr
from transformers import pipeline
import torch
import logging
# Настройка логирования
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# Загружаем модель
model_name = "gpt2" # Смена на базовую модель GPT-2
try:
logger.info(f"Попытка загрузки модели {model_name}...")
generator = pipeline(
"text-generation",
model=model_name,
device=-1,
framework="pt",
max_length=512,
truncation=True,
model_kwargs={"torch_dtype": torch.float32}
)
logger.info("Модель успешно загружена.")
except Exception as e:
logger.error(f"Ошибка загрузки модели: {e}")
exit(1)
def respond(message, max_tokens=256, temperature=0.7, top_p=0.9):
try:
logger.info(f"Генерация ответа для: {message}")
outputs = generator(
message,
max_length=max_tokens,
temperature=temperature,
top_p=top_p,
do_sample=True,
no_repeat_ngram_size=2,
num_return_sequences=1
)
response = outputs[0]["generated_text"].strip()
logger.info(f"Ответ сгенерирован: {response}")
except Exception as e:
logger.error(f"Ошибка генерации ответа: {e}")
return f"Ошибка генерации: {e}"
return response
demo = gr.Interface(
fn=respond,
inputs=[
gr.Textbox(label="Ваше сообщение", placeholder="Опишите симптомы (например, 'Болит горло')..."),
gr.Slider(minimum=50, maximum=512, value=256, step=10, label="Макс. токенов"),
gr.Slider(minimum=0.1, maximum=1.5, value=0.7, label="Температура"),
gr.Slider(minimum=0.1, maximum=1.0, value=0.9, label="Top-p")
],
outputs="text",
title="Медицинский чат-бот на базе GPT-2",
theme=gr.themes.Soft()
)
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)