[feat] add instruct

This commit is contained in:
kwaroran
2023-09-20 14:30:41 +09:00
parent 9e110ea12b
commit 93e6e5299b
2 changed files with 54 additions and 0 deletions

View File

@@ -25,6 +25,8 @@
return "GPT-3.5 Turbo 16k"
case "gpt35_16k_0613":
return "GPT-3.5 Turbo 16k 0613"
case 'instructgpt35':
return 'GPT-3.5 Turbo Instruct'
case "gpt4":
return "GPT-4"
case "gpt4_0301":
@@ -92,6 +94,7 @@
<Arcodion name="OpenAI GPT">
<button class="p-2 hover:text-green-500" on:click={() => {changeModel('gpt35')}}>GPT-3.5 Turbo</button>
<button class="p-2 hover:text-green-500" on:click={() => {changeModel('gpt35_16k')}}>GPT-3.5 Turbo 16K</button>
<button class="p-2 hover:text-green-500" on:click={() => {changeModel('instructgpt35')}}>GPT-3.5 Instruct</button>
<button class="p-2 hover:text-green-500" on:click={() => {changeModel('gpt4')}}>GPT-4</button>
<button class="p-2 hover:text-green-500" on:click={() => {changeModel('gpt4_32k')}}>GPT-4 32K</button>
{#if openAdv}

View File

@@ -450,6 +450,57 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
}
}
case 'instructgpt35':{
const prompt = formated.filter(m => m.content?.trim()).map(m => {
let author = '';
if(m.role == 'system'){
m.content = m.content.trim();
}
console.log(m.role +":"+m.content);
switch (m.role) {
case 'user': author = 'User'; break;
case 'assistant': author = 'Assistant'; break;
case 'system': author = 'Instruction'; break;
default: author = m.role; break;
}
return `\n## ${author}\n${m.content.trim()}`;
//return `\n\n${author}: ${m.content.trim()}`;
}).join("") + `\n## Response\n`;
const response = await globalFetch( "https://api.openai.com/v1/completions", {
rawResponse:false,
body: {
model: "gpt-3.5-turbo-instruct",
prompt: prompt,
max_tokens: maxTokens,
temperature: temperature,
top_p: 1,
stream: false,
stop:["\n### User:","### User:","User:"," User:"],
presence_penalty: arg.PresensePenalty || (db.PresensePenalty / 100),
frequency_penalty: arg.frequencyPenalty || (db.frequencyPenalty / 100),
},
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + db.openAIKey
},
});
if(!response.ok){
return {
type: 'fail',
result: (language.errors.httpError + `${JSON.stringify(response.data)}`)
}
}
const text = response.data.choices[0].text
return {
type: 'success',
result: text
}
}
case "textgen_webui":
case 'mancer':{
let streamUrl = db.textgenWebUIStreamURL.replace(/\/api.*/, "/api/v1/stream")