add handleVectaraMetadata function in UI

This commit is contained in:
chungyau97 2023-08-25 10:10:24 +08:00
parent 889fdc4673
commit 37c2f544bd
1 changed files with 22 additions and 1 deletions

View File

@ -64,9 +64,27 @@ export const ChatMessage = ({ open, chatflowid, isDialog }) => {
window.open(data, '_blank')
}
const handleVectaraMetadata = (message) => {
if (message.sourceDocuments && message.sourceDocuments[0].metadata.length)
message.sourceDocuments = message.sourceDocuments.map((docs) => {
const newMetadata = docs.metadata.reduce((newMetadata, metadata) => {
newMetadata[metadata.name] = metadata.value
return newMetadata
}, {})
return {
pageContent: docs.pageContent,
metadata: newMetadata
}
})
return message
}
const removeDuplicateURL = (message) => {
const visitedURLs = []
const newSourceDocuments = []
message = handleVectaraMetadata(message)
message.sourceDocuments.forEach((source) => {
if (isValidURL(source.metadata.source) && !visitedURLs.includes(source.metadata.source)) {
visitedURLs.push(source.metadata.source)
@ -154,7 +172,10 @@ export const ChatMessage = ({ open, chatflowid, isDialog }) => {
const response = await predictionApi.sendMessageAndGetPrediction(chatflowid, params)
if (response.data) {
const data = response.data
let data = response.data
data = handleVectaraMetadata(data)
if (typeof data === 'object' && data.text && data.sourceDocuments) {
if (!isChatFlowAvailableToStream) {
setMessages((prevMessages) => [