From d55c8cc1e5e1b86c6d04f94287d577e6695b3543 Mon Sep 17 00:00:00 2001 From: aramesh-site deploy Date: Sat, 26 Sep 2026 22:04:29 +0000 Subject: [PATCH] =?UTF-8?q?fix(chatbot):=20=DA=A9=D9=88=D8=A6=D8=B1=DB=8C?= =?UTF-8?q?=20=D8=AE=D8=AF=D9=85=D8=A7=D8=AA=20=D9=88=20=D9=86=D8=B5=D8=A8?= =?UTF-8?q?=20torch=20=D9=86=D8=B3=D8=AE=D9=87=D9=94=20CPU?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - content.py: ستون desc در SQL بدون کوتیشن بود و PostgreSQL آن را کلمهٔ کلیدی می‌گیرد؛ نتیجه: «Initial index sync failed: syntax error at or near "desc"» در استارت و غیرقابل استفاده ماندن چت تا reindex. حالا "desc" کوتیشن شده. - Dockerfile: با این‌که سرور GPU ندارد، pip نسخهٔ CUDA تورچ را از PyPI می‌گرفت (ایمیج ۹.۷GB با کتابخانه‌های nvidia). اول torch از ایندکس CPU نصب می‌شود. --- chatbot/Dockerfile | 5 +++++ chatbot/content.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/chatbot/Dockerfile b/chatbot/Dockerfile index 4b3c0e6..a3aee6c 100644 --- a/chatbot/Dockerfile +++ b/chatbot/Dockerfile @@ -6,6 +6,11 @@ WORKDIR /srv # همهٔ وابستگی‌های سنگین (numpy/scikit-learn/torch/psycopg) ویل prebuilt دارند — # بدون کامپایلر؛ دسترسی apt در شبکهٔ بیلد قابل‌اعتماد نیست COPY requirements.txt /srv/chatbot/requirements.txt +# torch روی PyPI پیش‌فرض لینوکس نسخهٔ CUDA است و کل استک nvidia را می‌آورد +# (ایمیج ~۹.۷GB روی سرور بدون GPU). نسخهٔ CPU حدود ۲۰۰MB است — همین اول نصب +# می‌شود تا pip در گام بعد آن را برآورده‌شده ببیند. +# روی ماشینی با GPU می‌توان این خط را حذف کرد. +RUN pip install --no-cache-dir --index-url https://download.pytorch.org/whl/cpu "torch>=2.2" RUN pip install --no-cache-dir -r /srv/chatbot/requirements.txt COPY . /srv/chatbot/ diff --git a/chatbot/content.py b/chatbot/content.py index 185898f..a83b881 100644 --- a/chatbot/content.py +++ b/chatbot/content.py @@ -115,7 +115,7 @@ def fetch_site_documents(database_url: str) -> list[dict]: docs.append(d) # --- خدمات --- - for row in _fetch_rows(dsn, "SELECT title, desc FROM services ORDER BY position"): + for row in _fetch_rows(dsn, 'SELECT title, "desc" FROM services ORDER BY position'): d = _doc( f"خدمت «{_clean(row['title'])}»: {_clean(row['desc'])}", "service", _clean(row["title"]), "/services",