Spaces:
Sleeping
Sleeping
File size: 3,097 Bytes
db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee 38ea12b db20aee |
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
import gradio as gr
import torch
from transformers import pipeline
import os
import logging
# Настройка логирования
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
print("🚀 Starting RAG Model Application...")
print(f"Python version: {os.sys.version}")
print(f"PyTorch version: {torch.__version__}")
print(f"CUDA available: {torch.cuda.is_available()}")
# Инициализация модели
generator = None
def load_model():
"""Загрузка модели"""
global generator
try:
# Начнем с легкой модели для тестирования
model_name = "microsoft/DialoGPT-medium"
logger.info(f"Loading model: {model_name}")
generator = pipeline(
"text-generation",
model=model_name,
torch_dtype=torch.float32,
device_map="auto" if torch.cuda.is_available() else None
)
logger.info("✅ Model loaded successfully!")
return True
except Exception as e:
logger.error(f"❌ Error loading model: {e}")
return False
def chat_response(message, history):
"""Обработчик сообщений для чата"""
if generator is None:
return "⚠️ Модель еще не загружена. Пожалуйста, подождите..."
try:
# Простая генерация ответа
response = generator(
message,
max_new_tokens=150,
temperature=0.7,
do_sample=True,
pad_token_id=generator.tokenizer.eos_token_id
)
generated_text = response[0]['generated_text']
# Убираем оригинальное сообщение из ответа
if generated_text.startswith(message):
generated_text = generated_text[len(message):].strip()
return generated_text
except Exception as e:
logger.error(f"Generation error: {e}")
return f"❌ Ошибка при генерации ответа: {str(e)}"
# Загружаем модель при старте
model_loaded = load_model()
# Создаем простой интерфейс
if model_loaded:
title = "🧠 RAG Model - Ready!"
description = "Модель успешно загружена и готова к работе!"
else:
title = "🧠 RAG Model - Error"
description = "Не удалось загрузить модель. Проверьте логи."
# Создаем интерфейс
demo = gr.ChatInterface(
fn=chat_response,
title=title,
description=description,
examples=[
"Привет! Как ты работаешь?",
"Расскажи о машинном обучении",
"Напиши короткий пример кода на Python"
]
)
if __name__ == "__main__":
logger.info("🌐 Launching Gradio interface...")
demo.launch(
server_name="0.0.0.0",
server_port=7860,
share=False
) |