Garush65 commited on
Commit
222076e
·
verified ·
1 Parent(s): 4f9fa8f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -25
app.py CHANGED
@@ -5,30 +5,31 @@ from huggingface_hub import hf_hub_download
5
  from fastapi.middleware.cors import CORSMiddleware
6
  import os
7
 
8
- # --- НАСТРОЙКА "МАЛЕНЬКОГО МОНСТРА" ---
9
- # Qwen 2.5 3B - Идеальный баланс. Легкая, но очень умная.
10
- REPO_ID = "bartowski/Qwen2.5-3B-Instruct-GGUF"
11
- FILENAME = "Qwen2.5-3B-Instruct-Q4_K_M.gguf"
 
12
 
13
- print(f"System: Начинаю загрузку {FILENAME}...")
14
 
15
  try:
16
  model_path = hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
17
- print(f"System: Модель готова: {model_path}")
18
  except Exception as e:
19
- print(f"CRITICAL: Не удалось скачать модель: {e}")
20
  raise e
21
 
22
- # --- ЗАПУСК МОЗГА ---
23
- print("System: Загрузка в память...")
24
- # Так как модель легкая (3B), мы можем дать ей БОЛЬШЕ памяти под контекст (4096)
25
  llm = Llama(
26
  model_path=model_path,
27
- n_ctx=4096, # Большое окно памяти (влезет много текста)
28
- n_threads=4, # Используем все ядра
 
29
  verbose=False
30
  )
31
- print("System: Apex Engine (Fast Mode) готов.")
32
 
33
  app = FastAPI()
34
 
@@ -46,17 +47,15 @@ class AnalysisRequest(BaseModel):
46
 
47
  @app.get("/")
48
  def home():
49
- return {"status": "Apex Engine is Running", "model": "Qwen 2.5 3B (Fast & Smart)"}
50
 
51
  @app.post("/analyze")
52
  def analyze(req: AnalysisRequest):
53
- print(f"Запрос: {req.query[:50]}...")
54
 
55
- # Системный промпт - говорим ей быть умной
56
  prompt = f"""<|im_start|>system
57
- Ты — Apex, умный аналитический помощник.
58
- Твоя задача: внимательно прочитать контекст и дать точный ответ на вопрос пользователя на русском языке.
59
- Не выдумывай факты, используй только предоставленный контекст и свои знания.
60
  <|im_end|>
61
  <|im_start|>user
62
  Контекст:
@@ -70,15 +69,14 @@ def analyze(req: AnalysisRequest):
70
  try:
71
  output = llm(
72
  prompt,
73
- max_tokens=700, # Длинный ответ разрешен
74
- temperature=0.3, # Креативность в меру
75
  stop=["<|im_end|>"],
76
  echo=False
77
  )
78
 
79
- result_text = output["choices"][0]["text"].strip()
80
- return {"result": result_text}
81
 
82
  except Exception as e:
83
- print(f"ERROR: {e}")
84
- raise HTTPException(status_code=500, detail="Ошибка обработки запроса")
 
5
  from fastapi.middleware.cors import CORSMiddleware
6
  import os
7
 
8
+ # --- РЕЖИМ "ТУРБО" (1.5B) ---
9
+ # Это модель весом всего 1 ГБ. Она очень быстрая.
10
+ # При этом Qwen 2.5 даже в размере 1.5B умнее старых моделей на 7B.
11
+ REPO_ID = "bartowski/Qwen2.5-1.5B-Instruct-GGUF"
12
+ FILENAME = "Qwen2.5-1.5B-Instruct-Q4_K_M.gguf"
13
 
14
+ print(f"System: Включаю турбо-режим. Качаю {FILENAME}...")
15
 
16
  try:
17
  model_path = hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
18
+ print(f"System: Модель загружена: {model_path}")
19
  except Exception as e:
20
+ print(f"CRITICAL: Ошибка: {e}")
21
  raise e
22
 
23
+ # --- НАСТРОЙКА СКОРОСТИ ---
24
+ print("System: Прогрев двигателя...")
 
25
  llm = Llama(
26
  model_path=model_path,
27
+ n_ctx=2048, # Уменьшили память до 2048 для скорости (этого хватит для страницы текста)
28
+ n_batch=512, # Обрабатываем большими кусками
29
+ n_threads=6, # Просим сервер использовать больше ядер (если дадут)
30
  verbose=False
31
  )
32
+ print("System: Apex Turbo готов.")
33
 
34
  app = FastAPI()
35
 
 
47
 
48
  @app.get("/")
49
  def home():
50
+ return {"status": "Apex Turbo (1.5B)", "speed": "Maximum"}
51
 
52
  @app.post("/analyze")
53
  def analyze(req: AnalysisRequest):
54
+ print(f"Fast Request: {req.query[:30]}...")
55
 
56
+ # Очень четкий промпт, чтобы она не лила воду (это тоже ускоряет)
57
  prompt = f"""<|im_start|>system
58
+ Ты — Apex. Анализируй контекст. Отвечай кратко, четко и по делу на русском языке.
 
 
59
  <|im_end|>
60
  <|im_start|>user
61
  Контекст:
 
69
  try:
70
  output = llm(
71
  prompt,
72
+ max_tokens=300, # Ограничиваем длину ответа, чтобы отдал результат мгновенно
73
+ temperature=0.2, # Минимум фантазии, максимум фактов
74
  stop=["<|im_end|>"],
75
  echo=False
76
  )
77
 
78
+ return {"result": output["choices"][0]["text"].strip()}
 
79
 
80
  except Exception as e:
81
+ print(f"Error: {e}")
82
+ raise HTTPException(status_code=500, detail="Ошибка генерации")