[feat] fix horde support

This commit is contained in:
kwaroran
2024-01-03 19:36:47 +09:00
parent 99743f581a
commit 23ef56cb33
3 changed files with 41 additions and 35 deletions

View File

@@ -79,9 +79,12 @@
return "Mistral Medium"
case 'gemini-pro':
return "Gemini Pro"
case 'horde:::auto':
return 'Horde Auto Model'
default:
if(name.startsWith("horde:::")){
return name.replace(":::", " ")
const split = name.split(":::")
return `Horde ${split[1]}`
}
return name
}
@@ -178,20 +181,22 @@
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('novelai')}}>NovelAI Clio</button>
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('novelai_kayra')}}>NovelAI Kayra</button>
</Arcodion>
{#if showUnrec}
{#if isTauri ||isNodeServer}
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('deepai')}}>DeepAI</button>
{/if}
<Arcodion name="Horde">
{#await getHordeModels()}
<button class="p-2">Loading...</button>
{:then models}
{#each models as model}
<button on:click={() => {changeModel("horde:::" + model)}} class="p-2 hover:text-green-500">{model.trim()}</button>
{/each}
{/await}
<Arcodion name="Horde">
{#await getHordeModels()}
<button class="p-2">Loading...</button>
{:then models}
<button on:click={() => {changeModel("horde:::" + 'auto')}} class="p-2 hover:text-green-500">
Auto Model
<br><span class="text-textcolor2 text-sm">Performace: Auto</span>
</button>
{#each models as model}
<button on:click={() => {changeModel("horde:::" + model.name)}} class="p-2 hover:text-green-500">
{model.name.trim()}
<br><span class="text-textcolor2 text-sm">Performace: {model.performance.toFixed(1)}</span>
</button>
{/each}
{/await}
</Arcodion>
{/if}
{#if $DataBase.plugins.length > 0}
<button on:click={() => {changeModel('custom')}} class="hover:bg-selected px-6 py-2 text-lg" >Plugin</button>
{/if}

View File

@@ -1,20 +1,30 @@
import { sleep } from "../util"
let modelList:string[]|'loading' = null
interface HordeModel {
"performance": number,
"queued": number,
"jobs": number,
"eta": Number,
"type": "text",
"name": "aphrodite\/Undi95\/Toppy-M-7B",
"count": number
}
let modelList:HordeModel[]|'loading' = null
//until horde is ready
// modelList = []
export async function getHordeModels():Promise<string[]> {
export async function getHordeModels():Promise<HordeModel[]> {
if(modelList === null){
try {
modelList = 'loading'
const models = await fetch("https://stablehorde.net/api/v2/status/models?type=text")
modelList = ((await models.json()).map((a) => {
return a.name
}) as string[])
return modelList
const res = await models.json()
modelList = res
return res
} catch (error) {
modelList = null
return []

View File

@@ -1540,25 +1540,12 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
"prompt": proompt,
"params": {
"n": 1,
"frmtadsnsp": false,
"frmtrmblln": false,
"frmtrmspch": false,
"frmttriminc": false,
"max_context_length": db.maxContext + 100,
"max_length": db.maxResponse,
"rep_pen": 3,
"rep_pen_range": 0,
"rep_pen_slope": 10,
"singleline": false,
"temperature": db.temperature / 100,
"tfs": 1,
"top_a": 1,
"top_k": 100,
"top_p": 1,
"typical": 1,
"sampler_order": [
0
]
"top_k": db.top_k,
"top_p": db.top_p,
},
"trusted_workers": false,
"workerslow_workers": true,
@@ -1567,6 +1554,10 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
"models": [realModel, realModel.trim(), ' ' + realModel, realModel + ' ']
}
if(realModel === 'auto'){
delete argument.models
}
const da = await fetch("https://stablehorde.net/api/v2/generate/text/async", {
body: JSON.stringify(argument),
method: "POST",