nbugs commited on
Commit
24b31be
·
verified ·
1 Parent(s): 1dcec7b

Upload 10 files

Browse files
Dockerfile ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ ARG USERNAME
4
+ ARG PASSWORD
5
+ ARG OPENAI_API_KEY
6
+
7
+
8
+ FROM python:3.12
9
+
10
+ WORKDIR /app
11
+
12
+ # 设置argostranslate专用缓存路径
13
+ ENV ARGOS_TRANSLATE_PACKAGES_DIR=/app/.cache/argos-translate
14
+ ENV ARGOS_TRANSLATE_DATA_DIR=/app/.cache/argos-translate
15
+ ENV PYTHONUNBUFFERED=1
16
+
17
+ RUN apt-get update && apt-get install -y libgl1 \
18
+ && rm -rf /var/lib/apt/lists/*
19
+
20
+ # 创建缓存目录并设置权限
21
+ RUN mkdir -p ${ARGOS_TRANSLATE_DATA_DIR} && \
22
+ chmod 777 ${ARGOS_TRANSLATE_DATA_DIR}
23
+
24
+ # 添加非root用户
25
+ RUN adduser --disabled-password --gecos "" appuser && \
26
+ chown -R appuser:appuser /app
27
+
28
+ USER appuser
29
+ ENV PATH="/home/appuser/.local/bin:${PATH}"
30
+ RUN pip install --user pdf2zh
31
+
32
+ WORKDIR /app
33
+ COPY . .
34
+
35
+ USER root
36
+ RUN mkdir -p /home/appuser/.cache/babeldoc/models/ && \
37
+ chmod -R 777 /home/appuser/.cache/ && \
38
+ mv models/doclayout_yolo_docstructbench_imgsz1024.onnx /home/appuser/.cache/babeldoc/models/
39
+
40
+ # ENV HF_ENDPOINT=https://hf-mirror.com
41
+ # ENV HF_HUB_OFFLINE=1
42
+
43
+ USER appuser
44
+ EXPOSE 7860
45
+
46
+ CMD ["/bin/bash", "start.sh"]
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: P2z
3
- emoji: 🐨
4
- colorFrom: pink
5
- colorTo: blue
6
  sdk: docker
7
  pinned: false
 
 
8
  ---
9
 
10
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: p2z
3
+ emoji: 📚
4
+ colorFrom: blue
5
+ colorTo: pink
6
  sdk: docker
7
  pinned: false
8
+ license: mit
9
+ short_description: 0q0q0q0
10
  ---
11
 
12
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
awake.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import time
2
+ import random
3
+ import math
4
+ from itertools import cycle
5
+
6
+ def cpu_intensive_task():
7
+ """随机选择一个CPU密集型任务执行"""
8
+ tasks = [
9
+ _calculate_primes,
10
+ _matrix_multiplication,
11
+ _fibonacci_calculation,
12
+ _pi_calculation
13
+ ]
14
+ task = random.choice(tasks)
15
+ task()
16
+
17
+ def _calculate_primes():
18
+ """计算质数"""
19
+ n = random.randint(100000, 1000000)
20
+ sieve = [True] * (n + 1)
21
+ sieve[0:2] = [False, False]
22
+ for i in range(2, int(math.sqrt(n)) + 1):
23
+ if sieve[i]:
24
+ sieve[i*i : n+1 : i] = [False] * len(sieve[i*i : n+1 : i])
25
+
26
+ def _matrix_multiplication():
27
+ """矩阵乘法"""
28
+ size = random.randint(100, 300)
29
+ matrix = [[random.random() for _ in range(size)] for _ in range(size)]
30
+ result = [[0] * size for _ in range(size)]
31
+ for i in range(size):
32
+ for j in range(size):
33
+ for k in range(size):
34
+ result[i][j] += matrix[i][k] * matrix[k][j]
35
+
36
+ def _fibonacci_calculation():
37
+ """斐波那契数列计算"""
38
+ n = random.randint(300000, 500000)
39
+ a, b = 0, 1
40
+ for _ in range(n):
41
+ a, b = b, a + b
42
+
43
+ def _pi_calculation():
44
+ """蒙特卡洛法计算π近似值"""
45
+ iterations = 10000000
46
+ count = 0
47
+ for _ in range(iterations):
48
+ x = random.random()
49
+ y = random.random()
50
+ if x*x + y*y <= 1:
51
+ count += 1
52
+ pi = 4 * count / iterations
53
+
54
+ def main():
55
+ try:
56
+ # 初始随机延迟 (5~15 分钟)
57
+ initial_delay = random.randint(5, 15)
58
+ time.sleep(initial_delay * 60)
59
+
60
+ # 创建间隔时间循环(10-300秒)
61
+ intervals = cycle([random.randint(10, 300) for _ in range(50)])
62
+
63
+ while True:
64
+ start_time = time.time()
65
+ print(f"开始CPU密集型任务 @ {time.strftime('%Y-%m-%d %H:%M:%S')}")
66
+
67
+ cpu_intensive_task()
68
+
69
+ elapsed = time.time() - start_time
70
+ print(f"任务完成,耗时: {elapsed:.2f}秒")
71
+
72
+ # 动态调整间隔时间
73
+ delay = next(intervals)
74
+ print(f"下次任务将在 {delay} 分钟后执行...")
75
+ time.sleep(delay * 60)
76
+
77
+ except KeyboardInterrupt:
78
+ print("\n任务调度已停止")
79
+
80
+ if __name__ == "__main__":
81
+ main()
build.sh ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+ docker build -t pdf-math-translator .
3
+ docker run --rm -t -p 7860:7860 --name pdf --env-file .env pdf-math-translator
4
+ # docker exec -it pdf /bin/bash
gitattributes ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ models/doclayout_yolo_docstructbench_imgsz1024.onnx filter=lfs diff=lfs merge=lfs -text
gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+
2
+ .env
init_config.py ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import os
3
+ import json
4
+
5
+ OPENAI_API_KEY: str = os.environ.get("OPENAI_API_KEY", "")
6
+
7
+ if not OPENAI_API_KEY:
8
+ print("You Should Set OPENAI_API_KEY Enviroment.")
9
+ exit(-1)
10
+
11
+ config = {
12
+ "USE_MODELSCOPE": "0",
13
+ "translators": [
14
+ {
15
+ "name": "openai",
16
+ "envs": {
17
+ # 设置环境变量
18
+ "OPENAI_BASE_URL": "https://megatrump-oneapi.hf.space/v1",
19
+ "OPENAI_API_KEY": OPENAI_API_KEY,
20
+ "OPENAI_MODEL": "gpt-4o-mini",
21
+ }
22
+ }
23
+ ]
24
+ }
25
+
26
+ with open("config.json", "w") as f:
27
+ json.dump(config, f)
model/doclayout_yolo_docstructbench_imgsz1024.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fece9af02f618b603ff7921ccec6861d13e7e1f9830e091dfb7e8ad9311e5b21
3
+ size 75324598
model/models%2F.gitkeep ADDED
File without changes
start.sh ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ # 根据环境变量初始化用户名以及密码
3
+ echo "${USERNAME},${PASSWORD}" > users.txt
4
+
5
+ # 启动一个后台任务避免 Space 进入 Sleep 状态
6
+ python3 awake.py &
7
+
8
+ # 初始化环境变量
9
+ python3 init_config.py
10
+
11
+ # 启动 Server
12
+ pdf2zh -i --config config.json --serverport 7860 -t 5 --authorized users.txt