diff --git a/src/assets/locale/en/common.json b/src/assets/locale/en/common.json index b00e03e..6f14588 100644 --- a/src/assets/locale/en/common.json +++ b/src/assets/locale/en/common.json @@ -90,6 +90,21 @@ "useMMap": { "label": "useMmap" }, + "tfsZ": { + "label": "TFS-Z", + "placeholder": "e.g. 1.0, 1.1" + }, + "numKeep": { + "label": "Num Keep", + "placeholder": "e.g. 256, 512" + }, + "numThread": { + "label": "Num Thread", + "placeholder": "e.g. 8, 16" + }, + "useMlock": { + "label": "useMlock" + }, "minP": { "label": "Min P", "placeholder": "e.g. 0.05" diff --git a/src/components/Common/Settings/CurrentChatModelSettings.tsx b/src/components/Common/Settings/CurrentChatModelSettings.tsx index 57a6926..7474f68 100644 --- a/src/components/Common/Settings/CurrentChatModelSettings.tsx +++ b/src/components/Common/Settings/CurrentChatModelSettings.tsx @@ -13,9 +13,8 @@ import { Modal, Skeleton, Switch, - Button } from "antd" -import React, { useState, useCallback } from "react" +import React, { useCallback } from "react" import { useTranslation } from "react-i18next" import { SaveButton } from "../SaveButton" @@ -79,7 +78,11 @@ export const CurrentChatModelSettings = ({ useMMap: cUserSettings.useMMap ?? data.useMMap, minP: cUserSettings.minP ?? data.minP, repeatLastN: cUserSettings.repeatLastN ?? data.repeatLastN, - repeatPenalty: cUserSettings.repeatPenalty ?? data.repeatPenalty + repeatPenalty: cUserSettings.repeatPenalty ?? data.repeatPenalty, + useMlock: cUserSettings.useMlock ?? data.useMlock, + tfsZ: cUserSettings.tfsZ ?? data.tfsZ, + numKeep: cUserSettings.numKeep ?? data.numKeep, + numThread: cUserSettings.numThread ?? data.numThread }) return data }, @@ -230,11 +233,44 @@ export const CurrentChatModelSettings = ({ )} /> + + + + + + + + + + + + ) } diff --git a/src/components/Option/Settings/model-settings.tsx b/src/components/Option/Settings/model-settings.tsx index 43753eb..7ed8eb9 100644 --- a/src/components/Option/Settings/model-settings.tsx +++ b/src/components/Option/Settings/model-settings.tsx @@ -150,11 +150,44 @@ export const ModelSettings = () => { )} /> + + + + + + + + + + + + ) } diff --git a/src/hooks/useMessage.tsx b/src/hooks/useMessage.tsx index 1cdca63..a32fedc 100644 --- a/src/hooks/useMessage.tsx +++ b/src/hooks/useMessage.tsx @@ -150,7 +150,15 @@ export const useMessage = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? userDefaultModelSettings?.useMlock }) let newMessage: Message[] = [] @@ -293,7 +301,18 @@ export const useMessage = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: + currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? + userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? + userDefaultModelSettings?.useMlock }) const response = await questionOllama.invoke(promptForQuestion) query = response.content.toString() @@ -514,7 +533,15 @@ export const useMessage = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? userDefaultModelSettings?.useMlock }) let newMessage: Message[] = [] @@ -758,7 +785,15 @@ export const useMessage = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? userDefaultModelSettings?.useMlock }) let newMessage: Message[] = [] @@ -997,7 +1032,15 @@ export const useMessage = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? userDefaultModelSettings?.useMlock }) let newMessage: Message[] = [] @@ -1087,7 +1130,18 @@ export const useMessage = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: + currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? + userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? + userDefaultModelSettings?.useMlock }) const response = await questionOllama.invoke(promptForQuestion) query = response.content.toString() @@ -1286,7 +1340,15 @@ export const useMessage = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? userDefaultModelSettings?.useMlock }) let newMessage: Message[] = [] diff --git a/src/hooks/useMessageOption.tsx b/src/hooks/useMessageOption.tsx index 56100be..5fcd4d1 100644 --- a/src/hooks/useMessageOption.tsx +++ b/src/hooks/useMessageOption.tsx @@ -141,7 +141,15 @@ export const useMessageOption = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? userDefaultModelSettings?.useMlock }) let newMessage: Message[] = [] @@ -231,7 +239,18 @@ export const useMessageOption = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: + currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? + userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? + userDefaultModelSettings?.useMlock }) const response = await questionOllama.invoke(promptForQuestion) query = response.content.toString() @@ -464,7 +483,15 @@ export const useMessageOption = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? userDefaultModelSettings?.useMlock }) let newMessage: Message[] = [] @@ -719,7 +746,15 @@ export const useMessageOption = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? userDefaultModelSettings?.useMlock }) let newMessage: Message[] = [] @@ -825,7 +860,18 @@ export const useMessageOption = () => { userDefaultModelSettings?.repeatLastN, repeatPenalty: currentChatModelSettings?.repeatPenalty ?? - userDefaultModelSettings?.repeatPenalty + userDefaultModelSettings?.repeatPenalty, + tfsZ: + currentChatModelSettings?.tfsZ ?? userDefaultModelSettings?.tfsZ, + numKeep: + currentChatModelSettings?.numKeep ?? + userDefaultModelSettings?.numKeep, + numThread: + currentChatModelSettings?.numThread ?? + userDefaultModelSettings?.numThread, + useMlock: + currentChatModelSettings?.useMlock ?? + userDefaultModelSettings?.useMlock }) const response = await questionOllama.invoke(promptForQuestion) query = response.content.toString() diff --git a/src/models/ChatOllama.ts b/src/models/ChatOllama.ts index e046f68..18d18eb 100644 --- a/src/models/ChatOllama.ts +++ b/src/models/ChatOllama.ts @@ -103,6 +103,8 @@ export class ChatOllama useMMap?: boolean; + useMlock?: boolean; + vocabOnly?: boolean; seed?: number; @@ -148,6 +150,7 @@ export class ChatOllama this.typicalP = fields.typicalP; this.useMLock = fields.useMLock; this.useMMap = fields.useMMap; + this.useMlock = fields.useMlock; this.vocabOnly = fields.vocabOnly; this.format = fields.format; this.seed = fields.seed; @@ -210,7 +213,7 @@ export class ChatOllama top_p: this.topP, min_p: this.minP, typical_p: this.typicalP, - use_mlock: this.useMLock, + use_mlock: this.useMlock, use_mmap: this.useMMap, vocab_only: this.vocabOnly, seed: this.seed, diff --git a/src/models/index.ts b/src/models/index.ts index b50baf2..752f114 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -20,7 +20,11 @@ export const pageAssistModel = async ({ useMMap, minP, repeatLastN, - repeatPenalty + repeatPenalty, + tfsZ, + numKeep, + numThread, + useMlock, }: { model: string baseUrl: string @@ -36,6 +40,10 @@ export const pageAssistModel = async ({ minP?: number repeatPenalty?: number repeatLastN?: number + tfsZ?: number, + numKeep?: number, + numThread?: number, + useMlock?: boolean, }) => { if (model === "chrome::gemini-nano::page-assist") { return new ChatChromeAI({ @@ -80,7 +88,7 @@ export const pageAssistModel = async ({ } }) as any } - + console.log('useMlock', useMlock) return new ChatOllama({ baseUrl, keepAlive, @@ -96,5 +104,9 @@ export const pageAssistModel = async ({ minP: minP, repeatPenalty: repeatPenalty, repeatLastN: repeatLastN, + tfsZ, + numKeep, + numThread, + useMlock }) } diff --git a/src/models/utils/ollama.ts b/src/models/utils/ollama.ts index a311ca9..8a48a9c 100644 --- a/src/models/utils/ollama.ts +++ b/src/models/utils/ollama.ts @@ -40,6 +40,7 @@ export interface OllamaInput { useMLock?: boolean useMMap?: boolean vocabOnly?: boolean + useMlock?: boolean seed?: number format?: StringWithAutocomplete<"json"> } diff --git a/src/services/model-settings.ts b/src/services/model-settings.ts index 730d619..82afca7 100644 --- a/src/services/model-settings.ts +++ b/src/services/model-settings.ts @@ -33,6 +33,7 @@ type ModelSettings = { useMMap?: boolean vocabOnly?: boolean minP?: number + useMlock?: boolean } const keys = [ @@ -65,6 +66,7 @@ const keys = [ "useMMap", "vocabOnly", "minP", + "useMlock" ] export const getAllModelSettings = async () => { diff --git a/src/store/model.tsx b/src/store/model.tsx index 9ef8546..23aab9c 100644 --- a/src/store/model.tsx +++ b/src/store/model.tsx @@ -66,6 +66,8 @@ type CurrentChatModelSettings = { reset: () => void systemPrompt?: string setSystemPrompt: (systemPrompt: string) => void + useMlock?: boolean + setUseMlock: (useMlock: boolean) => void setMinP: (minP: number) => void } @@ -108,6 +110,7 @@ export const useStoreChatModelSettings = create( systemPrompt: undefined, setMinP: (minP: number) => set({ minP }), setSystemPrompt: (systemPrompt: string) => set({ systemPrompt }), + setUseMlock: (useMlock: boolean) => set({ useMlock }), reset: () => set({ f16KV: undefined, @@ -141,6 +144,7 @@ export const useStoreChatModelSettings = create( seed: undefined, systemPrompt: undefined, minP: undefined, + useMlock: undefined, }) }) )