ai.matey.utils 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cjs/conversation-history.js +139 -0
- package/dist/cjs/conversation-history.js.map +1 -0
- package/dist/cjs/index.js +42 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/model-cache.js +163 -0
- package/dist/cjs/model-cache.js.map +1 -0
- package/dist/cjs/parameter-normalizer.js +451 -0
- package/dist/cjs/parameter-normalizer.js.map +1 -0
- package/dist/cjs/streaming-modes.js +277 -0
- package/dist/cjs/streaming-modes.js.map +1 -0
- package/dist/cjs/streaming.js +892 -0
- package/dist/cjs/streaming.js.map +1 -0
- package/dist/cjs/structured-output.js +398 -0
- package/dist/cjs/structured-output.js.map +1 -0
- package/dist/cjs/system-message.js +222 -0
- package/dist/cjs/system-message.js.map +1 -0
- package/dist/cjs/validation.js +534 -0
- package/dist/cjs/validation.js.map +1 -0
- package/dist/cjs/warnings.js +301 -0
- package/dist/cjs/warnings.js.map +1 -0
- package/dist/esm/conversation-history.js +134 -0
- package/dist/esm/conversation-history.js.map +1 -0
- package/dist/esm/index.js +26 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/model-cache.js +158 -0
- package/dist/esm/model-cache.js.map +1 -0
- package/dist/esm/parameter-normalizer.js +434 -0
- package/dist/esm/parameter-normalizer.js.map +1 -0
- package/dist/esm/streaming-modes.js +265 -0
- package/dist/esm/streaming-modes.js.map +1 -0
- package/dist/esm/streaming.js +860 -0
- package/dist/esm/streaming.js.map +1 -0
- package/dist/esm/structured-output.js +387 -0
- package/dist/esm/structured-output.js.map +1 -0
- package/dist/esm/system-message.js +213 -0
- package/dist/esm/system-message.js.map +1 -0
- package/dist/esm/validation.js +523 -0
- package/dist/esm/validation.js.map +1 -0
- package/dist/esm/warnings.js +284 -0
- package/dist/esm/warnings.js.map +1 -0
- package/dist/types/conversation-history.d.ts +70 -0
- package/dist/types/conversation-history.d.ts.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/model-cache.d.ts +88 -0
- package/dist/types/model-cache.d.ts.map +1 -0
- package/dist/types/parameter-normalizer.d.ts +154 -0
- package/dist/types/parameter-normalizer.d.ts.map +1 -0
- package/dist/types/streaming-modes.d.ts +139 -0
- package/dist/types/streaming-modes.d.ts.map +1 -0
- package/dist/types/streaming.d.ts +384 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/structured-output.d.ts +157 -0
- package/dist/types/structured-output.d.ts.map +1 -0
- package/dist/types/system-message.d.ts +78 -0
- package/dist/types/system-message.d.ts.map +1 -0
- package/dist/types/validation.d.ts +46 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/warnings.d.ts +149 -0
- package/dist/types/warnings.d.ts.map +1 -0
- package/package.json +75 -0
- package/readme.md +280 -0
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parameter Normalization Utilities
|
|
3
|
+
*
|
|
4
|
+
* Normalizes parameters across different provider ranges and conventions.
|
|
5
|
+
* Enhanced with warning generation for semantic drift tracking.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import { createNormalizationWarning, createClampingWarning, createUnsupportedParameterWarning, createStopSequencesTruncatedWarning, } from './warnings.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Parameter Normalization
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Normalize temperature to provider's range.
|
|
15
|
+
*
|
|
16
|
+
* IR uses 0-2 range (OpenAI convention).
|
|
17
|
+
* Some providers use 0-1 range (Anthropic).
|
|
18
|
+
*
|
|
19
|
+
* @param temperature Temperature value (0-2)
|
|
20
|
+
* @param targetRange Target range ('0-1' or '0-2')
|
|
21
|
+
* @returns Normalized temperature
|
|
22
|
+
*/
|
|
23
|
+
export function normalizeTemperature(temperature, targetRange = '0-2') {
|
|
24
|
+
if (temperature === undefined) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
// Clamp to IR range
|
|
28
|
+
const clamped = Math.max(0, Math.min(2, temperature));
|
|
29
|
+
if (targetRange === '0-1') {
|
|
30
|
+
// Scale 0-2 to 0-1
|
|
31
|
+
return clamped / 2;
|
|
32
|
+
}
|
|
33
|
+
return clamped;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Denormalize temperature from provider's range back to IR.
|
|
37
|
+
*
|
|
38
|
+
* @param temperature Temperature value from provider
|
|
39
|
+
* @param sourceRange Source range ('0-1' or '0-2')
|
|
40
|
+
* @returns IR temperature (0-2)
|
|
41
|
+
*/
|
|
42
|
+
export function denormalizeTemperature(temperature, sourceRange = '0-2') {
|
|
43
|
+
if (temperature === undefined) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
if (sourceRange === '0-1') {
|
|
47
|
+
// Scale 0-1 to 0-2
|
|
48
|
+
return temperature * 2;
|
|
49
|
+
}
|
|
50
|
+
return temperature;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Normalize topP parameter.
|
|
54
|
+
*
|
|
55
|
+
* Always 0-1 range across providers.
|
|
56
|
+
*
|
|
57
|
+
* @param topP TopP value
|
|
58
|
+
* @returns Clamped topP
|
|
59
|
+
*/
|
|
60
|
+
export function normalizeTopP(topP) {
|
|
61
|
+
if (topP === undefined) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
return Math.max(0, Math.min(1, topP));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Normalize topK parameter.
|
|
68
|
+
*
|
|
69
|
+
* @param topK TopK value
|
|
70
|
+
* @param maxTopK Maximum topK supported by provider
|
|
71
|
+
* @returns Clamped topK
|
|
72
|
+
*/
|
|
73
|
+
export function normalizeTopK(topK, maxTopK = 100) {
|
|
74
|
+
if (topK === undefined) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
return Math.max(1, Math.min(maxTopK, Math.floor(topK)));
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Normalize penalty parameters (frequency, presence).
|
|
81
|
+
*
|
|
82
|
+
* IR uses -2 to 2 range (OpenAI convention).
|
|
83
|
+
* Some providers might use different ranges.
|
|
84
|
+
*
|
|
85
|
+
* @param penalty Penalty value
|
|
86
|
+
* @param targetRange Target range
|
|
87
|
+
* @returns Normalized penalty
|
|
88
|
+
*/
|
|
89
|
+
export function normalizePenalty(penalty, targetRange = { min: -2, max: 2 }) {
|
|
90
|
+
if (penalty === undefined) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
// Clamp to IR range first
|
|
94
|
+
const clamped = Math.max(-2, Math.min(2, penalty));
|
|
95
|
+
// Map from -2..2 to target range
|
|
96
|
+
const normalized = ((clamped + 2) / 4) * (targetRange.max - targetRange.min) + targetRange.min;
|
|
97
|
+
return normalized;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Normalize stop sequences.
|
|
101
|
+
*
|
|
102
|
+
* @param stopSequences Stop sequences array
|
|
103
|
+
* @param maxStopSequences Maximum number of stop sequences supported
|
|
104
|
+
* @returns Normalized stop sequences
|
|
105
|
+
*/
|
|
106
|
+
export function normalizeStopSequences(stopSequences, maxStopSequences) {
|
|
107
|
+
if (!stopSequences || stopSequences.length === 0) {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
// Remove duplicates
|
|
111
|
+
const unique = Array.from(new Set(stopSequences));
|
|
112
|
+
// Limit to max if specified
|
|
113
|
+
if (maxStopSequences !== undefined && maxStopSequences > 0) {
|
|
114
|
+
return unique.slice(0, maxStopSequences);
|
|
115
|
+
}
|
|
116
|
+
return unique;
|
|
117
|
+
}
|
|
118
|
+
// ============================================================================
|
|
119
|
+
// Parameter Filtering
|
|
120
|
+
// ============================================================================
|
|
121
|
+
/**
|
|
122
|
+
* Filter parameters based on provider capabilities.
|
|
123
|
+
*
|
|
124
|
+
* Removes parameters that the provider doesn't support.
|
|
125
|
+
*
|
|
126
|
+
* @param parameters IR parameters
|
|
127
|
+
* @param capabilities Provider capabilities
|
|
128
|
+
* @returns Filtered parameters
|
|
129
|
+
*/
|
|
130
|
+
export function filterUnsupportedParameters(parameters, capabilities) {
|
|
131
|
+
if (!parameters) {
|
|
132
|
+
return {};
|
|
133
|
+
}
|
|
134
|
+
const filtered = {
|
|
135
|
+
model: parameters.model,
|
|
136
|
+
};
|
|
137
|
+
// Only include supported parameters
|
|
138
|
+
if (capabilities.supportsTemperature !== false && parameters.temperature !== undefined) {
|
|
139
|
+
filtered.temperature = parameters.temperature;
|
|
140
|
+
}
|
|
141
|
+
if (capabilities.supportsTopP !== false && parameters.topP !== undefined) {
|
|
142
|
+
filtered.topP = parameters.topP;
|
|
143
|
+
}
|
|
144
|
+
if (capabilities.supportsTopK && parameters.topK !== undefined) {
|
|
145
|
+
filtered.topK = parameters.topK;
|
|
146
|
+
}
|
|
147
|
+
if (capabilities.supportsFrequencyPenalty !== false &&
|
|
148
|
+
parameters.frequencyPenalty !== undefined) {
|
|
149
|
+
filtered.frequencyPenalty = parameters.frequencyPenalty;
|
|
150
|
+
}
|
|
151
|
+
if (capabilities.supportsPresencePenalty !== false && parameters.presencePenalty !== undefined) {
|
|
152
|
+
filtered.presencePenalty = parameters.presencePenalty;
|
|
153
|
+
}
|
|
154
|
+
if (parameters.maxTokens !== undefined) {
|
|
155
|
+
filtered.maxTokens = parameters.maxTokens;
|
|
156
|
+
}
|
|
157
|
+
if (parameters.stopSequences !== undefined) {
|
|
158
|
+
filtered.stopSequences = normalizeStopSequences(parameters.stopSequences, capabilities.maxStopSequences);
|
|
159
|
+
}
|
|
160
|
+
if (capabilities.supportsSeed !== false && parameters.seed !== undefined) {
|
|
161
|
+
filtered.seed = parameters.seed;
|
|
162
|
+
}
|
|
163
|
+
if (parameters.user !== undefined) {
|
|
164
|
+
filtered.user = parameters.user;
|
|
165
|
+
}
|
|
166
|
+
if (parameters.custom !== undefined) {
|
|
167
|
+
filtered.custom = parameters.custom;
|
|
168
|
+
}
|
|
169
|
+
return filtered;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Apply parameter defaults.
|
|
173
|
+
*
|
|
174
|
+
* @param parameters IR parameters
|
|
175
|
+
* @param defaults Default values
|
|
176
|
+
* @returns Parameters with defaults applied
|
|
177
|
+
*/
|
|
178
|
+
export function applyParameterDefaults(parameters, defaults) {
|
|
179
|
+
return {
|
|
180
|
+
...defaults,
|
|
181
|
+
...parameters,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Merge parameter objects.
|
|
186
|
+
*
|
|
187
|
+
* Later parameters override earlier ones.
|
|
188
|
+
*
|
|
189
|
+
* @param parameterSets Parameter objects to merge
|
|
190
|
+
* @returns Merged parameters
|
|
191
|
+
*/
|
|
192
|
+
export function mergeParameters(...parameterSets) {
|
|
193
|
+
const merged = {};
|
|
194
|
+
for (const params of parameterSets) {
|
|
195
|
+
if (!params) {
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
Object.assign(merged, params);
|
|
199
|
+
}
|
|
200
|
+
return merged;
|
|
201
|
+
}
|
|
202
|
+
// ============================================================================
|
|
203
|
+
// Parameter Validation
|
|
204
|
+
// ============================================================================
|
|
205
|
+
/**
|
|
206
|
+
* Clamp parameter to valid range.
|
|
207
|
+
*
|
|
208
|
+
* @param value Parameter value
|
|
209
|
+
* @param min Minimum value
|
|
210
|
+
* @param max Maximum value
|
|
211
|
+
* @returns Clamped value
|
|
212
|
+
*/
|
|
213
|
+
export function clampParameter(value, min, max) {
|
|
214
|
+
if (value === undefined) {
|
|
215
|
+
return undefined;
|
|
216
|
+
}
|
|
217
|
+
return Math.max(min, Math.min(max, value));
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Sanitize parameters by clamping to valid ranges.
|
|
221
|
+
*
|
|
222
|
+
* @param parameters IR parameters
|
|
223
|
+
* @returns Sanitized parameters
|
|
224
|
+
*/
|
|
225
|
+
export function sanitizeParameters(parameters) {
|
|
226
|
+
if (!parameters) {
|
|
227
|
+
return {};
|
|
228
|
+
}
|
|
229
|
+
const sanitized = { ...parameters };
|
|
230
|
+
if (parameters.temperature !== undefined) {
|
|
231
|
+
sanitized.temperature = clampParameter(parameters.temperature, 0, 2);
|
|
232
|
+
}
|
|
233
|
+
if (parameters.maxTokens !== undefined) {
|
|
234
|
+
sanitized.maxTokens = Math.max(1, Math.floor(parameters.maxTokens));
|
|
235
|
+
}
|
|
236
|
+
if (parameters.topP !== undefined) {
|
|
237
|
+
sanitized.topP = clampParameter(parameters.topP, 0, 1);
|
|
238
|
+
}
|
|
239
|
+
if (parameters.topK !== undefined) {
|
|
240
|
+
sanitized.topK = Math.max(1, Math.floor(parameters.topK));
|
|
241
|
+
}
|
|
242
|
+
if (parameters.frequencyPenalty !== undefined) {
|
|
243
|
+
sanitized.frequencyPenalty = clampParameter(parameters.frequencyPenalty, -2, 2);
|
|
244
|
+
}
|
|
245
|
+
if (parameters.presencePenalty !== undefined) {
|
|
246
|
+
sanitized.presencePenalty = clampParameter(parameters.presencePenalty, -2, 2);
|
|
247
|
+
}
|
|
248
|
+
if (parameters.seed !== undefined) {
|
|
249
|
+
sanitized.seed = Math.floor(parameters.seed);
|
|
250
|
+
}
|
|
251
|
+
return sanitized;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Check if parameters are within valid ranges.
|
|
255
|
+
*
|
|
256
|
+
* @param parameters IR parameters
|
|
257
|
+
* @returns true if all parameters are valid
|
|
258
|
+
*/
|
|
259
|
+
export function areParametersValid(parameters) {
|
|
260
|
+
if (!parameters) {
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
// Check temperature
|
|
264
|
+
if (parameters.temperature !== undefined) {
|
|
265
|
+
if (parameters.temperature < 0 || parameters.temperature > 2) {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// Check maxTokens
|
|
270
|
+
if (parameters.maxTokens !== undefined) {
|
|
271
|
+
if (parameters.maxTokens < 1 || !Number.isInteger(parameters.maxTokens)) {
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// Check topP
|
|
276
|
+
if (parameters.topP !== undefined) {
|
|
277
|
+
if (parameters.topP < 0 || parameters.topP > 1) {
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// Check topK
|
|
282
|
+
if (parameters.topK !== undefined) {
|
|
283
|
+
if (parameters.topK < 1 || !Number.isInteger(parameters.topK)) {
|
|
284
|
+
return false;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// Check penalties
|
|
288
|
+
if (parameters.frequencyPenalty !== undefined) {
|
|
289
|
+
if (parameters.frequencyPenalty < -2 || parameters.frequencyPenalty > 2) {
|
|
290
|
+
return false;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
if (parameters.presencePenalty !== undefined) {
|
|
294
|
+
if (parameters.presencePenalty < -2 || parameters.presencePenalty > 2) {
|
|
295
|
+
return false;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return true;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Normalize temperature with warning generation.
|
|
302
|
+
*
|
|
303
|
+
* @param temperature Temperature value (0-2)
|
|
304
|
+
* @param targetRange Target range ('0-1' or '0-2')
|
|
305
|
+
* @param source Source adapter name
|
|
306
|
+
* @returns Normalized temperature and warnings
|
|
307
|
+
*/
|
|
308
|
+
export function normalizeTemperatureWithWarnings(temperature, targetRange = '0-2', source) {
|
|
309
|
+
const warnings = [];
|
|
310
|
+
if (temperature === undefined) {
|
|
311
|
+
return { value: undefined, warnings };
|
|
312
|
+
}
|
|
313
|
+
const original = temperature;
|
|
314
|
+
const clamped = Math.max(0, Math.min(2, temperature));
|
|
315
|
+
// Warn if clamped
|
|
316
|
+
if (clamped !== original) {
|
|
317
|
+
warnings.push(createClampingWarning('temperature', original, clamped, 0, 2, source));
|
|
318
|
+
}
|
|
319
|
+
if (targetRange === '0-1') {
|
|
320
|
+
const normalized = clamped / 2;
|
|
321
|
+
// Warn about scaling
|
|
322
|
+
if (clamped > 1) {
|
|
323
|
+
warnings.push(createNormalizationWarning('temperature', clamped, normalized, `Temperature scaled from 0-2 range (${clamped}) to 0-1 range (${normalized.toFixed(2)})`, source));
|
|
324
|
+
}
|
|
325
|
+
return { value: normalized, warnings };
|
|
326
|
+
}
|
|
327
|
+
return { value: clamped, warnings };
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Normalize stop sequences with warning generation.
|
|
331
|
+
*
|
|
332
|
+
* @param stopSequences Stop sequences array
|
|
333
|
+
* @param maxStopSequences Maximum number supported
|
|
334
|
+
* @param source Source adapter name
|
|
335
|
+
* @returns Normalized stop sequences and warnings
|
|
336
|
+
*/
|
|
337
|
+
export function normalizeStopSequencesWithWarnings(stopSequences, maxStopSequences, source) {
|
|
338
|
+
const warnings = [];
|
|
339
|
+
if (!stopSequences || stopSequences.length === 0) {
|
|
340
|
+
return { value: undefined, warnings };
|
|
341
|
+
}
|
|
342
|
+
// Remove duplicates
|
|
343
|
+
const unique = Array.from(new Set(stopSequences));
|
|
344
|
+
// Limit to max if specified
|
|
345
|
+
if (maxStopSequences !== undefined && maxStopSequences > 0 && unique.length > maxStopSequences) {
|
|
346
|
+
warnings.push(createStopSequencesTruncatedWarning(unique.length, maxStopSequences, source));
|
|
347
|
+
return { value: unique.slice(0, maxStopSequences), warnings };
|
|
348
|
+
}
|
|
349
|
+
return { value: unique, warnings };
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Filter parameters with warning generation.
|
|
353
|
+
*
|
|
354
|
+
* @param parameters IR parameters
|
|
355
|
+
* @param capabilities Provider capabilities
|
|
356
|
+
* @param source Source adapter name
|
|
357
|
+
* @returns Filtered parameters and warnings
|
|
358
|
+
*/
|
|
359
|
+
export function filterUnsupportedParametersWithWarnings(parameters, capabilities, source) {
|
|
360
|
+
const warnings = [];
|
|
361
|
+
if (!parameters) {
|
|
362
|
+
return { value: {}, warnings };
|
|
363
|
+
}
|
|
364
|
+
const filtered = {
|
|
365
|
+
model: parameters.model,
|
|
366
|
+
};
|
|
367
|
+
// Check each parameter for support
|
|
368
|
+
if (parameters.temperature !== undefined) {
|
|
369
|
+
if (capabilities.supportsTemperature !== false) {
|
|
370
|
+
filtered.temperature = parameters.temperature;
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
warnings.push(createUnsupportedParameterWarning('temperature', parameters.temperature, source));
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
if (parameters.topP !== undefined) {
|
|
377
|
+
if (capabilities.supportsTopP !== false) {
|
|
378
|
+
filtered.topP = parameters.topP;
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
warnings.push(createUnsupportedParameterWarning('topP', parameters.topP, source));
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
if (parameters.topK !== undefined) {
|
|
385
|
+
if (capabilities.supportsTopK) {
|
|
386
|
+
filtered.topK = parameters.topK;
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
warnings.push(createUnsupportedParameterWarning('topK', parameters.topK, source));
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
if (parameters.frequencyPenalty !== undefined) {
|
|
393
|
+
if (capabilities.supportsFrequencyPenalty !== false) {
|
|
394
|
+
filtered.frequencyPenalty = parameters.frequencyPenalty;
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
warnings.push(createUnsupportedParameterWarning('frequencyPenalty', parameters.frequencyPenalty, source));
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
if (parameters.presencePenalty !== undefined) {
|
|
401
|
+
if (capabilities.supportsPresencePenalty !== false) {
|
|
402
|
+
filtered.presencePenalty = parameters.presencePenalty;
|
|
403
|
+
}
|
|
404
|
+
else {
|
|
405
|
+
warnings.push(createUnsupportedParameterWarning('presencePenalty', parameters.presencePenalty, source));
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
if (parameters.seed !== undefined) {
|
|
409
|
+
if (capabilities.supportsSeed !== false) {
|
|
410
|
+
filtered.seed = parameters.seed;
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
413
|
+
warnings.push(createUnsupportedParameterWarning('seed', parameters.seed, source));
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
// Always include these
|
|
417
|
+
if (parameters.maxTokens !== undefined) {
|
|
418
|
+
filtered.maxTokens = parameters.maxTokens;
|
|
419
|
+
}
|
|
420
|
+
// Handle stop sequences with warnings
|
|
421
|
+
if (parameters.stopSequences !== undefined) {
|
|
422
|
+
const stopResult = normalizeStopSequencesWithWarnings(parameters.stopSequences, capabilities.maxStopSequences, source);
|
|
423
|
+
filtered.stopSequences = stopResult.value;
|
|
424
|
+
warnings.push(...stopResult.warnings);
|
|
425
|
+
}
|
|
426
|
+
if (parameters.user !== undefined) {
|
|
427
|
+
filtered.user = parameters.user;
|
|
428
|
+
}
|
|
429
|
+
if (parameters.custom !== undefined) {
|
|
430
|
+
filtered.custom = parameters.custom;
|
|
431
|
+
}
|
|
432
|
+
return { value: filtered, warnings };
|
|
433
|
+
}
|
|
434
|
+
//# sourceMappingURL=parameter-normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameter-normalizer.js","sourceRoot":"","sources":["../../src/parameter-normalizer.ts"],"names":[],"mappings":"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"}
|