采样与约束参数结构体。控制文本生成的创造度(Temperature/Top-P)及输出格式的硬性约束(JSON/Regex)。
SamplingParams 不仅决定了 AI 的“性格”,还通过 llguidance 整合层,强制输出符合特定 Schema(如 JSON)的文本。
| 成员变量 | 类型 | 功能描述与约束说明 |
|---|---|---|
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 语法状态机的初始化而略有增加。
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);