forked from open-webui/open-webui
feat: web rag support
This commit is contained in:
parent
5e672d9f79
commit
28226a6f97
5 changed files with 131 additions and 33 deletions
|
@ -212,8 +212,12 @@ const convertOpenAIMessages = (convo) => {
|
|||
const message = mapping[message_id];
|
||||
currentId = message_id;
|
||||
try {
|
||||
if (messages.length == 0 && (message['message'] == null ||
|
||||
(message['message']['content']['parts']?.[0] == '' && message['message']['content']['text'] == null))) {
|
||||
if (
|
||||
messages.length == 0 &&
|
||||
(message['message'] == null ||
|
||||
(message['message']['content']['parts']?.[0] == '' &&
|
||||
message['message']['content']['text'] == null))
|
||||
) {
|
||||
// Skip chat messages with no content
|
||||
continue;
|
||||
} else {
|
||||
|
@ -222,7 +226,10 @@ const convertOpenAIMessages = (convo) => {
|
|||
parentId: lastId,
|
||||
childrenIds: message['children'] || [],
|
||||
role: message['message']?.['author']?.['role'] !== 'user' ? 'assistant' : 'user',
|
||||
content: message['message']?.['content']?.['parts']?.[0] || message['message']?.['content']?.['text'] || '',
|
||||
content:
|
||||
message['message']?.['content']?.['parts']?.[0] ||
|
||||
message['message']?.['content']?.['text'] ||
|
||||
'',
|
||||
model: 'gpt-3.5-turbo',
|
||||
done: true,
|
||||
context: null
|
||||
|
@ -231,7 +238,7 @@ const convertOpenAIMessages = (convo) => {
|
|||
lastId = currentId;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("Error with", message, "\nError:", error);
|
||||
console.log('Error with', message, '\nError:', error);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -256,31 +263,31 @@ const validateChat = (chat) => {
|
|||
// Because ChatGPT sometimes has features we can't use like DALL-E or migh have corrupted messages, need to validate
|
||||
const messages = chat.messages;
|
||||
|
||||
// Check if messages array is empty
|
||||
if (messages.length === 0) {
|
||||
return false;
|
||||
}
|
||||
// Check if messages array is empty
|
||||
if (messages.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Last message's children should be an empty array
|
||||
const lastMessage = messages[messages.length - 1];
|
||||
if (lastMessage.childrenIds.length !== 0) {
|
||||
return false;
|
||||
}
|
||||
// Last message's children should be an empty array
|
||||
const lastMessage = messages[messages.length - 1];
|
||||
if (lastMessage.childrenIds.length !== 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// First message's parent should be null
|
||||
const firstMessage = messages[0];
|
||||
if (firstMessage.parentId !== null) {
|
||||
return false;
|
||||
}
|
||||
// First message's parent should be null
|
||||
const firstMessage = messages[0];
|
||||
if (firstMessage.parentId !== null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Every message's content should be a string
|
||||
for (let message of messages) {
|
||||
if (typeof message.content !== 'string') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// Every message's content should be a string
|
||||
for (let message of messages) {
|
||||
if (typeof message.content !== 'string') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
return true;
|
||||
};
|
||||
|
||||
export const convertOpenAIChats = (_chats) => {
|
||||
|
@ -298,8 +305,22 @@ export const convertOpenAIChats = (_chats) => {
|
|||
chat: chat,
|
||||
timestamp: convo['timestamp']
|
||||
});
|
||||
} else { failed ++}
|
||||
} else {
|
||||
failed++;
|
||||
}
|
||||
}
|
||||
console.log(failed, "Conversations could not be imported");
|
||||
console.log(failed, 'Conversations could not be imported');
|
||||
return chats;
|
||||
};
|
||||
|
||||
export const isValidHttpUrl = (string) => {
|
||||
let url;
|
||||
|
||||
try {
|
||||
url = new URL(string);
|
||||
} catch (_) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return url.protocol === 'http:' || url.protocol === 'https:';
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue