@ -65,39 +65,37 @@ const remove_cancel_button = async () => {
const ask _gpt = async ( ) => {
regenerate . classList . add ( ` regenerate-hidden ` ) ;
messages = await get _messages ( window . conversation _id ) ;
try {
window . scrollTo ( 0 , 0 ) ;
window . controller = new AbortController ( ) ;
jailbreak = document . getElementById ( "jailbreak" ) ;
provider = document . getElementById ( "provider" ) ;
model = document . getElementById ( "model" ) ;
prompt _lock = true ;
window . text = ` ` ;
window . scrollTo ( 0 , 0 ) ;
window . controller = new AbortController ( ) ;
stop _generating . classList . remove ( ` stop_generating-hidden ` ) ;
jailbreak = document . getElementById ( "jailbreak" ) ;
provider = document . getElementById ( "provider" ) ;
model = document . getElementById ( "model" ) ;
prompt _lock = true ;
window . text = ` ` ;
message _box . scrollTop = message _box . scrollHeight ;
window . scrollTo ( 0 , 0 ) ;
await new Promise ( ( r ) => setTimeout ( r , 500 ) ) ;
window . scrollTo ( 0 , 0 ) ;
stop _generating . classList . remove ( ` stop_generating-hidden ` ) ;
message _box . innerHTML += `
< div class = "message" >
< div class = "assistant" >
$ { gpt _image } < i class = "fa-regular fa-phone-arrow-down-left" > < / i >
< / d i v >
< div class = "content" id = "gpt_${window.token}" >
< div id = "cursor" > < / d i v >
< / d i v >
< / d i v >
` ;
message _box . scrollTop = message _box . scrollHeight ;
window . scrollTo ( 0 , 0 ) ;
await new Promise ( ( r ) => setTimeout ( r , 500 ) ) ;
window . scrollTo ( 0 , 0 ) ;
message _box . scrollTop = message _box . scrollHeight ;
window . scrollTo ( 0 , 0 ) ;
await new Promise ( ( r ) => setTimeout ( r , 1000 ) ) ;
window . scrollTo ( 0 , 0 ) ;
message _box . innerHTML += `
< div class = "message" >
< div class = "assistant" >
$ { gpt _image } < i class = "fa-regular fa-phone-arrow-down-left" > < / i >
< / d i v >
< div class = "content" id = "gpt_${window.token}" >
< div id = "cursor" > < / d i v >
< / d i v >
< / d i v >
` ;
message _box . scrollTop = message _box . scrollHeight ;
window . scrollTo ( 0 , 0 ) ;
try {
const response = await fetch ( ` /backend-api/v2/conversation ` , {
method : ` POST ` ,
signal : window . controller . signal ,
@ -122,8 +120,10 @@ const ask_gpt = async () => {
} ) ,
} ) ;
const reader = response . body . getReader ( ) ;
await new Promise ( ( r ) => setTimeout ( r , 1000 ) ) ;
window . scrollTo ( 0 , 0 ) ;
const reader = response . body . getReader ( ) ;
while ( true ) {
const { value , done } = await reader . read ( ) ;
if ( done ) break ;
@ -142,43 +142,29 @@ const ask_gpt = async () => {
}
if ( text . includes ( ` G4F_ERROR ` ) ) {
console . log ( "response" , text ) ;
document . getElementById ( ` gpt_ ${ window . token } ` ) . innerHTML = "An error occured, please try again, if the problem persists, please use a other model or provider" ;
}
add _message ( window . conversation _id , "assistant" , text ) ;
message _box . scrollTop = message _box . scrollHeight ;
await remove _cancel _button ( ) ;
prompt _lock = false ;
await load _conversations ( 20 , 0 ) ;
window . scrollTo ( 0 , 0 ) ;
} catch ( e ) {
message _box . scrollTop = message _box . scrollHeight ;
await remove _cancel _button ( ) ;
prompt _lock = false ;
await load _conversations ( 20 , 0 ) ;
console . log ( e ) ;
let cursorDiv = document . getElementById ( ` cursor ` ) ;
if ( cursorDiv ) cursorDiv . parentNode . removeChild ( cursorDiv ) ;
if ( e . name != ` AbortError ` ) {
let error _message = ` oops ! something went wrong, please try again / reload. [stacktrace in console] ` ;
document . getElementById ( ` gpt_ ${ window . token } ` ) . innerHTML = error _message ;
add _message ( window . conversation _id , "assistant" , error _message ) ;
text = ` oops ! something went wrong, please try again / reload. [stacktrace in console] ` ;
document . getElementById ( ` gpt_ ${ window . token } ` ) . innerHTML = text ;
} else {
document . getElementById ( ` gpt_ ${ window . token } ` ) . innerHTML += ` [aborted] ` ;
add_message ( window . conversation _id , "assistant" , text + ` [aborted] ` ) ;
text + = ` [aborted] `
}
window . scrollTo ( 0 , 0 ) ;
}
add _message ( window . conversation _id , "assistant" , text ) ;
message _box . scrollTop = message _box . scrollHeight ;
await remove _cancel _button ( ) ;
prompt _lock = false ;
window . scrollTo ( 0 , 0 ) ;
await load _conversations ( 20 , 0 ) ;
regenerate . classList . remove ( ` regenerate-hidden ` ) ;
} ;