package com.rj.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * vLLM OpenAI 兼容 ASR 轮询配置（对应 Python {@code audio_toText_qwen3_asr_17b_vllm_interface.py}）。
 */
@Data
@ConfigurationProperties(prefix = "app.audio.upload.yihangyi.asr")
public class YihangyiVllmAsrProperties {

    /** 是否启用定时轮询（默认关闭，避免本地/Windows 误扫生产目录）。 */
    private boolean enabled = false;

    private String watchDir = "/home/lizh/java_env/AIDriverEEBackend/audio/yihangyi";

    private String doneDir = "/home/lizh/java_env/AIDriverEEBackend/audio/yihangyi_finish";

    /** 转写 txt 输出目录，与 {@link com.rj.scheduler.AudioStatisticsScheduler} 扫描目录一致。 */
    private String txtDir = "/home/lizh/java_env/AIDriverEEBackend/audio/yihangyi_txt";

    /** OpenAI 兼容 base-url，须含 /v1，例如 {@code http://host:17001/v1} */
    private String baseUrl = "http://101.35.52.237:17001/v1";

    private String apiKey = "EMPTY";

    private String model = "Qwen3-ASR-1.7B";

    /** 与 Python POLL_INTERVAL_SEC 一致（毫秒）。 */
    private long pollIntervalMs = 50000L;

    private int maxBatch = 5;

    private YihangyiVllmAsrExecutorMode executorMode = YihangyiVllmAsrExecutorMode.SINGLE;

    /** executorMode=POOL 时的工作线程数。 */
    private int poolSize = 4;

    /** 是否在 Windows 上跳过执行（与其它 yihangyi 定时任务一致）。 */
    private boolean skipOnWindows = true;
}
