chore: Update version to 1.1.9 and add Model Settings to Ollama settings page
This commit is contained in:
101
src/services/model-settings.ts
Normal file
101
src/services/model-settings.ts
Normal file
@@ -0,0 +1,101 @@
|
||||
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 }
|
||||
Reference in New Issue
Block a user