diff --git a/src/lib/Others/WelcomeRisu.svelte b/src/lib/Others/WelcomeRisu.svelte
index 82cb787c..d3404b1d 100644
--- a/src/lib/Others/WelcomeRisu.svelte
+++ b/src/lib/Others/WelcomeRisu.svelte
@@ -66,7 +66,8 @@
if(provider === 'openrouter'){
$DataBase.aiModel = 'openrouter'
$DataBase.subModel = 'openrouter'
- $DataBase.openrouterRequestModel = 'openrouter/auto'
+ $DataBase.openrouterRequestModel = 'risu/free'
+ $DataBase.maxContext = 6000
}
if(provider === 'horde'){
$DataBase.aiModel = 'horde:::auto'
diff --git a/src/lib/Setting/Pages/BotSettings.svelte b/src/lib/Setting/Pages/BotSettings.svelte
index eef8a05a..8435108c 100644
--- a/src/lib/Setting/Pages/BotSettings.svelte
+++ b/src/lib/Setting/Pages/BotSettings.svelte
@@ -209,8 +209,10 @@
Claude v1 100k
Claude v1.2
{:else}
+ Free Auto
+ Openrouter Auto
{#each m as model}
- {model}
+ {model.name}
{/each}
{/if}
diff --git a/src/ts/model/openrouter.ts b/src/ts/model/openrouter.ts
index 172530c9..860b3694 100644
--- a/src/ts/model/openrouter.ts
+++ b/src/ts/model/openrouter.ts
@@ -13,10 +13,36 @@ export async function openRouterModels() {
headers: headers
})
const res = await (await aim).json()
- return res.data.map((v:any) => {
- return v.id
+ return res.data.map((model: any) => {
+ let name = model.name
+ let price = model.pricing.prompt
+ if(price > 0){
+ name += ` - $${(price*1000).toFixed(5)}/1k`
+ }
+ else{
+ name += " - Free"
+ }
+ return {
+ id: model.id,
+ name: name,
+ price: price,
+ context_length: model.context_length,
+ }
+ }).sort((a: any, b: any) => {
+ return a.price - b.price
+ }).filter((model: any) => {
+ return model.price >= 0
})
} catch (error) {
return []
}
+}
+
+export async function getFreeOpenRouterModel(){
+ const models = await openRouterModels()
+ return models.filter((model: any) => {
+ return model.name.endsWith("Free")
+ }).sort((a: any, b: any) => {
+ return b.context_length - a.context_length
+ })[0].id ?? ''
}
\ No newline at end of file
diff --git a/src/ts/process/request.ts b/src/ts/process/request.ts
index 85bbe68b..dfed1ca5 100644
--- a/src/ts/process/request.ts
+++ b/src/ts/process/request.ts
@@ -20,6 +20,7 @@ import { cloneDeep } from "lodash";
import { supportsInlayImage } from "../image";
import { OaifixEmdash } from "../plugins/fixer";
import { Capacitor } from "@capacitor/core";
+import { getFreeOpenRouterModel } from "../model/openrouter";
@@ -279,11 +280,15 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
const oaiFunctionCall = oaiFunctions ? (arg.useEmotion ? {"name": "set_emotion"} : "auto") : undefined
let requestModel = (aiModel === 'reverse_proxy' || aiModel === 'openrouter') ? db.proxyRequestModel : aiModel
-
+ let openrouterRequestModel = db.openrouterRequestModel
if(aiModel === 'reverse_proxy' && db.proxyRequestModel === 'custom'){
requestModel = db.customProxyRequestModel
}
+ if(aiModel === 'openrouter' && db.openrouterRequestModel === 'risu/free'){
+ openrouterRequestModel = await getFreeOpenRouterModel()
+ }
+
if(aiModel.startsWith('mistral')){
requestModel = aiModel
@@ -384,7 +389,7 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
db.cipherChat = false
let body = ({
- model: aiModel === 'openrouter' ? db.openrouterRequestModel :
+ model: aiModel === 'openrouter' ? openrouterRequestModel :
requestModel === 'gpt35' ? 'gpt-3.5-turbo'
: requestModel === 'gpt35_0613' ? 'gpt-3.5-turbo-0613'
: requestModel === 'gpt35_16k' ? 'gpt-3.5-turbo-16k'
diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts
index 34c0a91b..0308f681 100644
--- a/src/ts/storage/database.ts
+++ b/src/ts/storage/database.ts
@@ -370,6 +370,7 @@ export function setDatabase(data:Database){
utilOverride: false
}
data.keiServerURL ??= ''
+ data.top_k ??= 0
changeLanguage(data.language)
DataBase.set(data)