Spaces:
Runtime error
Runtime error
Update server.py
Browse files
server.py
CHANGED
|
@@ -106,7 +106,38 @@ def download_tg_file(file_id, file_name, retries=3):
|
|
| 106 |
|
| 107 |
log("❌ Не удалось скачать файл. Попробуй скинуть его кодом (текстом).")
|
| 108 |
return None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 110 |
|
| 111 |
def call_model(model_path, prompt, sys_prompt=None):
|
| 112 |
if sys_prompt is None:
|
|
@@ -142,7 +173,7 @@ interpreter.llm.api_base = API_BASE
|
|
| 142 |
interpreter.llm.context_window = 32000
|
| 143 |
interpreter.llm.max_tokens = 4000
|
| 144 |
interpreter.auto_run = True
|
| 145 |
-
interpreter.custom_instructions = "Ты элитный ИИ-разработчик. Если пользователь просит о
|
| 146 |
|
| 147 |
def run_pipeline(chat_id, task_description):
|
| 148 |
send_tg(chat_id, "🚀 **Запуск цикла разработки SaaS!**\n\nPhase 1: ТЗ кодеру...")
|
|
@@ -294,6 +325,13 @@ class WebhookHandler(BaseHTTPRequestHandler):
|
|
| 294 |
except Exception as e: send_tg(chat_id, f"❌ Ошибка агента: {e}")
|
| 295 |
return
|
| 296 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 297 |
else:
|
| 298 |
# ОБЫЧНЫЙ РЕЖИМ (если это не команда)
|
| 299 |
full_prompt = text + file_context
|
|
@@ -303,6 +341,7 @@ class WebhookHandler(BaseHTTPRequestHandler):
|
|
| 303 |
send_tg(chat_id, reply)
|
| 304 |
except Exception as e: send_tg(chat_id, f"❌ Ошибка: {e}")
|
| 305 |
|
|
|
|
| 306 |
if __name__ == "__main__":
|
| 307 |
log(f"🚀 Starting Unified Server on port {PORT}")
|
| 308 |
HTTPServer(('0.0.0.0', PORT), WebhookHandler).serve_forever()
|
|
|
|
| 106 |
|
| 107 |
log("❌ Не удалось скачать файл. Попробуй скинуть его кодом (текстом).")
|
| 108 |
return None
|
| 109 |
+
|
| 110 |
+
# 🔥 НОВАЯ ФУНКЦИЯ: Отправка файлов пользователю в Телеграм
|
| 111 |
+
def send_tg_file(chat_id, file_path):
|
| 112 |
+
if not os.path.exists(file_path):
|
| 113 |
+
send_tg(chat_id, f"❌ Файл не найден: {file_path}")
|
| 114 |
+
return
|
| 115 |
+
|
| 116 |
+
# Пускаем трафик через твой Cloudflare Proxy
|
| 117 |
+
base_api = CF_URL if CF_URL else "https://api.telegram.org"
|
| 118 |
+
url = f"{base_api}/bot{TOKEN}/sendDocument"
|
| 119 |
|
| 120 |
+
send_tg(chat_id, f"📤 Отправляю файл: {os.path.basename(file_path)}...")
|
| 121 |
+
|
| 122 |
+
try:
|
| 123 |
+
with open(file_path, 'rb') as f:
|
| 124 |
+
# Используем requests с verify=False для обхода багов Hugging Face
|
| 125 |
+
res = requests.post(
|
| 126 |
+
url,
|
| 127 |
+
data={'chat_id': chat_id},
|
| 128 |
+
files={'document': f},
|
| 129 |
+
verify=False,
|
| 130 |
+
timeout=60
|
| 131 |
+
)
|
| 132 |
+
if res.status_code == 200:
|
| 133 |
+
log(f"✅ Файл {file_path} успешно отправлен в ТГ!")
|
| 134 |
+
else:
|
| 135 |
+
log(f"⚠️ Ошибка отправки файла: {res.text}")
|
| 136 |
+
send_tg(chat_id, "❌ Не удалось отправить файл (ошибка сервера Telegram).")
|
| 137 |
+
except Exception as e:
|
| 138 |
+
log(f"❌ Ошибка при отправке файла: {e}")
|
| 139 |
+
send_tg(chat_id, f"❌ Ошибка при отправке: {e}")
|
| 140 |
+
|
| 141 |
|
| 142 |
def call_model(model_path, prompt, sys_prompt=None):
|
| 143 |
if sys_prompt is None:
|
|
|
|
| 173 |
interpreter.llm.context_window = 32000
|
| 174 |
interpreter.llm.max_tokens = 4000
|
| 175 |
interpreter.auto_run = True
|
| 176 |
+
interpreter.custom_instructions = "Ты элитный ИИ-разработчик. Если пользователь просит создать файл, сохрани его на диск и скажи пользователю, что он может скачать его командой /get [путь_к_файлу]."
|
| 177 |
|
| 178 |
def run_pipeline(chat_id, task_description):
|
| 179 |
send_tg(chat_id, "🚀 **Запуск цикла разработки SaaS!**\n\nPhase 1: ТЗ кодеру...")
|
|
|
|
| 325 |
except Exception as e: send_tg(chat_id, f"❌ Ошибка агента: {e}")
|
| 326 |
return
|
| 327 |
|
| 328 |
+
elif command == "/get":
|
| 329 |
+
if not args:
|
| 330 |
+
send_tg(chat_id, "⚠️ Укажи путь к файлу. Пример:\n`/get ./projects/test.py`")
|
| 331 |
+
return
|
| 332 |
+
send_tg_file(chat_id, args)
|
| 333 |
+
return
|
| 334 |
+
|
| 335 |
else:
|
| 336 |
# ОБЫЧНЫЙ РЕЖИМ (если это не команда)
|
| 337 |
full_prompt = text + file_context
|
|
|
|
| 341 |
send_tg(chat_id, reply)
|
| 342 |
except Exception as e: send_tg(chat_id, f"❌ Ошибка: {e}")
|
| 343 |
|
| 344 |
+
|
| 345 |
if __name__ == "__main__":
|
| 346 |
log(f"🚀 Starting Unified Server on port {PORT}")
|
| 347 |
HTTPServer(('0.0.0.0', PORT), WebhookHandler).serve_forever()
|