|
import type { ChatCompletionInput } from "@huggingface/tasks"; |
|
|
|
export const GENERATION_CONFIG_KEYS = ["temperature", "max_tokens", "top_p"] as const; |
|
|
|
export type GenerationConfigKey = (typeof GENERATION_CONFIG_KEYS)[number]; |
|
|
|
export type GenerationConfig = Pick<ChatCompletionInput, GenerationConfigKey>; |
|
|
|
interface GenerationKeySettings { |
|
default: number; |
|
step: number; |
|
min: number; |
|
max: number; |
|
label: string; |
|
} |
|
|
|
export const GENERATION_CONFIG_SETTINGS: Record<GenerationConfigKey, GenerationKeySettings> = { |
|
temperature: { |
|
default: 0.5, |
|
step: 0.1, |
|
min: 0, |
|
max: 2, |
|
label: "Temperature", |
|
}, |
|
max_tokens: { |
|
default: 2048, |
|
step: 256, |
|
min: 0, |
|
max: 8192, |
|
label: "Max Tokens", |
|
}, |
|
top_p: { |
|
default: 0.7, |
|
step: 0.1, |
|
min: 0, |
|
max: 1, |
|
label: "Top-P", |
|
}, |
|
}; |
|
|
|
export const defaultGenerationConfig = GENERATION_CONFIG_KEYS.reduce((acc, key) => { |
|
acc[key] = GENERATION_CONFIG_SETTINGS[key].default; |
|
return acc; |
|
}, {} as GenerationConfig); |
|
|