Skip to content

Commit 67e69f3

Browse files
committed
rag upload request return somthin
1 parent 3ae809f commit 67e69f3

File tree

2 files changed

+13
-38
lines changed

2 files changed

+13
-38
lines changed

src/client/components/Rag.tsx

Lines changed: 11 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
import React, { useRef, useState } from 'react'
1+
import React, { useState } from 'react'
22
import { TextField, Button, Box, Typography, Table, TableHead, TableBody, TableRow, TableCell, Paper, IconButton, Dialog, DialogTitle, styled } from '@mui/material'
33
import apiClient from '../util/apiClient'
44
import { useMutation, useQuery } from '@tanstack/react-query'
55
import { CloudUpload, Settings } from '@mui/icons-material'
66
import Markdown from './Banner/Markdown'
7+
import { useSnackbar } from 'notistack'
78

89
type RagResponse = {
910
id: string
@@ -67,17 +68,12 @@ const useUploadMutation = (index: RagIndexAttributes | null) => {
6768
formData.append('files', file)
6869
})
6970

70-
// Returns a stream
7171
const response = await apiClient.put(`/rag/indices/${index.id}/upload`, formData, {
7272
headers: {
7373
'Content-Type': 'multipart/form-data',
7474
},
75-
responseType: 'stream',
76-
77-
7875
})
7976

80-
console.log('Upload response:', response.data)
8177
return response.data
8278
},
8379
})
@@ -97,6 +93,7 @@ const VisuallyHiddenInput = styled('input')({
9793
})
9894

9995
const Rag: React.FC = () => {
96+
const { enqueueSnackbar } = useSnackbar()
10097
const { data: indices, refetch } = useRagIndices()
10198
const createIndexMutation = useCreateRagIndexMutation()
10299
const deleteIndexMutation = useDeleteRagIndexMutation()
@@ -107,7 +104,6 @@ const Rag: React.FC = () => {
107104
const [response, setResponse] = useState<RagResponse[] | null>(null)
108105
const uploadMutation = useUploadMutation(selectedIndex)
109106
const [modalOpen, setModalOpen] = useState(false)
110-
const progressLogs = useRef<HTMLParagraphElement>()
111107

112108
const handleSubmit = async (event: React.FormEvent) => {
113109
event.preventDefault()
@@ -122,45 +118,25 @@ const Rag: React.FC = () => {
122118
setInputValue('')
123119
}
124120

125-
// Processes the upload progress stream which returns JSON objects
126-
const processUploadProgressStream = (stream) => {
127-
stream.on('data', (data: any) => {
128-
const parsedData = JSON.parse(data.toString())
129-
console.log('Parsed data:', parsedData)
130-
if (parsedData.stage === 'done') {
131-
progressLogs.current.innerHTML += `Upload completed: ${JSON.stringify(parsedData)}\n`
132-
} else if (parsedData.error) {
133-
progressLogs.current.innerHTML += `Error: ${parsedData.error}\n`
134-
} else {
135-
progressLogs.current.innerHTML += `Progress: ${JSON.stringify(parsedData)}\n`
136-
}
137-
})
138-
stream.on('end', () => {
139-
progressLogs.current.innerHTML += 'Upload stream ended.\n'
140-
})
141-
stream.on('error', (err: any) => {
142-
progressLogs.current.innerHTML += `Error: ${err}\n`
143-
})
144-
stream.on('close', () => {
145-
progressLogs.current.innerHTML += 'Upload stream closed.\n'
146-
})
147-
}
148-
149121
return (
150122
<Box sx={{ display: 'flex', gap: 2 }}>
151123
<Dialog open={!!selectedIndex && modalOpen} onClose={() => setModalOpen(false)}>
152124
<DialogTitle>Edit {selectedIndex?.metadata?.name}</DialogTitle>
153125
<Box sx={{ padding: 2, display: 'flex', gap: 2 }}>
154-
<Button component="label" role={undefined} variant="contained" tabIndex={-1} startIcon={<CloudUpload />}>
155-
Upload files
126+
<Button component="label" role={undefined} variant="contained" tabIndex={-1} startIcon={<CloudUpload />} disabled={uploadMutation.isPending}>
127+
{uploadMutation.isPending ? 'Uploading...' : 'Upload Files'}
156128
<VisuallyHiddenInput
157129
type="file"
158130
onChange={async (event) => {
159131
const files = event.target.files
160132
console.log('Files selected:', files)
161133
if (files && files.length > 0) {
162-
const stream = await uploadMutation.mutateAsync(files)
163-
processUploadProgressStream(stream)
134+
await uploadMutation.mutateAsync(files)
135+
refetch()
136+
setModalOpen(false)
137+
enqueueSnackbar('Files uploaded successfully', {
138+
variant: 'success',
139+
})
164140
}
165141
}}
166142
multiple
@@ -180,9 +156,6 @@ const Rag: React.FC = () => {
180156
Delete Index
181157
</Button>
182158
</Box>
183-
<Box sx={{ padding: 2 }}>
184-
<p ref={progressLogs} style={{ whiteSpace: 'pre-wrap' }} />
185-
</Box>
186159
</Dialog>
187160
<Box>
188161
<Typography variant="h4" mb="1rem">

src/server/routes/rag.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ router.put('/indices/:id/upload', [indexUploadDirMiddleware, uploadMiddleware],
135135
const openAiClient = getAzureOpenAIClient(EMBED_MODEL)
136136

137137
await ingestionPipeline(openAiClient, `uploads/rag/${id}`, ragIndex)
138+
139+
res.json({ message: 'Files uploaded and processed' })
138140
})
139141

140142
const RagIndexQuerySchema = z.object({

0 commit comments

Comments
 (0)