bubububbu
Browse files- Dockerfile +2 -6
- app.py +21 -11
Dockerfile
CHANGED
|
@@ -11,7 +11,7 @@ RUN apt-get update && apt-get install -y \
|
|
| 11 |
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
| 12 |
|
| 13 |
# Явная установка NumPy перед остальными зависимостями
|
| 14 |
-
RUN pip install --no-cache-dir numpy==1.
|
| 15 |
|
| 16 |
# Установка остальных зависимостей
|
| 17 |
RUN pip install --no-cache-dir -r requirements.txt
|
|
@@ -25,8 +25,4 @@ RUN python -c "import numpy; print(f'NumPy version: {numpy.__version__}')" \
|
|
| 25 |
EXPOSE 8501
|
| 26 |
|
| 27 |
# Запуск Streamlit
|
| 28 |
-
CMD ["streamlit", "run", "app.py", "--server.address=0.0.0.0"]
|
| 29 |
-
|
| 30 |
-
# В конце Dockerfile добавьте:
|
| 31 |
-
# Установка правильных разрешений для временных директорий
|
| 32 |
-
RUN mkdir -p /tmp && chmod 777 /tmp
|
|
|
|
| 11 |
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
| 12 |
|
| 13 |
# Явная установка NumPy перед остальными зависимостями
|
| 14 |
+
RUN pip install --no-cache-dir numpy==2.1.3
|
| 15 |
|
| 16 |
# Установка остальных зависимостей
|
| 17 |
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
| 25 |
EXPOSE 8501
|
| 26 |
|
| 27 |
# Запуск Streamlit
|
| 28 |
+
CMD ["streamlit", "run", "app.py", "--server.address=0.0.0.0"]
|
|
|
|
|
|
|
|
|
|
|
|
app.py
CHANGED
|
@@ -28,23 +28,33 @@ def clean_text(text):
|
|
| 28 |
text = text.translate(str.maketrans('', '', string.punctuation))
|
| 29 |
return text
|
| 30 |
|
| 31 |
-
def
|
| 32 |
text = ""
|
| 33 |
try:
|
| 34 |
-
|
| 35 |
-
|
|
|
|
| 36 |
|
| 37 |
-
#
|
| 38 |
-
|
| 39 |
-
reader = PdfReader(pdf_bytes)
|
| 40 |
|
| 41 |
-
#
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
|
| 46 |
except Exception as e:
|
| 47 |
-
st.error(f"Ошибка при чтении PDF
|
| 48 |
import traceback
|
| 49 |
st.code(traceback.format_exc())
|
| 50 |
|
|
|
|
| 28 |
text = text.translate(str.maketrans('', '', string.punctuation))
|
| 29 |
return text
|
| 30 |
|
| 31 |
+
def extract_text_from_pdf(pdf_file):
|
| 32 |
text = ""
|
| 33 |
try:
|
| 34 |
+
# Сохраняем во временный файл
|
| 35 |
+
import tempfile
|
| 36 |
+
import os
|
| 37 |
|
| 38 |
+
# Создаем временную директорию, если её нет
|
| 39 |
+
os.makedirs('/tmp', exist_ok=True)
|
|
|
|
| 40 |
|
| 41 |
+
# Сохраняем во временный файл
|
| 42 |
+
temp_path = f"/tmp/{pdf_file.name}"
|
| 43 |
+
with open(temp_path, 'wb') as f:
|
| 44 |
+
f.write(pdf_file.getbuffer())
|
| 45 |
+
|
| 46 |
+
st.info(f"Файл сохранен по пути: {temp_path}")
|
| 47 |
+
|
| 48 |
+
# Открываем PDF из файла
|
| 49 |
+
with fitz.open(temp_path) as doc:
|
| 50 |
+
for page in doc:
|
| 51 |
+
text += page.get_text()
|
| 52 |
+
|
| 53 |
+
# Удаляем временный файл
|
| 54 |
+
os.remove(temp_path)
|
| 55 |
|
| 56 |
except Exception as e:
|
| 57 |
+
st.error(f"Ошибка при чтении PDF: {e}")
|
| 58 |
import traceback
|
| 59 |
st.code(traceback.format_exc())
|
| 60 |
|