[feat] fix horde support
This commit is contained in:
@@ -79,9 +79,12 @@
|
|||||||
return "Mistral Medium"
|
return "Mistral Medium"
|
||||||
case 'gemini-pro':
|
case 'gemini-pro':
|
||||||
return "Gemini Pro"
|
return "Gemini Pro"
|
||||||
|
case 'horde:::auto':
|
||||||
|
return 'Horde Auto Model'
|
||||||
default:
|
default:
|
||||||
if(name.startsWith("horde:::")){
|
if(name.startsWith("horde:::")){
|
||||||
return name.replace(":::", " ")
|
const split = name.split(":::")
|
||||||
|
return `Horde ${split[1]}`
|
||||||
}
|
}
|
||||||
return name
|
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')}}>NovelAI Clio</button>
|
||||||
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('novelai_kayra')}}>NovelAI Kayra</button>
|
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('novelai_kayra')}}>NovelAI Kayra</button>
|
||||||
</Arcodion>
|
</Arcodion>
|
||||||
{#if showUnrec}
|
<Arcodion name="Horde">
|
||||||
{#if isTauri ||isNodeServer}
|
{#await getHordeModels()}
|
||||||
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('deepai')}}>DeepAI</button>
|
<button class="p-2">Loading...</button>
|
||||||
{/if}
|
{:then models}
|
||||||
<Arcodion name="Horde">
|
<button on:click={() => {changeModel("horde:::" + 'auto')}} class="p-2 hover:text-green-500">
|
||||||
{#await getHordeModels()}
|
Auto Model
|
||||||
<button class="p-2">Loading...</button>
|
<br><span class="text-textcolor2 text-sm">Performace: Auto</span>
|
||||||
{:then models}
|
</button>
|
||||||
{#each models as model}
|
{#each models as model}
|
||||||
<button on:click={() => {changeModel("horde:::" + model)}} class="p-2 hover:text-green-500">{model.trim()}</button>
|
<button on:click={() => {changeModel("horde:::" + model.name)}} class="p-2 hover:text-green-500">
|
||||||
{/each}
|
{model.name.trim()}
|
||||||
{/await}
|
<br><span class="text-textcolor2 text-sm">Performace: {model.performance.toFixed(1)}</span>
|
||||||
|
</button>
|
||||||
|
{/each}
|
||||||
|
{/await}
|
||||||
</Arcodion>
|
</Arcodion>
|
||||||
{/if}
|
|
||||||
{#if $DataBase.plugins.length > 0}
|
{#if $DataBase.plugins.length > 0}
|
||||||
<button on:click={() => {changeModel('custom')}} class="hover:bg-selected px-6 py-2 text-lg" >Plugin</button>
|
<button on:click={() => {changeModel('custom')}} class="hover:bg-selected px-6 py-2 text-lg" >Plugin</button>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -1,20 +1,30 @@
|
|||||||
import { sleep } from "../util"
|
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
|
//until horde is ready
|
||||||
// modelList = []
|
// modelList = []
|
||||||
|
|
||||||
export async function getHordeModels():Promise<string[]> {
|
export async function getHordeModels():Promise<HordeModel[]> {
|
||||||
|
|
||||||
if(modelList === null){
|
if(modelList === null){
|
||||||
try {
|
try {
|
||||||
modelList = 'loading'
|
modelList = 'loading'
|
||||||
const models = await fetch("https://stablehorde.net/api/v2/status/models?type=text")
|
const models = await fetch("https://stablehorde.net/api/v2/status/models?type=text")
|
||||||
modelList = ((await models.json()).map((a) => {
|
const res = await models.json()
|
||||||
return a.name
|
modelList = res
|
||||||
}) as string[])
|
return res
|
||||||
return modelList
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
modelList = null
|
modelList = null
|
||||||
return []
|
return []
|
||||||
|
|||||||
@@ -1540,25 +1540,12 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
|
|||||||
"prompt": proompt,
|
"prompt": proompt,
|
||||||
"params": {
|
"params": {
|
||||||
"n": 1,
|
"n": 1,
|
||||||
"frmtadsnsp": false,
|
|
||||||
"frmtrmblln": false,
|
|
||||||
"frmtrmspch": false,
|
|
||||||
"frmttriminc": false,
|
|
||||||
"max_context_length": db.maxContext + 100,
|
"max_context_length": db.maxContext + 100,
|
||||||
"max_length": db.maxResponse,
|
"max_length": db.maxResponse,
|
||||||
"rep_pen": 3,
|
|
||||||
"rep_pen_range": 0,
|
|
||||||
"rep_pen_slope": 10,
|
|
||||||
"singleline": false,
|
"singleline": false,
|
||||||
"temperature": db.temperature / 100,
|
"temperature": db.temperature / 100,
|
||||||
"tfs": 1,
|
"top_k": db.top_k,
|
||||||
"top_a": 1,
|
"top_p": db.top_p,
|
||||||
"top_k": 100,
|
|
||||||
"top_p": 1,
|
|
||||||
"typical": 1,
|
|
||||||
"sampler_order": [
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"trusted_workers": false,
|
"trusted_workers": false,
|
||||||
"workerslow_workers": true,
|
"workerslow_workers": true,
|
||||||
@@ -1567,6 +1554,10 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
|
|||||||
"models": [realModel, realModel.trim(), ' ' + realModel, realModel + ' ']
|
"models": [realModel, realModel.trim(), ' ' + realModel, realModel + ' ']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(realModel === 'auto'){
|
||||||
|
delete argument.models
|
||||||
|
}
|
||||||
|
|
||||||
const da = await fetch("https://stablehorde.net/api/v2/generate/text/async", {
|
const da = await fetch("https://stablehorde.net/api/v2/generate/text/async", {
|
||||||
body: JSON.stringify(argument),
|
body: JSON.stringify(argument),
|
||||||
method: "POST",
|
method: "POST",
|
||||||
|
|||||||
Reference in New Issue
Block a user