evalstate commited on
Commit
9c8e5e0
·
unverified ·
1 Parent(s): 4f1e27f

Fix/oai parameters 1552 (#1557)

Browse files

* support temperature between 0 and 2

* added parsing of presence_penalty from model parameters. OAI endpoint now correctly uses (frequency penalty=parameters.repetition penalty) and (presence penalty=parameters.presence_penalty) for both chat and completion paths.

* added parsing of presence_penalty from model parameters. OAI endpoint now correctly uses (frequency penalty=parameters.repetition penalty) and (presence penalty=parameters.presence_penalty) for both chat and completion paths.

src/lib/server/endpoints/openai/endpointOai.ts CHANGED
@@ -167,6 +167,7 @@ export async function endpointOai(
167
  temperature: parameters?.temperature,
168
  top_p: parameters?.top_p,
169
  frequency_penalty: parameters?.repetition_penalty,
 
170
  };
171
 
172
  const openAICompletion = await openai.completions.create(body, {
@@ -245,6 +246,7 @@ export async function endpointOai(
245
  temperature: parameters?.temperature,
246
  top_p: parameters?.top_p,
247
  frequency_penalty: parameters?.repetition_penalty,
 
248
  ...(toolCallChoices.length > 0 ? { tools: toolCallChoices, tool_choice: "auto" } : {}),
249
  };
250
 
 
167
  temperature: parameters?.temperature,
168
  top_p: parameters?.top_p,
169
  frequency_penalty: parameters?.repetition_penalty,
170
+ presence_penalty: parameters?.presence_penalty,
171
  };
172
 
173
  const openAICompletion = await openai.completions.create(body, {
 
246
  temperature: parameters?.temperature,
247
  top_p: parameters?.top_p,
248
  frequency_penalty: parameters?.repetition_penalty,
249
+ presence_penalty: parameters?.presence_penalty,
250
  ...(toolCallChoices.length > 0 ? { tools: toolCallChoices, tool_choice: "auto" } : {}),
251
  };
252
 
src/lib/server/models.ts CHANGED
@@ -52,13 +52,14 @@ const modelConfig = z.object({
52
  endpoints: z.array(endpointSchema).optional(),
53
  parameters: z
54
  .object({
55
- temperature: z.number().min(0).max(1).optional(),
56
  truncate: z.number().int().positive().optional(),
57
  max_new_tokens: z.number().int().positive().optional(),
58
  stop: z.array(z.string()).optional(),
59
  top_p: z.number().positive().optional(),
60
  top_k: z.number().positive().optional(),
61
  repetition_penalty: z.number().min(-2).max(2).optional(),
 
62
  })
63
  .passthrough()
64
  .optional(),
 
52
  endpoints: z.array(endpointSchema).optional(),
53
  parameters: z
54
  .object({
55
+ temperature: z.number().min(0).max(2).optional(),
56
  truncate: z.number().int().positive().optional(),
57
  max_new_tokens: z.number().int().positive().optional(),
58
  stop: z.array(z.string()).optional(),
59
  top_p: z.number().positive().optional(),
60
  top_k: z.number().positive().optional(),
61
  repetition_penalty: z.number().min(-2).max(2).optional(),
62
+ presence_penalty: z.number().min(-2).max(2).optional(),
63
  })
64
  .passthrough()
65
  .optional(),