Add openrouter provider
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
import OobaSettings from "./OobaSettings.svelte";
|
import OobaSettings from "./OobaSettings.svelte";
|
||||||
import Arcodion from "src/lib/UI/Arcodion.svelte";
|
import Arcodion from "src/lib/UI/Arcodion.svelte";
|
||||||
import { startsWith } from "lodash";
|
import { startsWith } from "lodash";
|
||||||
|
import OpenrouterSettings from "./OpenrouterSettings.svelte";
|
||||||
|
|
||||||
let tokens = {
|
let tokens = {
|
||||||
mainPrompt: 0,
|
mainPrompt: 0,
|
||||||
@@ -261,14 +262,6 @@
|
|||||||
<Check bind:check={$DataBase.useStreaming} name={`Response ${language.streaming}`}/>
|
<Check bind:check={$DataBase.useStreaming} name={`Response ${language.streaming}`}/>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{#if $DataBase.aiModel.startsWith('openrouter')}
|
|
||||||
<div class="flex items-center mb-4">
|
|
||||||
<Check bind:check={$DataBase.openrouterFallback} name={language.openrouterFallback}/>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center mb-4">
|
|
||||||
<Check bind:check={$DataBase.openrouterMiddleOut} name={language.openrouterMiddleOut}/>
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
{#if $DataBase.aiModel === 'custom' || $DataBase.subModel === 'custom'}
|
{#if $DataBase.aiModel === 'custom' || $DataBase.subModel === 'custom'}
|
||||||
<span class="text-textcolor mt-2">{language.plugin}</span>
|
<span class="text-textcolor mt-2">{language.plugin}</span>
|
||||||
@@ -573,6 +566,10 @@
|
|||||||
<OobaSettings instructionMode={$DataBase.aiModel === 'ooba'} />
|
<OobaSettings instructionMode={$DataBase.aiModel === 'ooba'} />
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
{#if $DataBase.aiModel.startsWith('openrouter')}
|
||||||
|
<OpenrouterSettings />
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
{#if advancedBotSettings}
|
{#if advancedBotSettings}
|
||||||
{#if !$DataBase.promptTemplate}
|
{#if !$DataBase.promptTemplate}
|
||||||
|
|||||||
48
src/lib/Setting/Pages/OpenrouterSettings.svelte
Normal file
48
src/lib/Setting/Pages/OpenrouterSettings.svelte
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { language } from "src/lang";
|
||||||
|
import Arcodion from "src/lib/UI/Arcodion.svelte";
|
||||||
|
import Check from "src/lib/UI/GUI/CheckInput.svelte";
|
||||||
|
import { DataBase } from "src/ts/storage/database";
|
||||||
|
import SelectInput from "src/lib/UI/GUI/SelectInput.svelte";
|
||||||
|
import OptionInput from "src/lib/UI/GUI/OptionInput.svelte";
|
||||||
|
|
||||||
|
const openrouterProviders = [
|
||||||
|
"OpenAI",
|
||||||
|
"Anthropic",
|
||||||
|
"HuggingFace",
|
||||||
|
"Google",
|
||||||
|
"Mancer",
|
||||||
|
"Mancer 2",
|
||||||
|
"Together",
|
||||||
|
"DeepInfra",
|
||||||
|
"Azure",
|
||||||
|
"Modal",
|
||||||
|
"AnyScale",
|
||||||
|
"Replicate",
|
||||||
|
"Perplexity",
|
||||||
|
"Recursal",
|
||||||
|
"Fireworks",
|
||||||
|
"Mistral",
|
||||||
|
"Groq",
|
||||||
|
"Cohere",
|
||||||
|
"Lepton",
|
||||||
|
"OctoAI",
|
||||||
|
"Novita"
|
||||||
|
]
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Arcodion name="Openrouter Settings" styled>
|
||||||
|
<div class="flex items-center mb-4">
|
||||||
|
<Check bind:check={$DataBase.openrouterFallback} name={language.openrouterFallback}/>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center mb-4">
|
||||||
|
<Check bind:check={$DataBase.openrouterMiddleOut} name={language.openrouterMiddleOut}/>
|
||||||
|
</div>
|
||||||
|
<span class="mb-2 text-2xl font-bold mt-2">{language.provider}</span>
|
||||||
|
<SelectInput bind:value={$DataBase.openrouterProvider}>
|
||||||
|
<OptionInput value="">Auto (Default)</OptionInput>
|
||||||
|
{#each openrouterProviders as provider}
|
||||||
|
<OptionInput value={provider}>{provider}</OptionInput>
|
||||||
|
{/each}
|
||||||
|
</SelectInput>
|
||||||
|
</Arcodion>
|
||||||
@@ -460,6 +460,13 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
|
|||||||
body.top_a = db.top_a
|
body.top_a = db.top_a
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
body.transforms = db.openrouterMiddleOut ? ['middle-out'] : []
|
body.transforms = db.openrouterMiddleOut ? ['middle-out'] : []
|
||||||
|
|
||||||
|
if(db.openrouterProvider){
|
||||||
|
//@ts-ignore
|
||||||
|
body.provider = {
|
||||||
|
order: [db.openrouterProvider]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(aiModel === 'reverse_proxy' && db.reverseProxyOobaMode){
|
if(aiModel === 'reverse_proxy' && db.reverseProxyOobaMode){
|
||||||
|
|||||||
@@ -392,6 +392,7 @@ export function setDatabase(data:Database){
|
|||||||
data.top_a ??= 0
|
data.top_a ??= 0
|
||||||
data.customTokenizer ??= 'tik'
|
data.customTokenizer ??= 'tik'
|
||||||
data.instructChatTemplate ??= "chatml"
|
data.instructChatTemplate ??= "chatml"
|
||||||
|
data.openrouterProvider ??= ''
|
||||||
|
|
||||||
changeLanguage(data.language)
|
changeLanguage(data.language)
|
||||||
DataBase.set(data)
|
DataBase.set(data)
|
||||||
@@ -638,6 +639,7 @@ export interface Database{
|
|||||||
customTokenizer:string
|
customTokenizer:string
|
||||||
instructChatTemplate:string
|
instructChatTemplate:string
|
||||||
JinjaTemplate:string
|
JinjaTemplate:string
|
||||||
|
openrouterProvider:string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface customscript{
|
export interface customscript{
|
||||||
|
|||||||
Reference in New Issue
Block a user