101 lines
2.2 KiB
TypeScript
101 lines
2.2 KiB
TypeScript
|
|
import { Storage } from "@plasmohq/storage"
|
||
|
|
const storage = new Storage()
|
||
|
|
|
||
|
|
type ModelSettings = {
|
||
|
|
f16KV?: boolean
|
||
|
|
frequencyPenalty?: number
|
||
|
|
keepAlive?: string
|
||
|
|
logitsAll?: boolean
|
||
|
|
mirostat?: number
|
||
|
|
mirostatEta?: number
|
||
|
|
mirostatTau?: number
|
||
|
|
numBatch?: number
|
||
|
|
numCtx?: number
|
||
|
|
numGpu?: number
|
||
|
|
numGqa?: number
|
||
|
|
numKeep?: number
|
||
|
|
numPredict?: number
|
||
|
|
numThread?: number
|
||
|
|
penalizeNewline?: boolean
|
||
|
|
presencePenalty?: number
|
||
|
|
repeatLastN?: number
|
||
|
|
repeatPenalty?: number
|
||
|
|
ropeFrequencyBase?: number
|
||
|
|
ropeFrequencyScale?: number
|
||
|
|
temperature?: number
|
||
|
|
tfsZ?: number
|
||
|
|
topK?: number
|
||
|
|
topP?: number
|
||
|
|
typicalP?: number
|
||
|
|
useMLock?: boolean
|
||
|
|
useMMap?: boolean
|
||
|
|
vocabOnly?: boolean
|
||
|
|
}
|
||
|
|
|
||
|
|
const keys = [
|
||
|
|
"f16KV",
|
||
|
|
"frequencyPenalty",
|
||
|
|
"keepAlive",
|
||
|
|
"logitsAll",
|
||
|
|
"mirostat",
|
||
|
|
"mirostatEta",
|
||
|
|
"mirostatTau",
|
||
|
|
"numBatch",
|
||
|
|
"numCtx",
|
||
|
|
"numGpu",
|
||
|
|
"numGqa",
|
||
|
|
"numKeep",
|
||
|
|
"numPredict",
|
||
|
|
"numThread",
|
||
|
|
"penalizeNewline",
|
||
|
|
"presencePenalty",
|
||
|
|
"repeatLastN",
|
||
|
|
"repeatPenalty",
|
||
|
|
"ropeFrequencyBase",
|
||
|
|
"ropeFrequencyScale",
|
||
|
|
"temperature",
|
||
|
|
"tfsZ",
|
||
|
|
"topK",
|
||
|
|
"topP",
|
||
|
|
"typicalP",
|
||
|
|
"useMLock",
|
||
|
|
"useMMap",
|
||
|
|
"vocabOnly"
|
||
|
|
]
|
||
|
|
|
||
|
|
const getAllModelSettings = async () => {
|
||
|
|
try {
|
||
|
|
const settings: ModelSettings = {}
|
||
|
|
for (const key of keys) {
|
||
|
|
const value = await storage.get(key)
|
||
|
|
settings[key] = value
|
||
|
|
if (!value && key === "keepAlive") {
|
||
|
|
settings[key] = "5m"
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
return settings
|
||
|
|
} catch (error) {
|
||
|
|
console.error(error)
|
||
|
|
return {}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
const setModelSetting = async (key: string,
|
||
|
|
value: string | number | boolean) => {
|
||
|
|
await storage.set(key, value)
|
||
|
|
}
|
||
|
|
|
||
|
|
export const getAllDefaultModelSettings = async (): Promise<ModelSettings> => {
|
||
|
|
const settings: ModelSettings = {}
|
||
|
|
for (const key of keys) {
|
||
|
|
const value = await storage.get(key)
|
||
|
|
settings[key] = value
|
||
|
|
if (!value && key === "keepAlive") {
|
||
|
|
settings[key] = "5m"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return settings
|
||
|
|
}
|
||
|
|
|
||
|
|
export { getAllModelSettings, setModelSetting }
|