package com.agent.management.config;

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

/**
 * 本地 Embedding Bridge 配置项（app.embedding-bridge.*）
 */
@Data
@Component
@ConfigurationProperties(prefix = "app.embedding-bridge")
public class EmbeddingBridgeProperties {

    /**
     * 是否启用本地 Embedding Bridge
     */
    private boolean enabled = true;

    /**
     * Bridge 监听主机
     */
    private String host = "127.0.0.1";

    /**
     * Bridge 监听端口
     */
    private int port = 18732;

    /**
     * Python 可执行文件路径
     */
    private String pythonPath = "python";

    /**
     * Bridge 入口脚本路径（相对项目根目录）
     */
    private String scriptPath = "backend/embedding-bridge/server.py";

    /**
     * 启动超时（秒）
     */
    private int startupTimeout = 120;

    /**
     * 健康检查间隔（秒）
     */
    private int healthCheckInterval = 5;

    /**
     * HTTP 调用超时（毫秒）。大文档三级分块 + CPU 向量化耗时较长，默认 1 小时兜底。
     */
    private int httpTimeout = 3600000;

    /**
     * 访问令牌（为空时不校验）
     */
    private String authToken = "";

    /**
     * 稠密向量模型名（默认 BAAI/bge-m3）
     */
    private String embeddingModel = "BAAI/bge-m3";

    /**
     * 模型运行设备（cpu / cuda）
     */
    private String embeddingDevice = "cpu";

    /**
     * 稠密向量维度
     */
    private int denseEmbeddingDim = 1024;

    /**
     * 叶子分块默认大小
     */
    private int chunkSize = 800;

    /**
     * 叶子分块默认重叠
     */
    private int chunkOverlap = 100;
}
