Merge remote-tracking branch 'origin/new-page-framework' into dev_ty_06_end

This commit is contained in:
aries_ckt 2023-07-05 14:59:56 +08:00
commit 753614ae8c
3 changed files with 220 additions and 122 deletions

View File

@ -11,7 +11,7 @@ import {
Link Link
} from '@/lib/mui' } from '@/lib/mui'
import { Popover, Pagination } from 'antd' import { Popover, Pagination } from 'antd'
import { sendSpaceGetRequest, sendSpacePostRequest, sendSpaceUploadPostRequest } from '@/utils/request'; import { sendSpacePostRequest } from '@/utils/request'
const page_size = 20 const page_size = 20
const ChunkList = () => { const ChunkList = () => {
@ -24,11 +24,14 @@ const ChunkList = () => {
const [chunkList, setChunkList] = useState<any>([]) const [chunkList, setChunkList] = useState<any>([])
useEffect(() => { useEffect(() => {
async function fetchChunks() { async function fetchChunks() {
const data = await sendSpacePostRequest(`/knowledge/${spaceName}/chunk/list`, { const data = await sendSpacePostRequest(
`/knowledge/${spaceName}/chunk/list`,
{
document_id: documentId, document_id: documentId,
page: 1, page: 1,
page_size page_size
}) }
)
if (data.success) { if (data.success) {
setChunkList(data.data.data) setChunkList(data.data.data)
setTotal(data.data.total) setTotal(data.data.total)
@ -141,11 +144,14 @@ const ChunkList = () => {
current={current} current={current}
total={total} total={total}
onChange={async (page) => { onChange={async (page) => {
const data = await sendSpacePostRequest(`/knowledge/${spaceName}/chunk/list`, { const data = await sendSpacePostRequest(
`/knowledge/${spaceName}/chunk/list`,
{
document_id: documentId, document_id: documentId,
page, page,
page_size page_size
}) }
)
if (data.success) { if (data.success) {
setChunkList(data.data.data) setChunkList(data.data.data)
setTotal(data.data.total) setTotal(data.data.total)

View File

@ -21,11 +21,14 @@ import {
} from '@/lib/mui' } from '@/lib/mui'
import moment from 'moment' import moment from 'moment'
import { InboxOutlined } from '@ant-design/icons' import { InboxOutlined } from '@ant-design/icons'
import CheckCircleOutlinedIcon from '@mui/icons-material/CheckCircleOutlined'; import CheckCircleOutlinedIcon from '@mui/icons-material/CheckCircleOutlined'
import CachedIcon from '@mui/icons-material/Cached'; import CachedIcon from '@mui/icons-material/Cached'
import type { UploadProps } from 'antd' import type { UploadProps } from 'antd'
import { Upload, Pagination, Popover, message } from 'antd' import { Upload, Pagination, Popover, message } from 'antd'
import { sendSpaceGetRequest, sendSpacePostRequest, sendSpaceUploadPostRequest } from '@/utils/request'; import {
sendSpacePostRequest,
sendSpaceUploadPostRequest
} from '@/utils/request'
const { Dragger } = Upload const { Dragger } = Upload
const Item = styled(Sheet)(({ theme }) => ({ const Item = styled(Sheet)(({ theme }) => ({
@ -95,10 +98,13 @@ const Documents = () => {
} }
useEffect(() => { useEffect(() => {
async function fetchDocuments() { async function fetchDocuments() {
const data = await sendSpacePostRequest(`/knowledge/${spaceName}/document/list`, { const data = await sendSpacePostRequest(
`/knowledge/${spaceName}/document/list`,
{
page: 1, page: 1,
page_size page_size
}) }
)
if (data.success) { if (data.success) {
setDocuments(data.data.data) setDocuments(data.data.data)
setTotal(data.data.total) setTotal(data.data.total)
@ -235,9 +241,12 @@ const Documents = () => {
marginRight: '20px' marginRight: '20px'
}} }}
onClick={async () => { onClick={async () => {
const data = await sendSpacePostRequest(`/knowledge/${spaceName}/document/sync`, { const data = await sendSpacePostRequest(
`/knowledge/${spaceName}/document/sync`,
{
doc_ids: [row.id] doc_ids: [row.id]
}) }
)
if (data.success) { if (data.success) {
message.success('success') message.success('success')
} else { } else {
@ -245,7 +254,8 @@ const Documents = () => {
} }
}} }}
> >
Synch<CachedIcon /> Synch
<CachedIcon />
</Button> </Button>
<Button <Button
variant="outlined" variant="outlined"
@ -278,10 +288,13 @@ const Documents = () => {
current={current} current={current}
total={total} total={total}
onChange={async (page) => { onChange={async (page) => {
const data = await sendSpacePostRequest(`/knowledge/${spaceName}/document/list`, { const data = await sendSpacePostRequest(
`/knowledge/${spaceName}/document/list`,
{
page, page,
page_size page_size
}) }
)
if (data.success) { if (data.success) {
setDocuments(data.data.data) setDocuments(data.data.data)
setTotal(data.data.total) setTotal(data.data.total)
@ -324,7 +337,11 @@ const Documents = () => {
color: activeStep === index ? '#2AA3FF' : '' color: activeStep === index ? '#2AA3FF' : ''
}} }}
> >
{index < activeStep ? <CheckCircleOutlinedIcon /> : `${index + 1}.`} {index < activeStep ? (
<CheckCircleOutlinedIcon />
) : (
`${index + 1}.`
)}
{`${item}`} {`${item}`}
</Item> </Item>
))} ))}
@ -455,23 +472,32 @@ const Documents = () => {
message.error('Please input the Web Page URL') message.error('Please input the Web Page URL')
return return
} }
const data = await sendSpacePostRequest(`/knowledge/${spaceName}/document/add`, { const data = await sendSpacePostRequest(
`/knowledge/${spaceName}/document/add`,
{
doc_name: documentName, doc_name: documentName,
content: webPageUrl, content: webPageUrl,
doc_type: 'URL' doc_type: 'URL'
}) }
)
data.success && data.success &&
synchChecked && synchChecked &&
sendSpacePostRequest(`/knowledge/${spaceName}/document/sync`, { sendSpacePostRequest(
`/knowledge/${spaceName}/document/sync`,
{
doc_ids: [data.data] doc_ids: [data.data]
}) }
)
if (data.success) { if (data.success) {
message.success('success') message.success('success')
setIsAddDocumentModalShow(false) setIsAddDocumentModalShow(false)
const data = await sendSpacePostRequest(`/knowledge/${spaceName}/document/list`, { const data = await sendSpacePostRequest(
`/knowledge/${spaceName}/document/list`,
{
page: current, page: current,
page_size page_size
}) }
)
if (data.success) { if (data.success) {
setDocuments(data.data.data) setDocuments(data.data.data)
setTotal(data.data.total) setTotal(data.data.total)
@ -489,19 +515,28 @@ const Documents = () => {
formData.append('doc_name', documentName) formData.append('doc_name', documentName)
formData.append('doc_file', originFileObj) formData.append('doc_file', originFileObj)
formData.append('doc_type', 'DOCUMENT') formData.append('doc_type', 'DOCUMENT')
const data = await sendSpaceUploadPostRequest(`/knowledge/${spaceName}/document/upload`, formData); const data = await sendSpaceUploadPostRequest(
`/knowledge/${spaceName}/document/upload`,
formData
)
data.success && data.success &&
synchChecked && synchChecked &&
sendSpacePostRequest(`/knowledge/${spaceName}/document/sync`, { sendSpacePostRequest(
`/knowledge/${spaceName}/document/sync`,
{
doc_ids: [data.data] doc_ids: [data.data]
}) }
)
if (data.success) { if (data.success) {
message.success('success') message.success('success')
setIsAddDocumentModalShow(false) setIsAddDocumentModalShow(false)
const data = await sendSpacePostRequest(`/knowledge/${spaceName}/document/list`, { const data = await sendSpacePostRequest(
`/knowledge/${spaceName}/document/list`,
{
page: current, page: current,
page_size page_size
}) }
)
if (data.success) { if (data.success) {
setDocuments(data.data.data) setDocuments(data.data.data)
setTotal(data.data.total) setTotal(data.data.total)
@ -515,24 +550,33 @@ const Documents = () => {
message.error('Please input the text') message.error('Please input the text')
return return
} }
const data = await sendSpacePostRequest(`/knowledge/${spaceName}/document/add`, { const data = await sendSpacePostRequest(
`/knowledge/${spaceName}/document/add`,
{
doc_name: documentName, doc_name: documentName,
source: textSource, source: textSource,
content: text, content: text,
doc_type: 'TEXT' doc_type: 'TEXT'
}) }
)
data.success && data.success &&
synchChecked && synchChecked &&
sendSpacePostRequest(`/knowledge/${spaceName}/document/sync`, { sendSpacePostRequest(
`/knowledge/${spaceName}/document/sync`,
{
doc_ids: [data.data] doc_ids: [data.data]
}) }
)
if (data.success) { if (data.success) {
message.success('success') message.success('success')
setIsAddDocumentModalShow(false) setIsAddDocumentModalShow(false)
const data = await sendSpacePostRequest(`/knowledge/${spaceName}/document/list`, { const data = await sendSpacePostRequest(
`/knowledge/${spaceName}/document/list`,
{
page: current, page: current,
page_size page_size
}); }
)
if (data.success) { if (data.success) {
setDocuments(data.data.data) setDocuments(data.data.data)
setTotal(data.data.total) setTotal(data.data.total)

View File

@ -4,25 +4,26 @@ import { useRouter } from 'next/navigation'
import React, { useState, useEffect } from 'react' import React, { useState, useEffect } from 'react'
import { InboxOutlined } from '@ant-design/icons' import { InboxOutlined } from '@ant-design/icons'
import CheckCircleOutlinedIcon from '@mui/icons-material/CheckCircleOutlined' import CheckCircleOutlinedIcon from '@mui/icons-material/CheckCircleOutlined'
import ContentPasteSearchOutlinedIcon from '@mui/icons-material/ContentPasteSearchOutlined'; import ContentPasteSearchOutlinedIcon from '@mui/icons-material/ContentPasteSearchOutlined'
import type { UploadProps } from 'antd' import type { UploadProps } from 'antd'
import { message, Upload } from 'antd' import { message, Upload } from 'antd'
import { import {
useColorScheme, useColorScheme,
Modal, Modal,
Button, Button,
Table,
Sheet, Sheet,
Stack, Stack,
Box, Box,
Input, Input,
Textarea, Textarea,
Chip,
Switch, Switch,
Typography, Typography,
styled styled
} from '@/lib/mui' } from '@/lib/mui'
import { sendSpaceGetRequest, sendSpacePostRequest, sendSpaceUploadPostRequest } from '@/utils/request'; import {
sendSpacePostRequest,
sendSpaceUploadPostRequest
} from '@/utils/request'
const { Dragger } = Upload const { Dragger } = Upload
@ -94,7 +95,7 @@ const Index = () => {
} }
useEffect(() => { useEffect(() => {
async function fetchData() { async function fetchData() {
const data = await sendSpacePostRequest('/knowledge/space/list') const data = await sendSpacePostRequest('/knowledge/space/list', {})
if (data.success) { if (data.success) {
setKnowledgeSpaceList(data.data) setKnowledgeSpaceList(data.data)
} }
@ -105,19 +106,22 @@ const Index = () => {
<Box <Box
sx={{ sx={{
width: '100%', width: '100%',
height: '100%', height: '100%'
}} }}
className='bg-[#F1F2F5] dark:bg-[#212121]' className="bg-[#F1F2F5] dark:bg-[#212121]"
> >
<Box className="page-body p-4" sx={{ <Box
className="page-body p-4"
sx={{
'&': { '&': {
height: '90%', height: '90%',
overflow: 'auto', overflow: 'auto'
}, },
'&::-webkit-scrollbar': { '&::-webkit-scrollbar': {
display: 'none' display: 'none'
} }
}}> }}
>
<Stack <Stack
direction="row" direction="row"
justifyContent="space-between" justifyContent="space-between"
@ -134,7 +138,7 @@ const Index = () => {
sx={{ sx={{
display: 'flex', display: 'flex',
alignContent: 'start', alignContent: 'start',
boxSizing: "content-box", boxSizing: 'content-box',
width: '390px', width: '390px',
height: '79px', height: '79px',
padding: '33px 20px 40px', padding: '33px 20px 40px',
@ -148,11 +152,12 @@ const Index = () => {
cursor: 'pointer', cursor: 'pointer',
borderRadius: '16px', borderRadius: '16px',
'&: hover': { '&: hover': {
boxShadow: '0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);' boxShadow:
'0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);'
} }
}} }}
onClick={() => setIsAddKnowledgeSpaceModalShow(true)} onClick={() => setIsAddKnowledgeSpaceModalShow(true)}
className='bg-[#E9EBEE] dark:bg-[#484848]' className="bg-[#E9EBEE] dark:bg-[#484848]"
> >
<Box <Box
sx={{ sx={{
@ -166,12 +171,16 @@ const Index = () => {
fontWeight: '300', fontWeight: '300',
color: '#2AA3FF' color: '#2AA3FF'
}} }}
>+</Box> >
+
</Box>
<Box <Box
sx={{ sx={{
fontSize: '16px', fontSize: '16px'
}} }}
>space</Box> >
space
</Box>
</Box> </Box>
{knowledgeSpaceList.map((item: any, index: number) => ( {knowledgeSpaceList.map((item: any, index: number) => (
<Box <Box
@ -186,24 +195,32 @@ const Index = () => {
cursor: 'pointer', cursor: 'pointer',
borderRadius: '10px', borderRadius: '10px',
'&: hover': { '&: hover': {
boxShadow: '0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);' boxShadow:
'0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);'
} }
}} }}
onClick={() => { onClick={() => {
router.push(`/datastores/documents?name=${item.name}`); router.push(`/datastores/documents?name=${item.name}`)
}} }}
className='bg-[#FFFFFF] dark:bg-[#484848]' className="bg-[#FFFFFF] dark:bg-[#484848]"
> >
<Box sx={{ <Box
sx={{
fontSize: '18px', fontSize: '18px',
marginBottom: '10px', marginBottom: '10px',
fontWeight: 'bold', fontWeight: 'bold',
color: 'black' color: 'black'
}}><ContentPasteSearchOutlinedIcon sx={{ marginRight: '5px', color: '#2AA3FF' }}/>{item.name}</Box> }}
>
<ContentPasteSearchOutlinedIcon
sx={{ marginRight: '5px', color: '#2AA3FF' }}
/>
{item.name}
</Box>
<Box <Box
sx={{ sx={{
display: 'flex', display: 'flex',
justifyContent: 'flex-start', justifyContent: 'flex-start'
}} }}
> >
<Box <Box
@ -217,7 +234,9 @@ const Index = () => {
sx={{ sx={{
color: '#2AA3FF' color: '#2AA3FF'
}} }}
>{item.vector_type}</Box> >
{item.vector_type}
</Box>
<Box sx={{ fontSize: '12px', color: 'black' }}>Vector</Box> <Box sx={{ fontSize: '12px', color: 'black' }}>Vector</Box>
</Box> </Box>
<Box <Box
@ -231,7 +250,9 @@ const Index = () => {
sx={{ sx={{
color: '#2AA3FF' color: '#2AA3FF'
}} }}
>{item.owner}</Box> >
{item.owner}
</Box>
<Box sx={{ fontSize: '12px', color: 'black' }}>Owner</Box> <Box sx={{ fontSize: '12px', color: 'black' }}>Owner</Box>
</Box> </Box>
<Box <Box
@ -245,13 +266,19 @@ const Index = () => {
sx={{ sx={{
color: '#2AA3FF' color: '#2AA3FF'
}} }}
>{item.docs || 0}</Box> >
{item.docs || 0}
</Box>
<Box sx={{ fontSize: '12px', color: 'black' }}>Docs</Box> <Box sx={{ fontSize: '12px', color: 'black' }}>Docs</Box>
</Box> </Box>
</Box> </Box>
</Box> </Box>
))} ))}
<i></i><i></i><i></i><i></i><i></i> <i></i>
<i></i>
<i></i>
<i></i>
<i></i>
</Stack> </Stack>
</Box> </Box>
<Modal <Modal
@ -342,7 +369,10 @@ const Index = () => {
if (data.success) { if (data.success) {
message.success('success') message.success('success')
setActiveStep(1) setActiveStep(1)
const data = await sendSpacePostRequest('/knowledge/space/list') const data = await sendSpacePostRequest(
'/knowledge/space/list',
{}
)
if (data.success) { if (data.success) {
setKnowledgeSpaceList(data.data) setKnowledgeSpaceList(data.data)
} }
@ -479,18 +509,24 @@ const Index = () => {
message.error('Please input the Web Page URL') message.error('Please input the Web Page URL')
return return
} }
const data = await sendSpacePostRequest(`/knowledge/${knowledgeSpaceName}/document/add`, { const data = await sendSpacePostRequest(
`/knowledge/${knowledgeSpaceName}/document/add`,
{
doc_name: documentName, doc_name: documentName,
content: webPageUrl, content: webPageUrl,
doc_type: 'URL' doc_type: 'URL'
}) }
)
if (data.success) { if (data.success) {
message.success('success') message.success('success')
setIsAddKnowledgeSpaceModalShow(false) setIsAddKnowledgeSpaceModalShow(false)
synchChecked && synchChecked &&
sendSpacePostRequest(`/knowledge/${knowledgeSpaceName}/document/sync`, { sendSpacePostRequest(
`/knowledge/${knowledgeSpaceName}/document/sync`,
{
doc_ids: [data.data] doc_ids: [data.data]
}) }
)
} else { } else {
message.error(data.err_msg || 'failed') message.error(data.err_msg || 'failed')
} }
@ -504,14 +540,20 @@ const Index = () => {
formData.append('doc_file', originFileObj) formData.append('doc_file', originFileObj)
formData.append('doc_type', 'DOCUMENT') formData.append('doc_type', 'DOCUMENT')
const data = await sendSpaceUploadPostRequest(`/knowledge/${knowledgeSpaceName}/document/upload`, formData); const data = await sendSpaceUploadPostRequest(
`/knowledge/${knowledgeSpaceName}/document/upload`,
formData
)
if (data.success) { if (data.success) {
message.success('success') message.success('success')
setIsAddKnowledgeSpaceModalShow(false) setIsAddKnowledgeSpaceModalShow(false)
synchChecked && synchChecked &&
sendSpacePostRequest(`/knowledge/${knowledgeSpaceName}/document/sync`, { sendSpacePostRequest(
`/knowledge/${knowledgeSpaceName}/document/sync`,
{
doc_ids: [data.data] doc_ids: [data.data]
}); }
)
} else { } else {
message.error(data.err_msg || 'failed') message.error(data.err_msg || 'failed')
} }
@ -520,19 +562,25 @@ const Index = () => {
message.error('Please input the text') message.error('Please input the text')
return return
} }
const data = await sendSpacePostRequest(`/knowledge/${knowledgeSpaceName}/document/add`, { const data = await sendSpacePostRequest(
`/knowledge/${knowledgeSpaceName}/document/add`,
{
doc_name: documentName, doc_name: documentName,
source: textSource, source: textSource,
content: text, content: text,
doc_type: 'TEXT' doc_type: 'TEXT'
}) }
)
if (data.success) { if (data.success) {
message.success('success') message.success('success')
setIsAddKnowledgeSpaceModalShow(false) setIsAddKnowledgeSpaceModalShow(false)
synchChecked && synchChecked &&
sendSpacePostRequest(`/knowledge/${knowledgeSpaceName}/document/sync`, { sendSpacePostRequest(
`/knowledge/${knowledgeSpaceName}/document/sync`,
{
doc_ids: [data.data] doc_ids: [data.data]
}) }
)
} else { } else {
message.error(data.err_msg || 'failed') message.error(data.err_msg || 'failed')
} }