EN 中文
返回总览

LiteRtLm_SamplingParams

采样与约束参数结构体。控制文本生成的创造度(Temperature/Top-P)及输出格式的硬性约束(JSON/Regex)。

01. 生成循环中的作用上下文

graph TD Params[LiteRtLm_SamplingParams] -->|Input| Run[LiteRtLm_RunInference] subgraph Inference_Loop [内核生成循环] Logits[Raw Logits] --> Sampling[采样逻辑: Temp/Top-P] Sampling --> Constraint[约束修正: LLGuidance] Constraint -->|Next Token| Result[Append to Result] end Params -.->|控制| Sampling Params -.->|提供语法/正则| Constraint

SamplingParams 不仅决定了 AI 的“性格”,还通过 llguidance 整合层,强制输出符合特定 Schema(如 JSON)的文本。

02. 成员变量详解

成员变量 类型 功能描述与约束说明
temperature float 采样温度。 范围 [0.0, 2.0]。
0.0 表示贪婪搜索(Greedy),结果最确定。1.0 为标准创造力。
top_p float 核采样。 范围 [0.0, 1.0]。
仅从累计概率达到 P 的候选集中采样。通常设为 0.9。
max_tokens int 本次生成上限。
达到此 Token 数后强行停止,无论是否生成结束符。
constraint_type int 硬约束类型。
0: 无约束 | 1: Regex (正则表达式) | 2: JSON Schema | 3: Lark Grammar。
constraint_string const char* 约束描述字符串。
根据 constraint_type 的选择,传入对应的正则或 JSON Schema。
注意:constraint_type > 0 时,生成的首个 Token 延迟可能会由于 llguidance 语法状态机的初始化而略有增加。

03. C 语言调用示例 (JSON 强约束)

LiteRtLm_SamplingParams params = {0};
params.temperature = 0.0f; // 结构化输出通常建议 0 温度
params.max_tokens = 512;

// 开启 JSON 格式强约束
params.constraint_type = 2; 
params.constraint_string = "{\"type\": \"object\", \"properties\": {\"name\": {\"type\": \"string\"}}}";

// 应用于推理
LiteRtLm_RunInference(conversation, params, MyCallback, NULL);