mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-08-07 03:14:42 +00:00
feat:update webui
1.web-ui 2.readme doc
This commit is contained in:
commit
02bf19ed33
Binary file not shown.
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 232 KiB |
@ -16,7 +16,7 @@ const Item = styled(Sheet)(({ theme }) => ({
|
||||
|
||||
const Agents = () => {
|
||||
const { handleChatSubmit, history } = useAgentChat({
|
||||
queryAgentURL: `http://30.183.153.109:5000/v1/chat/completions`,
|
||||
queryAgentURL: `/v1/chat/completions`,
|
||||
});
|
||||
|
||||
const data = [
|
||||
|
@ -1 +0,0 @@
|
||||
export const fetchBaseURL = 'http://30.183.154.76:5000';
|
@ -11,7 +11,6 @@ import {
|
||||
Link
|
||||
} from '@/lib/mui'
|
||||
import { Popover, Pagination } from 'antd'
|
||||
import { fetchBaseURL } from '@/app/datastores/constants'
|
||||
const page_size = 20
|
||||
|
||||
const ChunkList = () => {
|
||||
@ -25,7 +24,7 @@ const ChunkList = () => {
|
||||
useEffect(() => {
|
||||
async function fetchChunks() {
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/chunk/list`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/chunk/list`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -152,7 +151,7 @@ const ChunkList = () => {
|
||||
total={total}
|
||||
onChange={async (page) => {
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/chunk/list`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/chunk/list`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
@ -25,7 +25,6 @@ import CheckCircleOutlinedIcon from '@mui/icons-material/CheckCircleOutlined';
|
||||
import CachedIcon from '@mui/icons-material/Cached';
|
||||
import type { UploadProps } from 'antd'
|
||||
import { Upload, Pagination, Popover, message } from 'antd'
|
||||
import { fetchBaseURL } from '@/app/datastores/constants'
|
||||
|
||||
const { Dragger } = Upload
|
||||
const Item = styled(Sheet)(({ theme }) => ({
|
||||
@ -96,7 +95,7 @@ const Documents = () => {
|
||||
useEffect(() => {
|
||||
async function fetchDocuments() {
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/list`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/list`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -246,7 +245,7 @@ const Documents = () => {
|
||||
}}
|
||||
onClick={async () => {
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/sync`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/sync`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -299,7 +298,7 @@ const Documents = () => {
|
||||
total={total}
|
||||
onChange={async (page) => {
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/list`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/list`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -486,7 +485,7 @@ const Documents = () => {
|
||||
return
|
||||
}
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/add`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/add`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -503,7 +502,7 @@ const Documents = () => {
|
||||
data.success &&
|
||||
synchChecked &&
|
||||
fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/sync`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/sync`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -518,7 +517,7 @@ const Documents = () => {
|
||||
message.success('success')
|
||||
setIsAddDocumentModalShow(false)
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/list`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/list`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -549,7 +548,7 @@ const Documents = () => {
|
||||
formData.append('doc_file', originFileObj)
|
||||
formData.append('doc_type', 'DOCUMENT')
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/upload`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/upload`,
|
||||
{
|
||||
method: 'POST',
|
||||
body: formData
|
||||
@ -559,7 +558,7 @@ const Documents = () => {
|
||||
data.success &&
|
||||
synchChecked &&
|
||||
fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/sync`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/sync`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -574,7 +573,7 @@ const Documents = () => {
|
||||
message.success('success')
|
||||
setIsAddDocumentModalShow(false)
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/list`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/list`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -601,7 +600,7 @@ const Documents = () => {
|
||||
return
|
||||
}
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/add`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/add`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -619,7 +618,7 @@ const Documents = () => {
|
||||
data.success &&
|
||||
synchChecked &&
|
||||
fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/sync`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/sync`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -634,7 +633,7 @@ const Documents = () => {
|
||||
message.success('success')
|
||||
setIsAddDocumentModalShow(false)
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${spaceName}/document/list`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${spaceName}/document/list`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
@ -21,7 +21,6 @@ import {
|
||||
Typography,
|
||||
styled
|
||||
} from '@/lib/mui'
|
||||
import { fetchBaseURL } from '@/app/datastores/constants'
|
||||
|
||||
const { Dragger } = Upload
|
||||
|
||||
@ -91,7 +90,7 @@ const Index = () => {
|
||||
}
|
||||
useEffect(() => {
|
||||
async function fetchData() {
|
||||
const res = await fetch(`${fetchBaseURL}/knowledge/space/list`, {
|
||||
const res = await fetch(`${process.env.API_BASE_URL}/knowledge/space/list`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
@ -249,7 +248,7 @@ const Index = () => {
|
||||
return
|
||||
}
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/space/add`,
|
||||
`${process.env.API_BASE_URL}/knowledge/space/add`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -268,7 +267,7 @@ const Index = () => {
|
||||
message.success('success')
|
||||
setActiveStep(1)
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/space/list`,
|
||||
`${process.env.API_BASE_URL}/knowledge/space/list`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -415,7 +414,7 @@ const Index = () => {
|
||||
return
|
||||
}
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/add`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/add`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -434,7 +433,7 @@ const Index = () => {
|
||||
setIsAddKnowledgeSpaceModalShow(false)
|
||||
synchChecked &&
|
||||
fetch(
|
||||
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/sync`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/sync`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -458,7 +457,7 @@ const Index = () => {
|
||||
formData.append('doc_file', originFileObj)
|
||||
formData.append('doc_type', 'DOCUMENT')
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/upload`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/upload`,
|
||||
{
|
||||
method: 'POST',
|
||||
body: formData
|
||||
@ -470,7 +469,7 @@ const Index = () => {
|
||||
setIsAddKnowledgeSpaceModalShow(false)
|
||||
synchChecked &&
|
||||
fetch(
|
||||
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/sync`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/sync`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -490,7 +489,7 @@ const Index = () => {
|
||||
return
|
||||
}
|
||||
const res = await fetch(
|
||||
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/add`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/add`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -510,7 +509,7 @@ const Index = () => {
|
||||
setIsAddKnowledgeSpaceModalShow(false)
|
||||
synchChecked &&
|
||||
fetch(
|
||||
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/sync`,
|
||||
`${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/sync`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
@ -1,7 +1,7 @@
|
||||
"use client";
|
||||
import { useRequest } from 'ahooks';
|
||||
import { useState } from 'react';
|
||||
import { Button, Input, useColorScheme } from '@/lib/mui';
|
||||
import { Button, Input, useColorScheme, Box, buttonClasses } from '@/lib/mui';
|
||||
import IconButton from '@mui/joy/IconButton';
|
||||
import SendRoundedIcon from '@mui/icons-material/SendRounded';
|
||||
import { zodResolver } from '@hookform/resolvers/zod';
|
||||
@ -38,25 +38,30 @@ export default function Home() {
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className={`absolute z-20 top-0 inset-x-0 flex justify-center overflow-hidden pointer-events-none`}>
|
||||
<div className='w-[108rem] flex-none flex justify-end'>
|
||||
<picture>
|
||||
<source srcSet='/bg1.avif' type='image/avif'></source>
|
||||
<img srcSet='/bg2.png' alt="" className='w-[71.75rem] flex-none max-w-none '/>
|
||||
</picture>
|
||||
</div>
|
||||
</div>
|
||||
<div className='mx-auto flex h-full max-w-3xl flex-col gap-6 px-5 pt-6 sm:gap-8 xl:max-w-4xl'>
|
||||
<div className='lg:my-auto grid gap-8 lg:grid-cols-3'>
|
||||
<div className='lg:col-span-3 lg:mt-12'>
|
||||
<p className='mb-3'>Scenes</p>
|
||||
<div className='grid gap-2 lg:grid-cols-3 lg:gap-4'>
|
||||
<>
|
||||
<div className='mx-auto justify-end flex max-w-3xl flex-col h-3/4 gap-6 px-5 pt-6 sm:gap-16 xl:max-w-4xl'>
|
||||
<div className='grid gap-8 lg:grid-cols-3'>
|
||||
<div className='lg:col-span-3'>
|
||||
<p className='mb-8 text-center text-2xl'>Scenes</p>
|
||||
<Box
|
||||
className='grid gap-2 lg:grid-cols-3 lg:gap-6'
|
||||
sx={{
|
||||
[`& .${buttonClasses.root}`]: {
|
||||
color: 'var(--joy-palette-primary-solidColor)',
|
||||
backgroundColor: 'var(--joy-palette-primary-solidBg)',
|
||||
height: '52px',
|
||||
'&: hover': {
|
||||
backgroundColor: 'var(--joy-palette-primary-solidHoverBg)',
|
||||
}
|
||||
}
|
||||
}}
|
||||
>
|
||||
{scenesList?.data?.map(scene => (
|
||||
<Button
|
||||
key={scene['chat_scene']}
|
||||
size="md"
|
||||
variant="soft"
|
||||
variant="solid"
|
||||
className='text-base rounded-none '
|
||||
onClick={async () => {
|
||||
const res = await sendPostRequest('/v1/chat/dialogue/new', {
|
||||
chat_mode: scene['chat_scene']
|
||||
@ -69,42 +74,42 @@ export default function Home() {
|
||||
{scene['scene_name']
|
||||
}</Button>
|
||||
))}
|
||||
</div>
|
||||
</Box>
|
||||
</div>
|
||||
</div>
|
||||
<div className='h-60 flex-none'></div>
|
||||
</div>
|
||||
<div className='pointer-events-none absolute inset-x-0 bottom-0 z-0 mx-auto flex w-full max-w-3xl flex-col items-center justify-center px-3.5 py-4 max-md:border-t sm:px-5 md:py-8 xl:max-w-4xl [&>*]:pointer-events-auto'>
|
||||
<form
|
||||
style={{
|
||||
maxWidth: '100%',
|
||||
width: '100%',
|
||||
position: 'relative',
|
||||
display: 'flex',
|
||||
marginTop: 'auto',
|
||||
overflow: 'visible',
|
||||
background: 'none',
|
||||
justifyContent: 'center',
|
||||
marginLeft: 'auto',
|
||||
marginRight: 'auto',
|
||||
}}
|
||||
onSubmit={(e) => {
|
||||
methods.handleSubmit(submit)(e);
|
||||
}}
|
||||
>
|
||||
<Input
|
||||
sx={{ width: '100%' }}
|
||||
variant="outlined"
|
||||
placeholder='Ask anything'
|
||||
endDecorator={
|
||||
<IconButton type="submit" disabled={isLoading}>
|
||||
<SendRoundedIcon />
|
||||
</IconButton>
|
||||
}
|
||||
{...methods.register('query')}
|
||||
/>
|
||||
</form>
|
||||
<div className='mt-6 pointer-events-none inset-x-0 bottom-0 z-0 mx-auto flex w-full max-w-3xl flex-col items-center justify-center max-md:border-t xl:max-w-4xl [&>*]:pointer-events-auto'>
|
||||
<form
|
||||
style={{
|
||||
maxWidth: '100%',
|
||||
width: '100%',
|
||||
position: 'relative',
|
||||
display: 'flex',
|
||||
marginTop: 'auto',
|
||||
overflow: 'visible',
|
||||
background: 'none',
|
||||
justifyContent: 'center',
|
||||
marginLeft: 'auto',
|
||||
marginRight: 'auto',
|
||||
}}
|
||||
onSubmit={(e) => {
|
||||
methods.handleSubmit(submit)(e);
|
||||
}}
|
||||
>
|
||||
<Input
|
||||
sx={{ width: '100%' }}
|
||||
variant="outlined"
|
||||
placeholder='Ask anything'
|
||||
endDecorator={
|
||||
<IconButton type="submit" disabled={isLoading}>
|
||||
<SendRoundedIcon />
|
||||
</IconButton>
|
||||
}
|
||||
{...methods.register('query')}
|
||||
/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</>
|
||||
|
||||
)
|
||||
|
@ -27,7 +27,7 @@ const AgentPage = (props: {
|
||||
});
|
||||
|
||||
const { history, handleChatSubmit } = useAgentChat({
|
||||
queryAgentURL: `http://30.183.153.109:5000/v1/chat/completions`,
|
||||
queryAgentURL: `/v1/chat/completions`,
|
||||
queryBody: {
|
||||
conv_uid: props.params?.agentId,
|
||||
chat_mode: props.searchParams?.scene || 'chat_normal',
|
||||
|
@ -2,14 +2,14 @@
|
||||
import React, { useEffect, useMemo } from 'react';
|
||||
import { usePathname, useRouter } from 'next/navigation';
|
||||
import Link from 'next/link';
|
||||
import { Popconfirm } from 'antd';
|
||||
import { Modal } from 'antd';
|
||||
import { Box, List, ListItem, ListItemButton, ListItemDecorator, ListItemContent, Typography, Button, useColorScheme, IconButton } from '@/lib/mui';
|
||||
import Article from '@mui/icons-material/Article';
|
||||
import DarkModeIcon from '@mui/icons-material/DarkMode';
|
||||
import WbSunnyIcon from '@mui/icons-material/WbSunny';
|
||||
import MenuIcon from '@mui/icons-material/Menu';
|
||||
import AddIcon from '@mui/icons-material/Add';
|
||||
import { useDialogueContext } from '@/app/context/dialogue';
|
||||
import SmsOutlinedIcon from '@mui/icons-material/SmsOutlined';import { useDialogueContext } from '@/app/context/dialogue';
|
||||
import DeleteOutlineOutlinedIcon from '@mui/icons-material/DeleteOutlineOutlined';
|
||||
import { sendPostRequest } from '@/utils/request';
|
||||
|
||||
@ -110,6 +110,7 @@ const LeftSider = () => {
|
||||
aria-labelledby="nav-list-browse"
|
||||
sx={{
|
||||
'& .JoyListItemButton-root': { p: '8px' },
|
||||
gap: '4px'
|
||||
}}
|
||||
>
|
||||
{dialogueList?.data?.map((each) => {
|
||||
@ -119,32 +120,46 @@ const LeftSider = () => {
|
||||
<ListItemButton
|
||||
selected={isSelect}
|
||||
variant={isSelect ? 'soft' : 'plain'}
|
||||
sx={{
|
||||
'&:hover .del-btn': {
|
||||
visibility: 'visible'
|
||||
}
|
||||
}}
|
||||
>
|
||||
<ListItemContent>
|
||||
<Link href={`/agents/${each.conv_uid}?scene=${each?.chat_mode}`}>
|
||||
<Link href={`/agents/${each.conv_uid}?scene=${each?.chat_mode}`} className="flex items-center justify-between">
|
||||
<Typography fontSize={14} noWrap={true}>
|
||||
<SmsOutlinedIcon className='mr-2' />
|
||||
{each?.user_name || each?.user_input || 'undefined'}
|
||||
</Typography>
|
||||
<IconButton
|
||||
color="neutral"
|
||||
variant="plain"
|
||||
size="sm"
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
Modal.confirm({
|
||||
title: 'Delete Chat',
|
||||
content: 'Are you sure delete this chat?',
|
||||
width: '276px',
|
||||
centered: true,
|
||||
async onOk() {
|
||||
await sendPostRequest(`v1/chat/dialogue/delete?con_uid=${each.conv_uid}`);
|
||||
await refreshDialogList();
|
||||
if (pathname === `/agents/${each.conv_uid}`) {
|
||||
router.push('/');
|
||||
}
|
||||
}
|
||||
})
|
||||
}}
|
||||
className='del-btn invisible'
|
||||
>
|
||||
<DeleteOutlineOutlinedIcon />
|
||||
</IconButton>
|
||||
</Link>
|
||||
</ListItemContent>
|
||||
</ListItemButton>
|
||||
<Popconfirm
|
||||
title="删除对话"
|
||||
description="确认要删除该对话吗"
|
||||
onConfirm={async() => {
|
||||
await sendPostRequest(`v1/chat/dialogue/delete?con_uid=${each.conv_uid}`);
|
||||
await refreshDialogList();
|
||||
if (pathname === `/agents/${each.conv_uid}`) {
|
||||
router.push('/');
|
||||
}
|
||||
}}
|
||||
okText="Yes"
|
||||
cancelText="No"
|
||||
>
|
||||
<IconButton color="neutral" variant="plain">
|
||||
<DeleteOutlineOutlinedIcon />
|
||||
</IconButton>
|
||||
</Popconfirm>
|
||||
</ListItem>
|
||||
)
|
||||
})}
|
||||
@ -157,6 +172,8 @@ const LeftSider = () => {
|
||||
<Box
|
||||
sx={{
|
||||
p: 2,
|
||||
pt: 3,
|
||||
pb: 6,
|
||||
borderTop: '1px solid',
|
||||
borderColor: 'divider',
|
||||
display: {
|
||||
@ -183,6 +200,7 @@ const LeftSider = () => {
|
||||
<ListItem>
|
||||
<ListItemButton
|
||||
color="neutral"
|
||||
sx={{ marginBottom: 1, height: '2.5rem' }}
|
||||
selected={each.active}
|
||||
variant={each.active ? 'soft' : 'plain'}
|
||||
>
|
||||
@ -202,6 +220,7 @@ const LeftSider = () => {
|
||||
</ListItem>
|
||||
<ListItem>
|
||||
<ListItemButton
|
||||
sx={{ height: '2.5rem' }}
|
||||
onClick={handleChangeTheme}
|
||||
>
|
||||
<ListItemDecorator>
|
||||
|
@ -7,7 +7,11 @@ export const joyTheme = extendTheme({
|
||||
palette: {
|
||||
mode: 'dark',
|
||||
primary: {
|
||||
...colors.purple,
|
||||
...colors.grey,
|
||||
solidBg: '#dfdfdf91',
|
||||
solidColor: '#4e4e4e',
|
||||
solidHoverBg: '#d5d5d5',
|
||||
outlinedColor: '#4e4e59'
|
||||
},
|
||||
neutral: {
|
||||
plainColor: '#4d4d4d',
|
||||
@ -21,16 +25,13 @@ export const joyTheme = extendTheme({
|
||||
surface: '#fff'
|
||||
},
|
||||
text: {
|
||||
primary: '#25252D'
|
||||
primary: '#505050'
|
||||
},
|
||||
},
|
||||
},
|
||||
dark: {
|
||||
palette: {
|
||||
mode: 'light',
|
||||
primary: {
|
||||
...colors.purple,
|
||||
},
|
||||
neutral: {
|
||||
plainColor: '#D8D8DF',
|
||||
plainHoverColor: '#F7F7F8',
|
||||
|
@ -49,7 +49,7 @@ import { useDialogueContext } from '@/app/context/dialogue';
|
||||
const ctrl = new AbortController();
|
||||
let buffer = '';
|
||||
|
||||
await fetchEventSource(queryAgentURL, {
|
||||
await fetchEventSource(`${process.env.API_BASE_URL + queryAgentURL}`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
|
@ -6,6 +6,9 @@ const nextConfig = {
|
||||
},
|
||||
typescript: {
|
||||
ignoreBuildErrors: true
|
||||
},
|
||||
env: {
|
||||
API_BASE_URL: process.env.API_BASE_URL || 'http://30.183.154.76:5000'
|
||||
}
|
||||
}
|
||||
|
||||
|
14
datacenter/utils/ctx-axios.ts
Normal file
14
datacenter/utils/ctx-axios.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import axios from 'axios';
|
||||
|
||||
const api = axios.create({
|
||||
baseURL: process.env.API_BASE_URL,
|
||||
});
|
||||
|
||||
api.defaults.timeout = 10000;
|
||||
|
||||
api.interceptors.response.use(
|
||||
response => response.data,
|
||||
err => Promise.reject(err)
|
||||
);
|
||||
|
||||
export default api;
|
@ -1,16 +1,7 @@
|
||||
import { message } from 'antd';
|
||||
import axios from 'axios';
|
||||
import axios from './ctx-axios';
|
||||
import { isPlainObject } from 'lodash';
|
||||
|
||||
axios.defaults.baseURL = 'http://127.0.0.1:5000';
|
||||
|
||||
axios.defaults.timeout = 10000;
|
||||
|
||||
axios.interceptors.response.use(
|
||||
response => response.data,
|
||||
err => Promise.reject(err)
|
||||
);
|
||||
|
||||
const DEFAULT_HEADERS = {
|
||||
'content-type': 'application/json',
|
||||
};
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: DB-GPT 0.1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-06-19 19:10+0800\n"
|
||||
"POT-Creation-Date: 2023-06-30 17:16+0800\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: zh_CN\n"
|
||||
@ -19,31 +19,31 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.12.1\n"
|
||||
|
||||
#: ../../index.rst:34 ../../index.rst:45 ccc4a2e234354c8fb71e8eb930071c79
|
||||
#: ../../index.rst:34 ../../index.rst:45 00f3369727374a2da4b3e02c35c63363
|
||||
msgid "Getting Started"
|
||||
msgstr "开始"
|
||||
|
||||
#: ../../index.rst:56 ../../index.rst:77 e12392f17e074b0ab8e693947bda6fc9
|
||||
#: ../../index.rst:56 ../../index.rst:77 f3b85d983f0141b5872a46451d20252a
|
||||
msgid "Modules"
|
||||
msgstr "模块"
|
||||
|
||||
#: ../../index.rst:91 ../../index.rst:107 8fe142b9f4d24fa7aa20103a01283c15
|
||||
#: ../../index.rst:91 ../../index.rst:107 614a2220f0004aadab14402dab5c926d
|
||||
msgid "Use Cases"
|
||||
msgstr "示例"
|
||||
|
||||
#: ../../index.rst:121 ../../index.rst:124 ea5086df6a7446e180cbdff164fc4ac4
|
||||
#: ../../index.rst:121 ../../index.rst:124 fae0a63e09f049a79ffbd8c1fd5b8f12
|
||||
msgid "Reference"
|
||||
msgstr "参考"
|
||||
|
||||
#: ../../index.rst:148 ../../index.rst:154 7b4ce224d08d429082917a0d20761728
|
||||
#: ../../index.rst:148 ../../index.rst:154 d4113b3e7b2f4a1ba462e6a54062adff
|
||||
msgid "Resources"
|
||||
msgstr "资源"
|
||||
|
||||
#: ../../index.rst:7 5b9b4c087e2041cfa3adc5ff770a6883
|
||||
#: ../../index.rst:7 6548011d66b14e71bf3f028b82bb58d6
|
||||
msgid "Welcome to DB-GPT!"
|
||||
msgstr "欢迎来到DB-GPT中文文档"
|
||||
|
||||
#: ../../index.rst:8 d6e5a54e39c2400eba9036e61df0c836
|
||||
#: ../../index.rst:8 da9fdd494e664e7e83448d4993c30f60
|
||||
msgid ""
|
||||
"As large models are released and iterated upon, they are becoming "
|
||||
"increasingly intelligent. However, in the process of using large models, "
|
||||
@ -61,7 +61,7 @@ msgstr ""
|
||||
",我们启动了DB-"
|
||||
"GPT项目,为所有基于数据库的场景构建一个完整的私有大模型解决方案。该方案“”支持本地部署,既可应用于“独立私有环境”,又可根据业务模块进行“独立部署”和“隔离”,确保“大模型”的能力绝对私有、安全、可控。"
|
||||
|
||||
#: ../../index.rst:10 7758a7767c1e4103a7dc8314abbabd2e
|
||||
#: ../../index.rst:10 7650af0ff7bc4a93ad82c930c81cb7f5
|
||||
msgid ""
|
||||
"**DB-GPT** is an experimental open-source project that uses localized GPT"
|
||||
" large models to interact with your data and environment. With this "
|
||||
@ -71,98 +71,102 @@ msgstr ""
|
||||
"DB-GPT 是一个开源的以数据库为基础的GPT实验项目,使用本地化的GPT大模型与您的数据和环境进行交互,无数据泄露风险100% 私密,100%"
|
||||
" 安全。"
|
||||
|
||||
#: ../../index.rst:12 8a1cd45818f848d585bc3e94aecc99ae
|
||||
#: ../../index.rst:12 18249811cea0456096f06da05638d474
|
||||
msgid "**Features**"
|
||||
msgstr "特性"
|
||||
|
||||
#: ../../index.rst:13 eba08d77b2494d689cf52d3d15e04c77
|
||||
#: ../../index.rst:13 367c092acf1a49a0906f78433e6d9926
|
||||
msgid ""
|
||||
"Currently, we have released multiple key features, which are listed below"
|
||||
" to demonstrate our current capabilities:"
|
||||
msgstr "目前我们已经发布了多种关键的特性,这里一一列举展示一下当前发布的能力。"
|
||||
|
||||
#: ../../index.rst:15 8bf5afc3467642a7abaefe54ffe7b3a3
|
||||
#: ../../index.rst:15 01334c212ef44244a306f8cfb584c48f
|
||||
msgid "SQL language capabilities - SQL generation - SQL diagnosis"
|
||||
msgstr "SQL语言能力 - SQL生成 - SQL诊断"
|
||||
|
||||
#: ../../index.rst:19 5a93613526fb42cbbc8d9cda960e8d04
|
||||
#: ../../index.rst:19 fe7396137ed84517bd99c93500f21bb6
|
||||
msgid ""
|
||||
"Private domain Q&A and data processing - Database knowledge Q&A - Data "
|
||||
"processing"
|
||||
msgstr "私有领域问答与数据处理 - 数据库知识问答 - 数据处理"
|
||||
|
||||
#: ../../index.rst:23 48d473545ce049f7bad161f05fc40888
|
||||
#: ../../index.rst:23 c12af975ed2d451496a476d91b6bb4c5
|
||||
msgid ""
|
||||
"Plugins - Support custom plugin execution tasks and natively support the "
|
||||
"Auto-GPT plugin, such as:"
|
||||
msgstr "插件模型 - 支持自定义插件执行任务,并原生支持Auto-GPT插件,例如:* SQL自动执行,获取查询结果 * 自动爬取学习知识"
|
||||
|
||||
#: ../../index.rst:26 6e8711ce9d024e4b8c86c9ccc61da30a
|
||||
#: ../../index.rst:26 97507eb30ab548fb9443b252e481d6be
|
||||
msgid ""
|
||||
"Unified vector storage/indexing of knowledge base - Support for "
|
||||
"unstructured data such as PDF, Markdown, CSV, and WebURL"
|
||||
msgstr "知识库统一向量存储/索引 - 非结构化数据支持包括PDF、MarkDown、CSV、WebURL"
|
||||
|
||||
#: ../../index.rst:29 b7f600ad1b2e4d4a85199a934c4b5c2f
|
||||
#: ../../index.rst:29 b2ff661c13d54cd79f27923163079706
|
||||
msgid ""
|
||||
"Milti LLMs Support - Supports multiple large language models, currently "
|
||||
"supporting Vicuna (7b, 13b), ChatGLM-6b (int4, int8) - TODO: codegen2, "
|
||||
"codet5p"
|
||||
msgstr "多模型支持 - 支持多种大语言模型, 当前已支持Vicuna(7b,13b), ChatGLM-6b(int4, int8)"
|
||||
|
||||
#: ../../index.rst:35 7350947e20c146408cf7f99671cfc295
|
||||
#: ../../index.rst:35 15178a36df624fa9b4a5acdab5060752
|
||||
msgid ""
|
||||
"How to get started using DB-GPT to interact with your data and "
|
||||
"environment."
|
||||
msgstr "开始使用DB-GPT与您的数据环境进行交互。"
|
||||
|
||||
#: ../../index.rst:36 5bad56f636ac42978634b18628fd6a20
|
||||
#: ../../index.rst:36 8aa3a44286b244a4b9b92db285e5382b
|
||||
#, fuzzy
|
||||
msgid "`Quickstart Guide <./getting_started/getting_started.html>`_"
|
||||
msgstr "`使用指南 <./getting_started/getting_started.html>`_"
|
||||
|
||||
#: ../../index.rst:38 ca63453d7ee84d05821af994be060932
|
||||
#: ../../index.rst:38 3f4ec91e5df44629aff6c94ffbaa37d7
|
||||
msgid "Concepts and terminology"
|
||||
msgstr "相关概念"
|
||||
|
||||
#: ../../index.rst:40 abddf7b7d23c49149eb70e384ab3eedf
|
||||
#: ../../index.rst:40 d0126674e0e24aefbf51d610b2fcf5da
|
||||
#, fuzzy
|
||||
msgid "`Concepts and Terminology <./getting_started/concepts.html>`_"
|
||||
msgstr "`相关概念 <./getting_started/concepts.html>`_"
|
||||
|
||||
#: ../../index.rst:44 ee8121fc3ef34d61a94b25c8b2bb961f
|
||||
#: ../../index.rst:42 c6d67e4c1b8346c18f2b99c8f5795627
|
||||
msgid "Coming soon..."
|
||||
msgstr ""
|
||||
|
||||
#: ../../index.rst:44 18d63d2d729246648743d1b7470029e0
|
||||
msgid "`Tutorials <.getting_started/tutorials.html>`_"
|
||||
msgstr "`教程 <.getting_started/tutorials.html>`_"
|
||||
|
||||
#: ../../index.rst:58 6561430a5aca482d9e36c281d530bce1
|
||||
#: ../../index.rst:58 5f93833b5e8f42b7b8728587f5054d8b
|
||||
msgid ""
|
||||
"These modules are the core abstractions with which we can interact with "
|
||||
"data and environment smoothly."
|
||||
msgstr "这些模块是我们可以与数据和环境顺利地进行交互的核心组成。"
|
||||
|
||||
#: ../../index.rst:59 5b0c1abed4e74351a52a17bd420f61d9
|
||||
#: ../../index.rst:59 d68173b40df146818ddf68b309bbd27d
|
||||
msgid ""
|
||||
"It's very important for DB-GPT, DB-GPT also provide standard, extendable "
|
||||
"interfaces."
|
||||
msgstr "DB-GPT还提供了标准的、可扩展的接口。"
|
||||
|
||||
#: ../../index.rst:61 71a71702e36f4d298b4c07af77daa305
|
||||
#: ../../index.rst:61 00257e3907b346d5bd007f2cfe52bac9
|
||||
msgid ""
|
||||
"The docs for each module contain quickstart examples, how to guides, "
|
||||
"reference docs, and conceptual guides."
|
||||
msgstr "每个模块的文档都包含快速入门的例子、操作指南、参考文档和相关概念等内容。"
|
||||
|
||||
#: ../../index.rst:63 c5c59f19e04340e8a8105f020143d378
|
||||
#: ../../index.rst:63 e04ba16ec943405080a26ec874e67823
|
||||
msgid "The modules are as follows"
|
||||
msgstr "组成模块如下:"
|
||||
|
||||
#: ../../index.rst:65 c6141fac66e7440593ed74962676085f
|
||||
#: ../../index.rst:65 12d9ce3eda484316b3fcbbb2adb48b6e
|
||||
msgid ""
|
||||
"`LLMs <./modules/llms.html>`_: Supported multi models management and "
|
||||
"integrations."
|
||||
msgstr "`LLMs <./modules/llms.html>`_:基于FastChat提供大模型的运行环境。支持多模型管理和集成。 "
|
||||
|
||||
#: ../../index.rst:67 762dac57a0a842beb69668917477164f
|
||||
#: ../../index.rst:67 9d7ce6fea46c41c0940198499336430e
|
||||
msgid ""
|
||||
"`Prompts <./modules/prompts.html>`_: Prompt management, optimization, and"
|
||||
" serialization for multi database."
|
||||
@ -170,59 +174,59 @@ msgstr ""
|
||||
"`Prompt自动生成与优化 <./modules/prompts.html>`_: 自动化生成高质量的Prompt "
|
||||
",并进行优化,提高系统的响应效率"
|
||||
|
||||
#: ../../index.rst:69 a4183c4e5469468a8c0a66eff57b55cf
|
||||
#: ../../index.rst:69 0847158883424a98a02e58fd9c2d6744
|
||||
msgid "`Plugins <./modules/plugins.html>`_: Plugins management, scheduler."
|
||||
msgstr "`Agent与插件: <./modules/plugins.html>`_:提供Agent和插件机制,使得用户可以自定义并增强系统的行为。"
|
||||
|
||||
#: ../../index.rst:71 1fb71f17d87d4e81986685afca5c5f64
|
||||
#: ../../index.rst:71 6b2a8143adff4395b6a86a6d22078a87
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"`Knowledge <./modules/knowledge.html>`_: Knowledge management, embedding,"
|
||||
" and search."
|
||||
msgstr "`知识库能力: <./modules/knowledge.html>`_: 支持私域知识库问答能力, "
|
||||
|
||||
#: ../../index.rst:73 b063179603b64fef8dc00265dcdf44a9
|
||||
#: ../../index.rst:73 70e831c592ca431791a614934061c148
|
||||
msgid ""
|
||||
"`Connections <./modules/connections.html>`_: Supported multi databases "
|
||||
"connection. management connections and interact with this."
|
||||
msgstr "`连接模块 <./modules/connections.html>`_: 用于连接不同的模块和数据源,实现数据的流转和交互 "
|
||||
|
||||
#: ../../index.rst:75 033bc012c46a4ec780022e51e32ba173
|
||||
#: ../../index.rst:75 1a5eaebe25174828b60c17475dae7928
|
||||
#, fuzzy
|
||||
msgid "`Vector <./modules/vector.html>`_: Supported multi vector database."
|
||||
msgstr "`LLMs <./modules/llms.html>`_:基于FastChat提供大模型的运行环境。支持多模型管理和集成。 "
|
||||
|
||||
#: ../../index.rst:93 3c0bd77d77c94a108584e2dd67f71909
|
||||
#: ../../index.rst:93 8a2ea497d36449febd1560dbecd5ec44
|
||||
msgid "Best Practices and built-in implementations for common DB-GPT use cases:"
|
||||
msgstr "DB-GPT用例的最佳实践和内置方法:"
|
||||
|
||||
#: ../../index.rst:95 827074b48e7846fb9c77aaa82ff7375a
|
||||
#: ../../index.rst:95 fcc65a470c5643619688488cfe010f61
|
||||
msgid ""
|
||||
"`Sql generation and diagnosis "
|
||||
"<./use_cases/sql_generation_and_diagnosis.html>`_: SQL generation and "
|
||||
"diagnosis."
|
||||
msgstr "`Sql生成和诊断 <./use_cases/sql_generation_and_diagnosis.html>`_: Sql生成和诊断。"
|
||||
|
||||
#: ../../index.rst:97 59f4b4e2a0c54e0aa1dd4ed6d866569d
|
||||
#: ../../index.rst:97 26b983fbb9394f94bf31636175cc6f95
|
||||
msgid ""
|
||||
"`knownledge Based QA <./use_cases/knownledge_based_qa.html>`_: A "
|
||||
"important scene for user to chat with database documents, codes, bugs and"
|
||||
" schemas."
|
||||
msgstr "`知识库问答 <./use_cases/knownledge_based_qa.html>`_: 用户与数据库文档、代码和bug聊天的重要场景\""
|
||||
|
||||
#: ../../index.rst:99 61cbb326c1134cf3b4dbf4585036c046
|
||||
#: ../../index.rst:99 aa4cfc95a3bf463682952bf40f38c99b
|
||||
msgid ""
|
||||
"`Chatbots <./use_cases/chatbots.html>`_: Language model love to chat, use"
|
||||
" multi models to chat."
|
||||
msgstr "`聊天机器人 <./use_cases/chatbots.html>`_: 使用多模型进行对话"
|
||||
|
||||
#: ../../index.rst:101 488b5a083f364d488284c64400f452ff
|
||||
#: ../../index.rst:101 e9b540aab91c44ae911bf96aa18c0f36
|
||||
msgid ""
|
||||
"`Querying Database Data <./use_cases/query_database_data.html>`_: Query "
|
||||
"and Analysis data from databases and give charts."
|
||||
msgstr "`查询数据库数据 <./use_cases/query_database_data.html>`_:从数据库中查询和分析数据并给出图表。"
|
||||
|
||||
#: ../../index.rst:103 2a54fcac7c2f47da8a415087450a784d
|
||||
#: ../../index.rst:103 88a99b638b4a42abae39fe9de4f16927
|
||||
msgid ""
|
||||
"`Interacting with apis <./use_cases/interacting_with_api.html>`_: "
|
||||
"Interact with apis, such as create a table, deploy a database cluster, "
|
||||
@ -231,33 +235,33 @@ msgstr ""
|
||||
"`API交互 <./use_cases/interacting_with_api.html>`_: "
|
||||
"与API交互,例如创建表、部署数据库集群、创建数据库等。"
|
||||
|
||||
#: ../../index.rst:105 126df42194b643cd9b9326ee71b62912
|
||||
#: ../../index.rst:105 53cb38b16ed04420934233aec02fd44b
|
||||
msgid ""
|
||||
"`Tool use with plugins <./use_cases/tool_use_with_plugin>`_: According to"
|
||||
" Plugin use tools to manage databases autonomoly."
|
||||
msgstr "`插件工具 <./use_cases/tool_use_with_plugin>`_: 根据插件使用工具自主管理数据库。"
|
||||
|
||||
#: ../../index.rst:122 fd5e4ce005f24f8eb6eeafe6d16de131
|
||||
#: ../../index.rst:122 fbc2fe1374ac4909b1c66ea11bbfafec
|
||||
msgid ""
|
||||
"Full documentation on all methods, classes, installation methods, and "
|
||||
"integration setups for DB-GPT."
|
||||
msgstr "关于DB-GPT的所有方法、类、安装方法和集成设置的完整文档。"
|
||||
|
||||
#: ../../index.rst:133 ee9eb07b432040059c50e6834487f524
|
||||
#: ../../index.rst:133 c45530a6c3a34a42a0fd8bca6efe3b07
|
||||
msgid "Ecosystem"
|
||||
msgstr "环境系统"
|
||||
|
||||
#: ../../index.rst:135 826bf512f3a146a89af657abacac6b1b
|
||||
#: ../../index.rst:135 e9f68f4abbdc4832889d0e343ce43d27
|
||||
msgid "Guides for how other companies/products can be used with DB-GPT"
|
||||
msgstr "其他公司/产品如何与DB-GPT一起使用的方法指南"
|
||||
|
||||
#: ../../index.rst:150 4237eb1479194d8087dfd4f64d944555
|
||||
#: ../../index.rst:150 c33686daaa7c44d28c96dc22c0d9480c
|
||||
msgid ""
|
||||
"Additional resources we think may be useful as you develop your "
|
||||
"application!"
|
||||
msgstr "“我们认为在您开发应用程序时可能有用的其他资源!”"
|
||||
|
||||
#: ../../index.rst:152 fc80bea0667a4faba7d4ea7dc697fc28
|
||||
#: ../../index.rst:152 f6d108be181f47af80c4b8a5931ff172
|
||||
msgid ""
|
||||
"`Discord <https://discord.com/invite/twmZk3vv>`_: if your have some "
|
||||
"problem or ideas, you can talk from discord."
|
||||
|
Loading…
Reference in New Issue
Block a user