EN 中文
返回总览

LiteRtLm_RunInference

触发异步增量推理。将推理请求提交至计算队列并立即返回。推理结果通过回调函数流式推送。

01. 异步任务提交流程

sequenceDiagram participant App as 宿主应用 (Worker Thread) participant DLL as Wrapper DLL participant GPU as WebGPU / CPU Device App->>DLL: 调用 RunInference DLL->>GPU: 提交 Token 生成任务到队列 DLL-->>App: 立即返回 (Non-blocking) Note over App: 此时回调尚未触发 App->>DLL: 调用 WaitUntilDone (泵送任务) GPU->>DLL: 产生增量 Token DLL->>App: 触发 LiteRtLmCallback
非阻塞设计: RunInference 自身不执行计算,它只负责“点火”。实际的计算驱动和回调分发必须通过后续调用 LiteRtLm_WaitUntilDone 来完成。

02. 参数详细定义

void LiteRtLm_RunInference(
    void* conv_ptr, 
    LiteRtLm_SamplingParams params,
    LiteRtLmCallback callback, 
    void* user_ptr
);
参数名称职责说明
conv_ptr 要执行推理的会话句柄。
params 采样与约束参数。详见 LiteRtLm_SamplingParams
callback 流式结果回调函数指针。
user_ptr 用户上下文指针,将原样透传给回调函数。

03. 标准调用时序代码

// 建议在后台线程执行此循环
void BackgroundInferenceThread() {
    // 1. 提交任务
    LiteRtLm_RunInference(Conv, MyParams, MyCallback, this);
    
    // 2. 进入驱动循环,直到推理结束
    int Status = 0;
    while (Status == 0) {
        // 每 100ms 泵送一次结果,或阻塞直到产生 Token
        Status = LiteRtLm_WaitUntilDone(Engine, 1); 
        if (bInterruptFlag) break;
    }
}