Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -10,6 +10,13 @@ import logging
|
|
10 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
11 |
logger = logging.getLogger(__name__)
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
# Информация о системе и CUDA
|
14 |
logger.info("===== Запуск приложения =====")
|
15 |
logger.info(f"PyTorch: {torch.__version__}")
|
@@ -82,6 +89,7 @@ def load_model():
|
|
82 |
logger.info("Загружаем токенизатор...")
|
83 |
tokenizer = AutoTokenizer.from_pretrained(
|
84 |
model_name,
|
|
|
85 |
cache_dir=CACHE_DIR,
|
86 |
local_files_only=False
|
87 |
)
|
@@ -94,7 +102,8 @@ def load_model():
|
|
94 |
# Определяем оптимальный режим загрузки
|
95 |
model_kwargs = {
|
96 |
"cache_dir": CACHE_DIR,
|
97 |
-
"trust_remote_code": True
|
|
|
98 |
}
|
99 |
|
100 |
# Проверяем доступность CUDA
|
@@ -105,7 +114,6 @@ def load_model():
|
|
105 |
})
|
106 |
else:
|
107 |
logger.info("Загружаем модель в режиме CPU...")
|
108 |
-
# Удаляем параметры, требующие Accelerate
|
109 |
# Без параметров device_map и low_cpu_mem_usage
|
110 |
|
111 |
# Загружаем модель
|
@@ -157,7 +165,10 @@ def respond(
|
|
157 |
|
158 |
# Проверяем, загружена ли модель
|
159 |
if not is_model_loaded or model is None or tokenizer is None:
|
160 |
-
|
|
|
|
|
|
|
161 |
|
162 |
# Замеряем время
|
163 |
start_time = time.time()
|
@@ -213,6 +224,16 @@ def respond(
|
|
213 |
with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
214 |
gr.Markdown("# НереальностьQA - Чат с экспертом по эзотерике")
|
215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
with gr.Row():
|
217 |
with gr.Column(scale=4):
|
218 |
chatbot = gr.Chatbot(label="Диалог", type="messages") # Исправление типа чатбота
|
@@ -261,6 +282,7 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
|
261 |
* **Режим работы**: {"GPU" if torch.cuda.is_available() else "CPU"}
|
262 |
* **Директория для кэша**: {CACHE_DIR}
|
263 |
* **Статус загрузки**: {"Успешно" if is_model_loaded else "Ошибка"}
|
|
|
264 |
""")
|
265 |
|
266 |
# Примеры вопросов
|
|
|
10 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
11 |
logger = logging.getLogger(__name__)
|
12 |
|
13 |
+
# Получаем API токен из переменных окружения
|
14 |
+
HF_TOKEN = os.environ.get("HF_TOKEN", None)
|
15 |
+
if HF_TOKEN:
|
16 |
+
logger.info("API токен найден")
|
17 |
+
else:
|
18 |
+
logger.warning("API токен не найден! Для доступа к закрытой модели необходимо добавить HF_TOKEN в секреты репозитория")
|
19 |
+
|
20 |
# Информация о системе и CUDA
|
21 |
logger.info("===== Запуск приложения =====")
|
22 |
logger.info(f"PyTorch: {torch.__version__}")
|
|
|
89 |
logger.info("Загружаем токенизатор...")
|
90 |
tokenizer = AutoTokenizer.from_pretrained(
|
91 |
model_name,
|
92 |
+
token=HF_TOKEN, # Добавляем токен для доступа к закрытой модели
|
93 |
cache_dir=CACHE_DIR,
|
94 |
local_files_only=False
|
95 |
)
|
|
|
102 |
# Определяем оптимальный режим загрузки
|
103 |
model_kwargs = {
|
104 |
"cache_dir": CACHE_DIR,
|
105 |
+
"trust_remote_code": True,
|
106 |
+
"token": HF_TOKEN # Добавляем токен для доступа к закрытой модели
|
107 |
}
|
108 |
|
109 |
# Проверяем доступность CUDA
|
|
|
114 |
})
|
115 |
else:
|
116 |
logger.info("Загружаем модель в режиме CPU...")
|
|
|
117 |
# Без параметров device_map и low_cpu_mem_usage
|
118 |
|
119 |
# Загружаем модель
|
|
|
165 |
|
166 |
# Проверяем, загружена ли модель
|
167 |
if not is_model_loaded or model is None or tokenizer is None:
|
168 |
+
if not HF_TOKEN:
|
169 |
+
return "Модель не загружена. Для доступа к закрытой модели требуется добавить HF_TOKEN в секреты репозитория."
|
170 |
+
else:
|
171 |
+
return "Модель не загружена или произошла ошибка при загрузке. Проверьте логи для получения дополнительной информации."
|
172 |
|
173 |
# Замеряем время
|
174 |
start_time = time.time()
|
|
|
224 |
with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
225 |
gr.Markdown("# НереальностьQA - Чат с экспертом по эзотерике")
|
226 |
|
227 |
+
if not HF_TOKEN:
|
228 |
+
gr.Markdown("""
|
229 |
+
## ⚠️ Внимание: API токен не найден!
|
230 |
+
|
231 |
+
Для работы с закрытой моделью необходимо добавить HF_TOKEN в секреты репозитория:
|
232 |
+
1. Settings > Repository secrets > New secret
|
233 |
+
2. Name: HF_TOKEN
|
234 |
+
3. Value: ваш токен доступа с huggingface.co/settings/tokens
|
235 |
+
""", elem_id="warning-box")
|
236 |
+
|
237 |
with gr.Row():
|
238 |
with gr.Column(scale=4):
|
239 |
chatbot = gr.Chatbot(label="Диалог", type="messages") # Исправление типа чатбота
|
|
|
282 |
* **Режим работы**: {"GPU" if torch.cuda.is_available() else "CPU"}
|
283 |
* **Директория для кэша**: {CACHE_DIR}
|
284 |
* **Статус загрузки**: {"Успешно" if is_model_loaded else "Ошибка"}
|
285 |
+
* **API токен**: {"Настроен" if HF_TOKEN else "Отсутствует"}
|
286 |
""")
|
287 |
|
288 |
# Примеры вопросов
|