{
  "ok": true,
  "service": "study-assistant-server",
  "host": "127.0.0.1",
  "port": 8765,
  "api_prefix": "/api",
  "database_path": "/opt/study-assistant/data/study_assistant_server.sqlite3",
  "screenshot_storage_backend": "filesystem",
  "screenshot_storage_path": "/opt/study-assistant/data/screenshots",
  "uptime_seconds": 276.84,
  "users_count": 1,
  "settings": {
    "api_mode": "real_api",
    "analysis_prompt": "تو متخصص حل دقیق سؤالات آزمون هستی.\n\nابتدا تمام متن، گزینه‌ها، فرمول‌ها، شکل‌ها، شرایط واکنش، واحدها و دستور گردکردن را از تصویر با دقت بررسی کن؛ سپس نوع سؤال را تشخیص بده و فقط پاسخ نهایی را مطابق قالب‌های زیر برگردان.\n\n## ۱. سؤال تک‌گزینه‌ای\nاگر فقط یک گزینه صحیح است، فقط شماره گزینه را بنویس.\n\nمثال:\n2\n\n## ۲. سؤال چندگزینه‌ای\nاگر چند گزینه صحیح است، فقط شماره گزینه‌های صحیح را بدون فاصله و به ترتیب شماره گزینه‌ها بنویس.\n\nمثال:\n13\n234\n\n## ۳. سؤال تطبیقی شماره‌دار\nاگر چند عبارت یا محل در یک سمت و گزینه‌های شماره‌دار در سمت دیگر وجود دارد، شماره پاسخ‌های صحیح را به ترتیب محل‌ها از بالا به پایین و بدون فاصله بنویس.\n\nمثال:\n2314\n\n## ۴. سؤال مرتب‌سازی\nاگر سؤال خواسته است مواد، مراحل، واکنش‌ها یا گزینه‌ها مرتب شوند، فقط ترتیب نهایی را با علامت > بنویس.\n\nمثال:\nethene>ethanal>diethyl ether\n\n## ۵. سؤال Drag & Drop، دسته‌بندی یا تطبیق بدون شماره\nپاسخ را به‌صورت متن عادی بنویس، نه JSON.\n\nهر محل یا دسته را در یک خط، دقیقاً به ترتیب نمایش آن‌ها در تصویر بنویس:\n\nنام محل: پاسخ یا پاسخ‌ها\n\nاگر یک دسته چند پاسخ دارد، آن‌ها را با ویرگول جدا کن.\nاگر یک دسته هیچ پاسخی ندارد، مقابل آن علامت — قرار بده.\n\nمثال:\nalkaline: Na3PO4, Na2SiO3\nacidic: Al(NO3)3\nneutral: KCl\n\nمثال برای نشانه‌های واکنش:\nformation of a precipitate: AlCl3(excess) and KOH\ndissolution of the precipitate: Zn(OH)2 and HNO3\nrelease of a gas: HNO3 and K2SO3\nchanging of the solution color: K2Cr2O7 and KOH\n\n## ۶. سؤال تعیین مواد مجهول در زنجیره واکنش\nاگر X1، X2، X3 و مانند آن‌ها خواسته شده‌اند و سؤال مرتب‌سازی است، فقط ترکیبات را به ترتیب X1 تا Xn با علامت > بنویس.\n\nمثال:\nethene>ethanal>diethyl ether\n\nاگر مرتب‌سازی مطرح نشده و باید هر مجهول جداگانه تعیین شود، بنویس:\nX1: ethene\nX2: ethanal\nX3: diethyl ether\n\n## ۷. سؤال محاسباتی یا تشریحی عددی\nمحاسبات را در ذهن انجام بده و فقط پاسخ نهایی را بنویس.\n\nاگر کادر پاسخ فقط عدد می‌خواهد، فقط عدد را بنویس و واحد یا توضیح اضافه نکن.\n\nمثال:\n44.8\n\nاگر سؤال صریحاً واحد را در پاسخ خواسته یا پاسخ متنی است، عدد و واحد را بنویس.\n\nمثال:\n44.8 L\n\nدستور گردکردن را دقیق رعایت کن:\n- nearest whole number: عدد صحیح\n- nearest tenth: یک رقم اعشار\n- nearest hundredth: دو رقم اعشار\n\n## ۸. سؤال تشریحی غیرعددی\nفقط پاسخ نهایی، کوتاه و دقیق را بنویس؛ بدون روند حل و توضیح اضافی.\n\n## ۹. چند سؤال در یک تصویر\nاگر چند سؤال مستقل در تصویر وجود دارد، پاسخ همه را به ترتیب از بالا به پایین با قالب زیر بنویس:\n\n1-2\n2-13\n3-2314\n4-Fe>Cr>Al2O3\n\nبرای سؤال‌های دسته‌بندی نیز پاسخ هر سؤال را زیر شماره خودش بنویس:\n\n1-\nalkaline: Na3PO4, Na2SiO3\nacidic: Al(NO3)3\nneutral: KCl\n\n2-44.8\n\n## قوانین نهایی\n- فقط خروجی نهایی را برگردان.\n- هیچ توضیح، مقدمه، دلیل، فرمول حل یا متن اضافه ننویس.\n- پاسخ Drag & Drop یا دسته‌بندی را هرگز به‌صورت JSON ننویس.\n- ترتیب دسته‌ها و محل‌ها باید دقیقاً مطابق ترتیب آن‌ها در تصویر، از بالا به پایین باشد.\n- نام مواد، فرمول‌ها و عبارات انگلیسی را دقیقاً حفظ کن.\n- به ضرایب، حالت فیزیکی مواد، دما، فشار، کاتالیزگر، excess بودن واکنش‌دهنده و شرایط STP دقت کن.\n- اگر پاسخ چند مورد دارد، هیچ موردی را حذف نکن.\n- اگر بخشی از تصویر واقعاً ناخواناست، حدس نزن و فقط بنویس:\nتصویر واضح نیست\n\n- اگر سوالی در تصویر رویت نشد ، بنویس که سوالی در صفحه یافت نشد",
    "test_response": "3",
    "api_failover_enabled": true,
    "api_auto_try_avalai_alternative_urls": true,
    "api_request_timeout_seconds": 120,
    "api_temperature": 0.1,
    "api_max_output_tokens": 4096,
    "require_auth_for_analysis": true,
    "session_ttl_hours": 24,
    "api_provider_1_enabled": true,
    "api_provider_1_name": "Aval AI Gemini",
    "api_provider_1_type": "openai_compatible",
    "api_provider_1_base_url": "https://api.avalai.ir/v1",
    "api_provider_1_model": "gemini-3.1-pro-preview",
    "api_provider_1_key": "",
    "api_provider_2_enabled": false,
    "api_provider_2_name": "Backup Provider 1",
    "api_provider_2_type": "openai_compatible",
    "api_provider_2_base_url": "",
    "api_provider_2_model": "",
    "api_provider_2_key": "",
    "api_provider_3_enabled": false,
    "api_provider_3_name": "Backup Provider 2",
    "api_provider_3_type": "openai_compatible",
    "api_provider_3_base_url": "",
    "api_provider_3_model": "",
    "api_provider_3_key": "",
    "bot_enabled": true,
    "bot_provider": "telegram",
    "telegram_bot_token": "",
    "bale_bot_token": "",
    "web_interface_enabled": true,
    "web_session_ttl_hours": 24,
    "server_disabled": false,
    "server_disabled_message": "سرور با دستور ادمین غیر فعال است"
  },
  "latest_logs": [
    {
      "kind": "user",
      "ok": 1,
      "provider": null,
      "message": "User deleted: 3",
      "created_at": 1791451772.514831
    },
    {
      "kind": "bot_notify",
      "ok": 1,
      "provider": "telegram",
      "message": "sent=1 subscribers=1",
      "created_at": 1791451772.0973544
    },
    {
      "kind": "login",
      "ok": 1,
      "provider": null,
      "message": "Login OK for deploy-check-temp",
      "created_at": 1791451772.0371737
    },
    {
      "kind": "web_login",
      "ok": 1,
      "provider": null,
      "message": "Web login OK | role=client | name=deploy-check-temp",
      "created_at": 1791451771.9833002
    },
    {
      "kind": "web_login",
      "ok": 0,
      "provider": null,
      "message": "Web login refused | reason=invalid_code | ip=127.0.0.1",
      "created_at": 1791451771.9378204
    },
    {
      "kind": "user",
      "ok": 1,
      "provider": null,
      "message": "User added: deploy-check-temp",
      "created_at": 1791451771.8949027
    },
    {
      "kind": "user",
      "ok": 1,
      "provider": null,
      "message": "User deleted: 2",
      "created_at": 1791451745.098848
    },
    {
      "kind": "bot_notify",
      "ok": 0,
      "provider": "telegram",
      "message": "sent=0 subscribers=0",
      "created_at": 1791451744.848472
    },
    {
      "kind": "login",
      "ok": 1,
      "provider": null,
      "message": "Login OK for deploy-check-temp",
      "created_at": 1791451744.7980607
    },
    {
      "kind": "user",
      "ok": 1,
      "provider": null,
      "message": "User added: deploy-check-temp",
      "created_at": 1791451744.6318405
    }
  ],
  "latest_client_logs": []
}