Add openrouter provider

This commit is contained in:
kwaroran
2024-04-21 14:24:26 +09:00
parent e23cfb2835
commit e93f625ebd
4 changed files with 62 additions and 8 deletions

View File

@@ -24,6 +24,7 @@
import OobaSettings from "./OobaSettings.svelte";
import Arcodion from "src/lib/UI/Arcodion.svelte";
import { startsWith } from "lodash";
import OpenrouterSettings from "./OpenrouterSettings.svelte";
let tokens = {
mainPrompt: 0,
@@ -261,14 +262,6 @@
<Check bind:check={$DataBase.useStreaming} name={`Response ${language.streaming}`}/>
</div>
{/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'}
<span class="text-textcolor mt-2">{language.plugin}</span>
@@ -573,6 +566,10 @@
<OobaSettings instructionMode={$DataBase.aiModel === 'ooba'} />
{/if}
{#if $DataBase.aiModel.startsWith('openrouter')}
<OpenrouterSettings />
{/if}
{#if advancedBotSettings}
{#if !$DataBase.promptTemplate}

View 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>

View File

@@ -460,6 +460,13 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
body.top_a = db.top_a
//@ts-ignore
body.transforms = db.openrouterMiddleOut ? ['middle-out'] : []
if(db.openrouterProvider){
//@ts-ignore
body.provider = {
order: [db.openrouterProvider]
}
}
}
if(aiModel === 'reverse_proxy' && db.reverseProxyOobaMode){

View File

@@ -392,6 +392,7 @@ export function setDatabase(data:Database){
data.top_a ??= 0
data.customTokenizer ??= 'tik'
data.instructChatTemplate ??= "chatml"
data.openrouterProvider ??= ''
changeLanguage(data.language)
DataBase.set(data)
@@ -638,6 +639,7 @@ export interface Database{
customTokenizer:string
instructChatTemplate:string
JinjaTemplate:string
openrouterProvider:string
}
export interface customscript{