Files
pdf-to-markdown/config.py
T

50 lines
2.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""全局配置:LLM 提供商、路径等。"""
import os
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent # 项目根
DATA_DIR = BASE_DIR / "data"
TASKS_DIR = DATA_DIR / "tasks"
# 解析时渲染页面使用的缩放倍率(1.0=72dpi2.0=144dpi
RENDER_ZOOM = float(os.environ.get("RENDER_ZOOM", "2.5"))
# 传给视觉模型的页面图片最大宽度(像素),超过则等比例缩小
VISION_MAX_W = int(os.environ.get("VISION_MAX_W", "1600"))
# 同时并发处理的页数(视觉请求受 API 限制,控制并发)
MAX_PARALLEL_PAGES = int(os.environ.get("MAX_PARALLEL_PAGES", "3"))
# 每页最大 token 预算
MAX_TOKENS_PAGE = int(os.environ.get("MAX_TOKENS_PAGE", "3000"))
# 文本页内嵌图片:是否做内容识别(表格转录 / 描述)
OCR_EMBEDDED_IMAGES = os.environ.get("OCR_EMBEDDED_IMAGES", "1") == "1"
# 扫描页首轮未检出图片时,是否做插图补检
FIG_SECOND_PASS = os.environ.get("FIG_SECOND_PASS", "1") == "1"
# 页面分类阈值
TEXT_PAGE_MIN_CHARS = int(os.environ.get("TEXT_PAGE_MIN_CHARS", "30"))
MIXED_IMG_COVERAGE = float(os.environ.get("MIXED_IMG_COVERAGE", "0.25"))
BACKGROUND_IMG_COVERAGE = float(os.environ.get("BACKGROUND_IMG_COVERAGE", "0.70"))
# ---- LLM 提供商(OpenAI 兼容)----
# 多模态视觉模型(图片页/影印页提取)
VISION = {
"base_url": os.environ.get("VISION_BASE_URL", "https://ark.cn-beijing.volces.com/api/plan/v3"),
"api_key": os.environ.get("VISION_API_KEY", "ark-2b06dc9d-8878-4c6e-b201-f422376e79cb-246d9"),
"model": os.environ.get("VISION_MODEL", "doubao-seed-evolving"),
}
# 文本整理模型(文本页结构整理)
TEXT_LLM = {
"base_url": os.environ.get("TEXT_BASE_URL", "https://api.deepseek.com"),
"api_key": os.environ.get("TEXT_API_KEY", "sk-edb9df58ff574f8c98df1cd6a425e97c"),
"model": os.environ.get("TEXT_MODEL", "deepseek-chat"),
}
VISION_TIMEOUT = int(os.environ.get("VISION_TIMEOUT", "600"))
TEXT_TIMEOUT = int(os.environ.get("TEXT_TIMEOUT", "180"))
RETRIES = int(os.environ.get("LLM_RETRIES", "2"))
def ensure_dirs():
for d in (DATA_DIR, TASKS_DIR):
d.mkdir(parents=True, exist_ok=True)