跳转到主要内容

插件选择

为你的模型类型和格式选择合适的后端插件。
val plugin_id: String?  // 使用的后端插件
可用插件:
  • "cpu_gpu" - GGUF 后端,用于 CPU/GPU/Hexagon NPU(LLM、VLM)。设备通过 device_id + nGpuLayers 选择。
  • "npu" - NPU 后端,用于 NEXA 格式模型(LLM、VLM、Embeddings、ASR、CV、Rerank)
  • "whisper_cpp" - Whisper.cpp 后端,用于 ASR
  • "tts_cpp" - TTS 后端,用于文本转语音

设备选择

控制哪个硬件设备处理你的模型。
val device_id: String?  // 模型使用的设备
可用值:
  • null - CPU(默认)
  • "GPUOpenCL" - 通过 OpenCL 的 GPU 加速
  • "HTP0" - Qualcomm Hexagon NPU 加速
使用 GGUF 的硬件加速(plugin_id = "cpu_gpu"):
  • GPU:设置 device_id = "GPUOpenCL" 并在 ModelConfig 中设置 nGpuLayers > 0
  • Hexagon NPU(GGML 后端):设置 device_id = "HTP0" 并在 ModelConfig 中设置 nGpuLayers > 0
如果 nGpuLayers = 0(或 device_id = null),模型将在 CPU 上运行。

LLM 数据结构

LlmCreateInput

data class LlmCreateInput(
    val model_name: String? = null,      // 模型名称(NPU 必填,CPU/GPU 为空)
    val model_path: String,              // 模型文件或文件夹路径
    val tokenizer_path: String? = null,  // 可选分词器路径
    val config: ModelConfig,             // 模型配置
    val plugin_id: String? = null,       // "npu"、"cpu_gpu" 等
    val device_id: String? = null        // null、"GPUOpenCL"、"HTP0"
)

ChatMessage

data class ChatMessage(
    val role: String,        // "system"、"user"、"assistant"
    val content: String      // 消息文本
)

GenerationConfig

data class GenerationConfig(
    val maxTokens: Int? = null,           // 生成的最大 token 数
    val temperature: Float = 0.7f,        // 采样温度
    val topP: Float = 0.9f,              // 核采样
    val topK: Int = 40,                  // Top-K 采样
    val repeatPenalty: Float = 1.1f,     // 重复惩罚
    val seed: Int = -1                   // 随机种子(-1 表示随机)
)

LlmStreamResult

sealed class LlmStreamResult {
    data class Token(val text: String) : LlmStreamResult()
    object Completed : LlmStreamResult()
    data class Error(val throwable: Throwable) : LlmStreamResult()
}

多模态数据结构

VlmCreateInput

data class VlmCreateInput(
    val model_name: String? = null,            // 模型名称(NPU 必填)
    val model_path: String,                    // VLM 模型路径
    val tokenizer_path: String? = null,        // 可选分词器路径
    val mmproj_path: String? = null,           // 视觉投影权重(GGUF 模型)
    val config: ModelConfig,                   // 模型配置
    val plugin_id: String? = null,             // "npu" 表示 NPU,"cpu_gpu" 表示 CPU/GPU
    val device_id: String? = null              // null 表示 CPU,"GPUOpenCL" 表示 GPU,"HTP0" 表示 NPU
)

VlmChatMessage

data class VlmChatMessage(
    val role: String,                          // "system"、"user"、"assistant"
    val contents: List<VlmContent>             // 混合文本/图像/音频内容
)

VlmContent

data class VlmContent(
    val type: String,                          // "text"、"image"、"audio"
    val content: String                        // 文本或文件路径
)

嵌入数据结构

EmbedderCreateInput

data class EmbedderCreateInput(
    val model_name: String? = null,            // NPU 模型名称
    val model_path: String,                    // 嵌入模型路径
    val tokenizer_path: String? = null,        // 分词器路径
    val config: ModelConfig,                   // 模型配置
    val plugin_id: String? = null,             // "npu" 表示 NPU,null 表示 CPU
    val device_id: String? = null              // 设备 ID(可选)
)

EmbeddingConfig

data class EmbeddingConfig(
    val normalize: Boolean = true              // 归一化嵌入(默认:true)
)

ASR 数据结构

AsrCreateInput

data class AsrCreateInput(
    val model_name: String? = null,            // NPU 模型名称
    val model_path: String,                    // ASR 模型路径
    val config: ModelConfig,                   // 模型配置
    val plugin_id: String? = null,             // "whisper_cpp" 表示 whisper.cpp,"npu" 表示 NPU
    val device_id: String? = null              // 设备 ID(可选)
)

AsrTranscribeInput

data class AsrTranscribeInput(
    val audioPath: String,                     // 音频文件路径(.wav、.mp3 等)
    val language: String,                      // 语言代码:"en"、"zh"、"es" 等
    val timestamps: String? = null             // 可选:时间戳格式
)

AsrTranscriptionResult

data class AsrTranscriptionResult(
    val result: AsrResult,                     // 转写结果
    val profileData: String                    // 性能指标
)

TTS 数据结构

TtsCreateInput

data class TtsCreateInput(
    val model_name: String? = null,            // 模型名称(CPU/GPU 为空)
    val model_path: String,                    // TTS 模型路径
    val vocoder_path: String? = null,          // 可选声码器路径
    val config: ModelConfig,                   // 模型配置
    val plugin_id: String? = null,             // "tts_cpp" 表示 TTS 后端
    val device_id: String? = null              // 设备 ID(可选)
)

TtsSynthesizeInput

data class TtsSynthesizeInput(
    val textUtf8: String,                      // 要合成的文本(UTF-8 编码)
    val config: TtsConfig? = null,             // 可选 TTS 配置
    val outputPath: String? = null             // 可选输出文件路径(null 表示自动生成)
)

TtsConfig

data class TtsConfig(
    val voice: String? = null,                 // 语音标识符
    val speed: Float = 1.0f,                   // 语速(1.0 = 正常)
    val seed: Int = -1,                        // 随机种子(-1 表示随机)
    val sampleRate: Int = 22050                // 输出采样率(Hz)
)

TtsSynthesizeOutput

data class TtsSynthesizeOutput(
    val outputPath: String,                    // 生成的音频文件路径
    val profileData: String                    // 性能指标
)

重排数据结构

RerankerCreateInput

data class RerankerCreateInput(
    val model_name: String? = null,            // NPU 模型名称
    val model_path: String,                    // 重排模型路径
    val tokenizer_path: String? = null,        // 分词器路径
    val config: ModelConfig,                   // 模型配置
    val plugin_id: String? = null,             // "npu" 表示 NPU,null 表示 CPU
    val device_id: String? = null              // 设备 ID(可选)
)

RerankConfig

data class RerankConfig(
    val topN: Int? = null                      // 仅返回前 N 个结果(null = 全部)
)

RerankerResult

data class RerankerResult(
    val scores: FloatArray,                    // 相关性分数(0.0 - 1.0)
    val scoreCount: Int,                       // 分数数量
    val profileData: String                    // 性能指标
)

计算机视觉数据结构

CVCreateInput

data class CVCreateInput(
    val model_name: String,                    // 模型名称:"paddleocr" 等
    val config: CVModelConfig,                 // CV 模型配置
    val plugin_id: String? = null              // "npu" 表示 NPU,"cpu_gpu" 表示 CPU/GPU
)

CVModelConfig

data class CVModelConfig(
    val capabilities: CVCapability,            // OCR、DETECTION、CLASSIFICATION
    val det_model_path: String? = null,        // 检测模型路径
    val rec_model_path: String? = null,        // 识别模型路径
    val char_dict_path: String? = null,        // 字典文件路径
    val qnn_model_folder_path: String? = null, // QNN 模型目录(NPU)
    val qnn_lib_folder_path: String? = null    // QNN 库目录(NPU)
)

CVCapability

enum class CVCapability {
    OCR,                                       // 光学字符识别
    DETECTION,                                 // 目标检测
    CLASSIFICATION                             // 图像分类
}

CVResult

data class CVResult(
    val text: String,                          // 识别文本(OCR)
    val confidence: Float,                     // 置信度(0.0 - 1.0)
    val boundingBox: BoundingBox?,             // 边界框坐标
    val label: String?,                        // 类别标签(分类)
    val score: Float                           // 检测/分类分数
)

需要帮助?

加入我们的社区获取支持、分享项目并与其他开发者交流。