diff --git a/src/lib/Setting/Pages/OtherBotSettings.svelte b/src/lib/Setting/Pages/OtherBotSettings.svelte
index 88003e0e..836748e4 100644
--- a/src/lib/Setting/Pages/OtherBotSettings.svelte
+++ b/src/lib/Setting/Pages/OtherBotSettings.svelte
@@ -594,6 +594,7 @@
OpenAI text-embedding-3-small
OpenAI text-embedding-3-large
OpenAI Ada
+ Custom (OpenAI-compatible)
{#if DBState.db.hypaModel === 'openai3small' || DBState.db.hypaModel === 'openai3large' || DBState.db.hypaModel === 'ada'}
@@ -601,5 +602,14 @@
{/if}
+ {#if DBState.db.hypaModel === 'custom'}
+ URL
+
+ Key/Password
+
+ Request Model
+
+ {/if}
+
{/if}
\ No newline at end of file
diff --git a/src/ts/process/memory/hypamemory.ts b/src/ts/process/memory/hypamemory.ts
index deb2735c..5dd8efc9 100644
--- a/src/ts/process/memory/hypamemory.ts
+++ b/src/ts/process/memory/hypamemory.ts
@@ -37,14 +37,14 @@ export class HypaProcesser{
name: "hypaVector"
})
this.vectors = []
+ const db = getDatabase()
if(model === 'auto'){
- const db = getDatabase()
this.model = db.hypaModel || 'MiniLM'
}
else{
this.model = model
}
- this.customEmbeddingUrl = customEmbeddingUrl
+ this.customEmbeddingUrl = customEmbeddingUrl || db.hypaCustomSettings.url
}
async embedDocuments(texts: string[]): Promise {
@@ -77,12 +77,17 @@ export class HypaProcesser{
}
const {customEmbeddingUrl} = this
const replaceUrl = customEmbeddingUrl.endsWith('/embeddings')?customEmbeddingUrl:appendLastPath(customEmbeddingUrl,'embeddings')
-
- gf = await globalFetch(replaceUrl.toString(), {
- body:{
- "input": input
- },
- })
+
+ const db = getDatabase()
+ const fetchArgs = {
+ ...(db.hypaCustomSettings.key ? {headers: {"Authorization": "Bearer " + db.hypaCustomSettings.key}} : {}),
+ body: {
+ "input": input,
+ ...(db.hypaCustomSettings.model ? {"model": db.hypaCustomSettings.model} : {})
+ }
+ };
+
+ gf = await globalFetch(replaceUrl.toString(), fetchArgs)
}
if(this.model === 'ada' || this.model === 'openai3small' || this.model === 'openai3large'){
const db = getDatabase()
diff --git a/src/ts/storage/database.svelte.ts b/src/ts/storage/database.svelte.ts
index 77a921f6..cb9846a4 100644
--- a/src/ts/storage/database.svelte.ts
+++ b/src/ts/storage/database.svelte.ts
@@ -489,6 +489,11 @@ export function setDatabase(data:Database){
data.antiClaudeOverload = false
data.antiServerOverloads = true
}
+ data.hypaCustomSettings = {
+ url: data.hypaCustomSettings?.url ?? "",
+ key: data.hypaCustomSettings?.key ?? "",
+ model: data.hypaCustomSettings?.model ?? "",
+ }
changeLanguage(data.language)
setDatabaseLite(data)
}
@@ -902,7 +907,7 @@ export interface Database{
preserveOrphanedMemory: boolean
processRegexScript: boolean
doNotSummarizeUserMessage: boolean
- },
+ }
OaiCompAPIKeys: {[key:string]:string}
inlayErrorResponse:boolean
reasoningEffort:number
@@ -913,6 +918,11 @@ export interface Database{
useExperimentalGoogleTranslator:boolean
thinkingTokens: number
antiServerOverloads: boolean
+ hypaCustomSettings: {
+ url: string,
+ key: string,
+ model: string,
+ }
}
interface SeparateParameters{