some fixes

pull/251/head
Alex 1 year ago
parent d2358c399d
commit 8380858a82

@ -46,7 +46,7 @@ export function fetchAnswerApi(
if (response.ok) { if (response.ok) {
return response.json(); return response.json();
} else { } else {
Promise.reject(response); return Promise.reject(new Error(response.statusText));
} }
}) })
.then((data) => { .then((data) => {

@ -9,57 +9,57 @@ const initialState: ConversationState = {
status: 'idle', status: 'idle',
}; };
const API_STREAMING = import.meta.env.API_STREAMING || false; const API_STREAMING = import.meta.env.API_STREAMING || true;
export const fetchAnswer = createAsyncThunk< export const fetchAnswer = createAsyncThunk<
Answer | void, Answer,
{ question: string }, { question: string },
{ dispatch: Dispatch<any>; state: RootState } { dispatch: Dispatch<any>; state: RootState }
>('fetchAnswer', async ({ question }, { dispatch, getState }) => { >('fetchAnswer', async ({ question }, { dispatch, getState }) => {
const state = getState(); const state = getState();
if (API_STREAMING) { if (state.preference) {
fetchAnswerSteaming( if (API_STREAMING) {
question, fetchAnswerSteaming(
state.preference.apiKey, question,
state.preference.selectedDocs!, state.preference.apiKey,
(event) => { state.preference.selectedDocs!,
const data = JSON.parse(event.data); (event) => {
console.log(data); const data = JSON.parse(event.data);
console.log(data);
// check if the 'end' event has been received // check if the 'end' event has been received
if (data.type === 'end') { if (data.type === 'end') {
// set status to 'idle' // set status to 'idle'
dispatch(conversationSlice.actions.setStatus('idle')); dispatch(conversationSlice.actions.setStatus('idle'));
} else { } else {
const result = data.answer; const result = data.answer;
dispatch( dispatch(
updateStreamingQuery({ updateStreamingQuery({
index: state.conversation.queries.length - 1, index: state.conversation.queries.length - 1,
query: { response: result }, query: { response: result },
}), }),
); );
} }
}, },
); );
} else { } else {
const answer = await fetchAnswerApi( const answer = await fetchAnswerApi(
question, question,
state.preference.apiKey, state.preference.apiKey,
state.preference.selectedDocs!, state.preference.selectedDocs!,
state.conversation.queries, state.conversation.queries,
); );
dispatch( if (answer) {
// conversationSlice.actions.addQuery({ dispatch(
// question: question, updateQuery({
// response: answer, index: state.conversation.queries.length - 1,
// }), query: { response: answer.answer },
updateQuery({ }),
index: state.conversation.queries.length - 1, );
query: { response: answer.answer }, dispatch(conversationSlice.actions.setStatus('idle'));
}), }
); }
dispatch(conversationSlice.actions.setStatus('idle'));
} }
}); });

Loading…
Cancel
Save