返回实战操作门户
Phase 04 / Data Consumption

输出:数据消费

流式渲染、物理指标结算与结构化指令消费

01 / 数据封送时序
            sequenceDiagram
                participant K as Plugin Kernel
                participant GT as Game Thread (UI)
                
                Note over K: Token 碎片产出
                K->>GT: OnChunk(FString) [Auto Marshalling]
                GT->>GT: 更新 UMG 打字机
                
                Note over K: 推理完整结束
                K->>GT: OnDone(Result Object)
                GT->>GT: 解析 ToolCalls 驱动业务
                GT->>GT: 格式化 Latency/TPS 统计
            
02 / 三种消费路径 (Consumption Paths)

路径 A:流式 UI 渲染 (OnChunk)

监听字符碎片,实现 0 等待的视觉反馈。

// 在 WinyunqDialogueWidget 中消费
void OnChunk(const FString& Chunk) {
    CurrentText += Chunk;
    Text_Block->SetText(FText::FromString(CurrentText));
}

路径 B:结构化指令消费 (ToolCalls)

从结算单中提取 AI 的“思考产物”并驱动游戏逻辑。

// 在 OnDone 中解析动作
for (auto Call : Result.ToolCalls) {
    if (Call->Name == "OpenDoor") { ExecuteOpenDoor(Call->Params); }
}

路径 C:物理指标展示 (Stats)

向用户展示推理速度与延迟。

// 提取物理结算数据
float TPS = Result.TokensPerSec;
float Latency = Result.TimeMs;
03 / 本阶段关联概念 (Concepts)
VISUAL流式渲染范式

AI 是一粒一粒丢出 Token 的。插件自动将这些碎片从后台线程 Marshalling 到 GameThread,确保 UI 操作的安全性。

LOGIC约束解码与指令集

如何让 AI 只输出 JSON?通过 Logits 概率强约束,我们将 AI 的“废话”过滤掉,只保留合法的工具调用指令。