Files
mnote/services/mineru/run_vlm.ps1
T
2025-12-06 16:47:17 +08:00

53 lines
1.5 KiB
PowerShell

[CmdletBinding()]
param(
[Parameter(Mandatory = $true)]
[string]$InputPath,
[Parameter(Mandatory = $true)]
[string]$OutputDir,
[string[]]$ExtraArgs
)
$ErrorActionPreference = "Stop"
# 预设路径
$repoRoot = Split-Path $PSScriptRoot -Parent
$modelRoot = Join-Path $PSScriptRoot "models\\MinerU2.5-2509-1.2B"
$configPath = Join-Path $PSScriptRoot "mineru.json"
# 优先使用带 ROCm 的 3.12 环境,回退到本地 .venv
$pythonBins = @(
"F:\\rocm\\.venv-rocm312\\Scripts\\python.exe",
(Join-Path $PSScriptRoot ".venv\\Scripts\\python.exe")
)
$pythonBin = $pythonBins | Where-Object { Test-Path $_ } | Select-Object -First 1
if (-not $pythonBin) {
throw "未找到可用的 Python,可在 F:\\rocm\\.venv-rocm312 或 services\\mineru\\.venv 创建后再试。"
}
# 环境变量:默认使用本地模型配置
$env:MINERU_TOOLS_CONFIG_JSON = $configPath
$env:MINERU_MODEL_SOURCE = "local"
$env:PYTHONPATH = Join-Path $PSScriptRoot "src"
# 确保输出目录存在
New-Item -ItemType Directory -Force -Path $OutputDir | Out-Null
# 构造命令
$argsList = @(
"-m", "mineru.cli.client",
"-p", $InputPath,
"-o", $OutputDir,
"-b", "vlm-transformers",
"--model-path", $modelRoot
)
if ($ExtraArgs) {
$argsList += $ExtraArgs
}
Write-Host ">>> 使用 VLM 解析: $InputPath -> $OutputDir"
Write-Host ">>> Python: $pythonBin"
Write-Host ">>> 模型: $modelRoot"
Write-Host ">>> 额外参数: $ExtraArgs"
& $pythonBin @argsList