diff --git a/src/assets/locale/en/common.json b/src/assets/locale/en/common.json
index 88c1be5..b00e03e 100644
--- a/src/assets/locale/en/common.json
+++ b/src/assets/locale/en/common.json
@@ -60,11 +60,11 @@
"keepAlive": {
"label": "Keep Alive",
"help": "controls how long the model will stay loaded into memory following the request (default: 5m)",
- "placeholder": "Enter Keep Alive duration (e.g. 5m, 10m, 1h)"
+ "placeholder": "e.g. 5m, 10m, 1h"
},
"temperature": {
"label": "Temperature",
- "placeholder": "Enter Temperature value (e.g. 0.7, 1.0)"
+ "placeholder": "e.g. 0.7, 1.0"
},
"numCtx": {
"label": "Number of Contexts",
@@ -72,24 +72,36 @@
},
"numPredict": {
"label": "Max Tokens (num_predict)",
- "placeholder": "Enter Max Tokens value (e.g. 2048, 4096)"
+ "placeholder": "e.g. 2048, 4096"
},
"seed": {
"label": "Seed",
- "placeholder": "Enter Seed value (e.g. 1234)",
+ "placeholder": "e.g. 1234",
"help": "Reproducibility of the model output"
},
"topK": {
"label": "Top K",
- "placeholder": "Enter Top K value (e.g. 40, 100)"
+ "placeholder": "e.g. 40, 100"
},
"topP": {
"label": "Top P",
- "placeholder": "Enter Top P value (e.g. 0.9, 0.95)"
+ "placeholder": "e.g. 0.9, 0.95"
},
"useMMap": {
"label": "useMmap"
},
+ "minP": {
+ "label": "Min P",
+ "placeholder": "e.g. 0.05"
+ },
+ "repeatPenalty": {
+ "label": "Repeat Penalty",
+ "placeholder": "e.g. 1.1, 1.2"
+ },
+ "repeatLastN": {
+ "label": "Repeat Last N",
+ "placeholder": "e.g. 64, 128"
+ },
"numGpu": {
"label": "Num GPU",
"placeholder": "Enter number of layers to send to GPU(s)"
@@ -125,4 +137,4 @@
"pin": "Pin",
"unpin": "Unpin",
"generationInfo": "Generation Info"
-}
+}
\ No newline at end of file
diff --git a/src/components/Common/Settings/CurrentChatModelSettings.tsx b/src/components/Common/Settings/CurrentChatModelSettings.tsx
index b1218b4..57a6926 100644
--- a/src/components/Common/Settings/CurrentChatModelSettings.tsx
+++ b/src/components/Common/Settings/CurrentChatModelSettings.tsx
@@ -76,7 +76,10 @@ export const CurrentChatModelSettings = ({
numGpu: cUserSettings.numGpu ?? data.numGpu,
numPredict: cUserSettings.numPredict ?? data.numPredict,
systemPrompt: cUserSettings.systemPrompt ?? tempSystemPrompt,
- useMMap: cUserSettings.useMMap ?? data.useMMap
+ useMMap: cUserSettings.useMMap ?? data.useMMap,
+ minP: cUserSettings.minP ?? data.minP,
+ repeatLastN: cUserSettings.repeatLastN ?? data.repeatLastN,
+ repeatPenalty: cUserSettings.repeatPenalty ?? data.repeatPenalty
})
return data
},
@@ -199,6 +202,34 @@ export const CurrentChatModelSettings = ({
/>
+
+
+
+
+
+
+
+
+
@@ -209,7 +240,10 @@ export const CurrentChatModelSettings = ({
}
]}
/>
-
+
) : (
diff --git a/src/components/Option/Settings/model-settings.tsx b/src/components/Option/Settings/model-settings.tsx
index 18015ba..43753eb 100644
--- a/src/components/Option/Settings/model-settings.tsx
+++ b/src/components/Option/Settings/model-settings.tsx
@@ -122,6 +122,34 @@ export const ModelSettings = () => {
placeholder={t("modelSettings.form.numGpu.placeholder")}
/>
+
+
+
+
+
+
+
+
+
diff --git a/src/hooks/useMessage.tsx b/src/hooks/useMessage.tsx
index 2caec5a..1cdca63 100644
--- a/src/hooks/useMessage.tsx
+++ b/src/hooks/useMessage.tsx
@@ -143,7 +143,14 @@ export const useMessage = () => {
currentChatModelSettings?.numPredict ??
userDefaultModelSettings?.numPredict,
useMMap:
- currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
+ currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
+ minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
let newMessage: Message[] = []
@@ -278,7 +285,15 @@ export const useMessage = () => {
userDefaultModelSettings?.numPredict,
useMMap:
currentChatModelSettings?.useMMap ??
- userDefaultModelSettings?.useMMap
+ userDefaultModelSettings?.useMMap,
+ minP:
+ currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
const response = await questionOllama.invoke(promptForQuestion)
query = response.content.toString()
@@ -492,7 +507,14 @@ export const useMessage = () => {
currentChatModelSettings?.numPredict ??
userDefaultModelSettings?.numPredict,
useMMap:
- currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
+ currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
+ minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
let newMessage: Message[] = []
@@ -729,7 +751,14 @@ export const useMessage = () => {
currentChatModelSettings?.numPredict ??
userDefaultModelSettings?.numPredict,
useMMap:
- currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
+ currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
+ minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
let newMessage: Message[] = []
@@ -780,7 +809,7 @@ export const useMessage = () => {
type: "text"
}
],
- model: selectedModel,
+ model: selectedModel,
useOCR
})
if (image.length > 0) {
@@ -961,7 +990,14 @@ export const useMessage = () => {
currentChatModelSettings?.numPredict ??
userDefaultModelSettings?.numPredict,
useMMap:
- currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
+ currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
+ minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
let newMessage: Message[] = []
@@ -1043,7 +1079,15 @@ export const useMessage = () => {
userDefaultModelSettings?.numPredict,
useMMap:
currentChatModelSettings?.useMMap ??
- userDefaultModelSettings?.useMMap
+ userDefaultModelSettings?.useMMap,
+ minP:
+ currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
const response = await questionOllama.invoke(promptForQuestion)
query = response.content.toString()
@@ -1235,7 +1279,14 @@ export const useMessage = () => {
currentChatModelSettings?.numPredict ??
userDefaultModelSettings?.numPredict,
useMMap:
- currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
+ currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
+ minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
let newMessage: Message[] = []
diff --git a/src/hooks/useMessageOption.tsx b/src/hooks/useMessageOption.tsx
index 1e97e38..56100be 100644
--- a/src/hooks/useMessageOption.tsx
+++ b/src/hooks/useMessageOption.tsx
@@ -134,7 +134,14 @@ export const useMessageOption = () => {
currentChatModelSettings?.numPredict ??
userDefaultModelSettings?.numPredict,
useMMap:
- currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
+ currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
+ minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
let newMessage: Message[] = []
@@ -216,7 +223,15 @@ export const useMessageOption = () => {
userDefaultModelSettings?.numPredict,
useMMap:
currentChatModelSettings?.useMMap ??
- userDefaultModelSettings?.useMMap
+ userDefaultModelSettings?.useMMap,
+ minP:
+ currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
const response = await questionOllama.invoke(promptForQuestion)
query = response.content.toString()
@@ -442,7 +457,14 @@ export const useMessageOption = () => {
currentChatModelSettings?.numPredict ??
userDefaultModelSettings?.numPredict,
useMMap:
- currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
+ currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
+ minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
let newMessage: Message[] = []
@@ -690,7 +712,14 @@ export const useMessageOption = () => {
currentChatModelSettings?.numPredict ??
userDefaultModelSettings?.numPredict,
useMMap:
- currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
+ currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
+ minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
let newMessage: Message[] = []
@@ -788,7 +817,15 @@ export const useMessageOption = () => {
userDefaultModelSettings?.numPredict,
useMMap:
currentChatModelSettings?.useMMap ??
- userDefaultModelSettings?.useMMap
+ userDefaultModelSettings?.useMMap,
+ minP:
+ currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
+ repeatLastN:
+ currentChatModelSettings?.repeatLastN ??
+ userDefaultModelSettings?.repeatLastN,
+ repeatPenalty:
+ currentChatModelSettings?.repeatPenalty ??
+ userDefaultModelSettings?.repeatPenalty
})
const response = await questionOllama.invoke(promptForQuestion)
query = response.content.toString()
diff --git a/src/models/ChatOllama.ts b/src/models/ChatOllama.ts
index 1bc7ddb..e046f68 100644
--- a/src/models/ChatOllama.ts
+++ b/src/models/ChatOllama.ts
@@ -95,6 +95,8 @@ export class ChatOllama
topP?: number;
+ minP?: number;
+
typicalP?: number;
useMLock?: boolean;
@@ -142,6 +144,7 @@ export class ChatOllama
this.tfsZ = fields.tfsZ;
this.topK = fields.topK;
this.topP = fields.topP;
+ this.minP = fields.minP;
this.typicalP = fields.typicalP;
this.useMLock = fields.useMLock;
this.useMMap = fields.useMMap;
@@ -205,6 +208,7 @@ export class ChatOllama
tfs_z: this.tfsZ,
top_k: this.topK,
top_p: this.topP,
+ min_p: this.minP,
typical_p: this.typicalP,
use_mlock: this.useMLock,
use_mmap: this.useMMap,
diff --git a/src/models/index.ts b/src/models/index.ts
index 953c968..b50baf2 100644
--- a/src/models/index.ts
+++ b/src/models/index.ts
@@ -17,7 +17,10 @@ export const pageAssistModel = async ({
seed,
numGpu,
numPredict,
- useMMap
+ useMMap,
+ minP,
+ repeatLastN,
+ repeatPenalty
}: {
model: string
baseUrl: string
@@ -30,6 +33,9 @@ export const pageAssistModel = async ({
numGpu?: number
numPredict?: number
useMMap?: boolean
+ minP?: number
+ repeatPenalty?: number
+ repeatLastN?: number
}) => {
if (model === "chrome::gemini-nano::page-assist") {
return new ChatChromeAI({
@@ -86,6 +92,9 @@ export const pageAssistModel = async ({
model,
numGpu,
numPredict,
- useMMap
+ useMMap,
+ minP: minP,
+ repeatPenalty: repeatPenalty,
+ repeatLastN: repeatLastN,
})
}
diff --git a/src/models/utils/ollama.ts b/src/models/utils/ollama.ts
index 57b98f0..a311ca9 100644
--- a/src/models/utils/ollama.ts
+++ b/src/models/utils/ollama.ts
@@ -35,6 +35,7 @@ export interface OllamaInput {
tfsZ?: number
topK?: number
topP?: number
+ minP?: number
typicalP?: number
useMLock?: boolean
useMMap?: boolean
diff --git a/src/services/model-settings.ts b/src/services/model-settings.ts
index 1993442..730d619 100644
--- a/src/services/model-settings.ts
+++ b/src/services/model-settings.ts
@@ -32,6 +32,7 @@ type ModelSettings = {
useMLock?: boolean
useMMap?: boolean
vocabOnly?: boolean
+ minP?: number
}
const keys = [
@@ -62,7 +63,8 @@ const keys = [
"typicalP",
"useMLock",
"useMMap",
- "vocabOnly"
+ "vocabOnly",
+ "minP",
]
export const getAllModelSettings = async () => {
diff --git a/src/store/model.tsx b/src/store/model.tsx
index 5514b24..9ef8546 100644
--- a/src/store/model.tsx
+++ b/src/store/model.tsx
@@ -30,6 +30,7 @@ type CurrentChatModelSettings = {
useMMap?: boolean
vocabOnly?: boolean
seed?: number
+ minP?: number
setF16KV?: (f16KV: boolean) => void
setFrequencyPenalty?: (frequencyPenalty: number) => void
@@ -65,6 +66,8 @@ type CurrentChatModelSettings = {
reset: () => void
systemPrompt?: string
setSystemPrompt: (systemPrompt: string) => void
+
+ setMinP: (minP: number) => void
}
export const useStoreChatModelSettings = create(
@@ -103,6 +106,7 @@ export const useStoreChatModelSettings = create(
seetSeed: (seed: number) => set({ seed }),
setX: (key: string, value: any) => set({ [key]: value }),
systemPrompt: undefined,
+ setMinP: (minP: number) => set({ minP }),
setSystemPrompt: (systemPrompt: string) => set({ systemPrompt }),
reset: () =>
set({
@@ -135,7 +139,8 @@ export const useStoreChatModelSettings = create(
useMMap: undefined,
vocabOnly: undefined,
seed: undefined,
- systemPrompt: undefined
+ systemPrompt: undefined,
+ minP: undefined,
})
})
)