Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -25,6 +25,9 @@ from io import BytesIO
|
|
| 25 |
from llama_cpp import Llama
|
| 26 |
from llama_cpp.llama_chat_format import Llava16ChatHandler
|
| 27 |
|
|
|
|
|
|
|
|
|
|
| 28 |
# CSV/TXT ๋ถ์
|
| 29 |
import pandas as pd
|
| 30 |
# PDF ํ
์คํธ ์ถ์ถ
|
|
@@ -210,6 +213,37 @@ def image_to_base64_data_uri(image: Union[np.ndarray, Image.Image]) -> str:
|
|
| 210 |
##############################################################################
|
| 211 |
# ๋ชจ๋ธ ๋ก๋
|
| 212 |
##############################################################################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 213 |
@spaces.GPU(duration=120)
|
| 214 |
def load_model():
|
| 215 |
global llm, model_loaded
|
|
@@ -222,9 +256,8 @@ def load_model():
|
|
| 222 |
logger.info("Gemma3-R1984-4B GGUF Q4_K_M ๋ชจ๋ธ ๋ก๋ฉ ์์...")
|
| 223 |
clear_cuda_cache()
|
| 224 |
|
| 225 |
-
# ๋ชจ๋ธ
|
| 226 |
-
model_path =
|
| 227 |
-
mmproj_path = os.getenv("MMPROJ_PATH", "VIDraft/Gemma-3-R1984-4B-GGUF/Gemma-3-R1984-4B.mmproj-Q8_0.gguf")
|
| 228 |
|
| 229 |
# GPU ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ํ์ธ
|
| 230 |
n_gpu_layers = -1 if torch.cuda.is_available() else 0
|
|
@@ -253,6 +286,8 @@ def load_model():
|
|
| 253 |
|
| 254 |
except Exception as e:
|
| 255 |
logger.error(f"๋ชจ๋ธ ๋ก๋ฉ ์คํจ: {e}")
|
|
|
|
|
|
|
| 256 |
return False
|
| 257 |
|
| 258 |
##############################################################################
|
|
@@ -807,8 +842,8 @@ with gr.Blocks(title="๐ค ๋ก๋ด ์๊ฐ ์์คํ
(Gemma3-4B GGUF)", css=css) a
|
|
| 807 |
|
| 808 |
# ์ด๊ธฐ ๋ชจ๋ธ ๋ก๋
|
| 809 |
def initial_load():
|
| 810 |
-
|
| 811 |
-
return "์์คํ
์ค๋น ์๋ฃ! ๐"
|
| 812 |
|
| 813 |
demo.load(
|
| 814 |
fn=initial_load,
|
|
|
|
| 25 |
from llama_cpp import Llama
|
| 26 |
from llama_cpp.llama_chat_format import Llava16ChatHandler
|
| 27 |
|
| 28 |
+
# Model download
|
| 29 |
+
from huggingface_hub import hf_hub_download
|
| 30 |
+
|
| 31 |
# CSV/TXT ๋ถ์
|
| 32 |
import pandas as pd
|
| 33 |
# PDF ํ
์คํธ ์ถ์ถ
|
|
|
|
| 213 |
##############################################################################
|
| 214 |
# ๋ชจ๋ธ ๋ก๋
|
| 215 |
##############################################################################
|
| 216 |
+
def download_model_files():
|
| 217 |
+
"""Hugging Face Hub์์ ๋ชจ๋ธ ํ์ผ ๋ค์ด๋ก๋"""
|
| 218 |
+
model_repo = "VIDraft/Gemma-3-R1984-4B-GGUF"
|
| 219 |
+
|
| 220 |
+
# ๋ฉ์ธ ๋ชจ๋ธ ๋ค์ด๋ก๋
|
| 221 |
+
model_filename = "Gemma-3-R1984-4B.Q4_K_M.gguf"
|
| 222 |
+
logger.info(f"๋ชจ๋ธ ๋ค์ด๋ก๋ ์ค: {model_filename}")
|
| 223 |
+
|
| 224 |
+
model_path = hf_hub_download(
|
| 225 |
+
repo_id=model_repo,
|
| 226 |
+
filename=model_filename,
|
| 227 |
+
resume_download=True,
|
| 228 |
+
local_files_only=False
|
| 229 |
+
)
|
| 230 |
+
|
| 231 |
+
# Vision projection ํ์ผ ๋ค์ด๋ก๋
|
| 232 |
+
mmproj_filename = "Gemma-3-R1984-4B.mmproj-Q8_0.gguf"
|
| 233 |
+
logger.info(f"Vision ๋ชจ๋ธ ๋ค์ด๋ก๋ ์ค: {mmproj_filename}")
|
| 234 |
+
|
| 235 |
+
mmproj_path = hf_hub_download(
|
| 236 |
+
repo_id=model_repo,
|
| 237 |
+
filename=mmproj_filename,
|
| 238 |
+
resume_download=True,
|
| 239 |
+
local_files_only=False
|
| 240 |
+
)
|
| 241 |
+
|
| 242 |
+
logger.info(f"๋ชจ๋ธ ๊ฒฝ๋ก: {model_path}")
|
| 243 |
+
logger.info(f"Vision ๊ฒฝ๋ก: {mmproj_path}")
|
| 244 |
+
|
| 245 |
+
return model_path, mmproj_path
|
| 246 |
+
|
| 247 |
@spaces.GPU(duration=120)
|
| 248 |
def load_model():
|
| 249 |
global llm, model_loaded
|
|
|
|
| 256 |
logger.info("Gemma3-R1984-4B GGUF Q4_K_M ๋ชจ๋ธ ๋ก๋ฉ ์์...")
|
| 257 |
clear_cuda_cache()
|
| 258 |
|
| 259 |
+
# ๋ชจ๋ธ ํ์ผ ๋ค์ด๋ก๋
|
| 260 |
+
model_path, mmproj_path = download_model_files()
|
|
|
|
| 261 |
|
| 262 |
# GPU ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ํ์ธ
|
| 263 |
n_gpu_layers = -1 if torch.cuda.is_available() else 0
|
|
|
|
| 286 |
|
| 287 |
except Exception as e:
|
| 288 |
logger.error(f"๋ชจ๋ธ ๋ก๋ฉ ์คํจ: {e}")
|
| 289 |
+
import traceback
|
| 290 |
+
logger.error(traceback.format_exc())
|
| 291 |
return False
|
| 292 |
|
| 293 |
##############################################################################
|
|
|
|
| 842 |
|
| 843 |
# ์ด๊ธฐ ๋ชจ๋ธ ๋ก๋
|
| 844 |
def initial_load():
|
| 845 |
+
# ์ฒซ ์คํ ์ GPU์์ ๋ชจ๋ธ ๋ก๋
|
| 846 |
+
return "์์คํ
์ค๋น ์๋ฃ! ์ฒซ ๋ถ์ ์ ๋ชจ๋ธ์ด ์๋์ผ๋ก ๋ก๋๋ฉ๋๋ค. ๐"
|
| 847 |
|
| 848 |
demo.load(
|
| 849 |
fn=initial_load,
|