@ -65,7 +65,7 @@ const remove_cancel_button = async () => {
const ask _gpt = async ( ) => {
const ask _gpt = async ( ) => {
regenerate . classList . add ( ` regenerate-hidden ` ) ;
regenerate . classList . add ( ` regenerate-hidden ` ) ;
messages = await get _messages ( window . conversation _id ) ;
messages = await get _messages ( window . conversation _id ) ;
try {
window . scrollTo ( 0 , 0 ) ;
window . scrollTo ( 0 , 0 ) ;
window . controller = new AbortController ( ) ;
window . controller = new AbortController ( ) ;
@ -95,9 +95,7 @@ const ask_gpt = async () => {
message _box . scrollTop = message _box . scrollHeight ;
message _box . scrollTop = message _box . scrollHeight ;
window . scrollTo ( 0 , 0 ) ;
window . scrollTo ( 0 , 0 ) ;
await new Promise ( ( r ) => setTimeout ( r , 1000 ) ) ;
try {
window . scrollTo ( 0 , 0 ) ;
const response = await fetch ( ` /backend-api/v2/conversation ` , {
const response = await fetch ( ` /backend-api/v2/conversation ` , {
method : ` POST ` ,
method : ` POST ` ,
signal : window . controller . signal ,
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 ) {
while ( true ) {
const { value , done } = await reader . read ( ) ;
const { value , done } = await reader . read ( ) ;
if ( done ) break ;
if ( done ) break ;
@ -142,43 +142,29 @@ const ask_gpt = async () => {
}
}
if ( text . includes ( ` G4F_ERROR ` ) ) {
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" ;
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 ) {
} catch ( e ) {
message _box . scrollTop = message _box . scrollHeight ;
await remove _cancel _button ( ) ;
prompt _lock = false ;
await load _conversations ( 20 , 0 ) ;
console . log ( e ) ;
console . log ( e ) ;
let cursorDiv = document . getElementById ( ` cursor ` ) ;
let cursorDiv = document . getElementById ( ` cursor ` ) ;
if ( cursorDiv ) cursorDiv . parentNode . removeChild ( cursorDiv ) ;
if ( cursorDiv ) cursorDiv . parentNode . removeChild ( cursorDiv ) ;
if ( e . name != ` AbortError ` ) {
if ( e . name != ` AbortError ` ) {
let error _message = ` oops ! something went wrong, please try again / reload. [stacktrace in console] ` ;
text = ` oops ! something went wrong, please try again / reload. [stacktrace in console] ` ;
document . getElementById ( ` gpt_ ${ window . token } ` ) . innerHTML = text ;
document . getElementById ( ` gpt_ ${ window . token } ` ) . innerHTML = error _message ;
add _message ( window . conversation _id , "assistant" , error _message ) ;
} else {
} else {
document . getElementById ( ` gpt_ ${ window . token } ` ) . innerHTML += ` [aborted] ` ;
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 ` ) ;
regenerate . classList . remove ( ` regenerate-hidden ` ) ;
} ;
} ;