推理结果封装结构体。在回调函数中传递增量文本、完整 JSON 数据及引擎生成状态。
text_chunk 和 full_json_chunk 指向的是 DLL 内部的环形缓冲区。一旦回调函数执行完毕并返回,这些内存地址可能会被立即重写。
| 成员变量 | 类型 | 职责说明 |
|---|---|---|
text_chunk |
const char* |
增量文本片段。 仅包含本次生成的字符。用于流式打字机效果显示。 |
full_json_chunk |
const char* |
完整响应 JSON。 包含 tool_calls, content, stats 等全量信息。建议在生成结束时解析此字段以获取结构化数据。 |
bIsDone |
int |
终止标记。 1 表示推理完成(或已中断),0 表示仍在生成中。 |
tokens_per_sec |
float |
瞬时生成速率。 每秒生成的 Token 数,用于实时 UI 性能监控。 |
void OnInferenceResult(LiteRtLm_Result Result, void* UserPtr) {
// 1. 内存安全:立即转换为引擎安全类型 (深拷贝)
FString ChunkString(UTF8_TO_TCHAR(Result.text_chunk));
// 2. 调度到主线程 UI
AsyncTask(ENamedThreads::GameThread, [ChunkString, bDone = Result.bIsDone]() {
// 更新 UI 文本框...
if (bDone) {
UE_LOG(LogTemp, Log, TEXT("Generation Finished"));
}
});
}