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{