feat: pipelines filter outlet

This commit is contained in:
Timothy J. Baek
2024-05-30 02:04:29 -07:00
parent d9ceb31674
commit ef8d84296e
3 changed files with 156 additions and 4 deletions

View File

@@ -49,6 +49,45 @@ export const getModels = async (token: string = '') => {
return models;
};
type ChatCompletedForm = {
model: string;
messages: string[];
chat_id: string;
};
export const chatCompleted = async (token: string, body: ChatCompletedForm) => {
let error = null;
const res = await fetch(`${WEBUI_BASE_URL}/api/chat/completed`, {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
...(token && { authorization: `Bearer ${token}` })
},
body: JSON.stringify(body)
})
.then(async (res) => {
if (!res.ok) throw await res.json();
return res.json();
})
.catch((err) => {
console.log(err);
if ('detail' in err) {
error = err.detail;
} else {
error = err;
}
return null;
});
if (error) {
throw error;
}
return res;
};
export const getPipelinesList = async (token: string = '') => {
let error = null;

View File

@@ -48,6 +48,7 @@
import { runWebSearch } from '$lib/apis/rag';
import Banner from '../common/Banner.svelte';
import { getUserSettings } from '$lib/apis/users';
import { chatCompleted } from '$lib/apis';
const i18n: Writable<i18nType> = getContext('i18n');
@@ -576,7 +577,8 @@
format: $settings.requestFormat ?? undefined,
keep_alive: $settings.keepAlive ?? undefined,
docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
citations: docs.length > 0,
chat_id: $chatId
});
if (res && res.ok) {
@@ -596,6 +598,27 @@
if (stopResponseFlag) {
controller.abort('User: Stop Response');
await cancelOllamaRequest(localStorage.token, currentRequestId);
} else {
const res = await chatCompleted(localStorage.token, {
model: model,
messages: messages.map((m) => ({
id: m.id,
role: m.role,
content: m.content,
timestamp: m.timestamp
})),
chat_id: $chatId
}).catch((error) => {
console.error(error);
return null;
});
if (res !== null) {
// Update chat history with the new messages
for (const message of res.messages) {
history.messages[message.id] = { ...history.messages[message.id], ...message };
}
}
}
currentRequestId = null;
@@ -829,7 +852,8 @@
frequency_penalty: $settings?.params?.frequency_penalty ?? undefined,
max_tokens: $settings?.params?.max_tokens ?? undefined,
docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
citations: docs.length > 0,
chat_id: $chatId
},
`${OPENAI_API_BASE_URL}`
);
@@ -855,6 +879,27 @@
if (stopResponseFlag) {
controller.abort('User: Stop Response');
} else {
const res = await chatCompleted(localStorage.token, {
model: model,
messages: messages.map((m) => ({
id: m.id,
role: m.role,
content: m.content,
timestamp: m.timestamp
})),
chat_id: $chatId
}).catch((error) => {
console.error(error);
return null;
});
if (res !== null) {
// Update chat history with the new messages
for (const message of res.messages) {
history.messages[message.id] = { ...history.messages[message.id], ...message };
}
}
}
break;