feat:update webui

1.web-ui
2.readme doc
This commit is contained in:
aries_ckt 2023-06-30 18:23:54 +08:00
commit 02bf19ed33
15 changed files with 190 additions and 157 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 232 KiB

View File

@ -16,7 +16,7 @@ const Item = styled(Sheet)(({ theme }) => ({
const Agents = () => { const Agents = () => {
const { handleChatSubmit, history } = useAgentChat({ const { handleChatSubmit, history } = useAgentChat({
queryAgentURL: `http://30.183.153.109:5000/v1/chat/completions`, queryAgentURL: `/v1/chat/completions`,
}); });
const data = [ const data = [

View File

@ -1 +0,0 @@
export const fetchBaseURL = 'http://30.183.154.76:5000';

View File

@ -11,7 +11,6 @@ import {
Link Link
} from '@/lib/mui' } from '@/lib/mui'
import { Popover, Pagination } from 'antd' import { Popover, Pagination } from 'antd'
import { fetchBaseURL } from '@/app/datastores/constants'
const page_size = 20 const page_size = 20
const ChunkList = () => { const ChunkList = () => {
@ -25,7 +24,7 @@ const ChunkList = () => {
useEffect(() => { useEffect(() => {
async function fetchChunks() { async function fetchChunks() {
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/chunk/list`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/chunk/list`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -152,7 +151,7 @@ const ChunkList = () => {
total={total} total={total}
onChange={async (page) => { onChange={async (page) => {
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/chunk/list`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/chunk/list`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {

View File

@ -25,7 +25,6 @@ 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 { fetchBaseURL } from '@/app/datastores/constants'
const { Dragger } = Upload const { Dragger } = Upload
const Item = styled(Sheet)(({ theme }) => ({ const Item = styled(Sheet)(({ theme }) => ({
@ -96,7 +95,7 @@ const Documents = () => {
useEffect(() => { useEffect(() => {
async function fetchDocuments() { async function fetchDocuments() {
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/list`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/list`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -246,7 +245,7 @@ const Documents = () => {
}} }}
onClick={async () => { onClick={async () => {
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/sync`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/sync`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -299,7 +298,7 @@ const Documents = () => {
total={total} total={total}
onChange={async (page) => { onChange={async (page) => {
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/list`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/list`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -486,7 +485,7 @@ const Documents = () => {
return return
} }
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/add`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/add`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -503,7 +502,7 @@ const Documents = () => {
data.success && data.success &&
synchChecked && synchChecked &&
fetch( fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/sync`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/sync`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -518,7 +517,7 @@ const Documents = () => {
message.success('success') message.success('success')
setIsAddDocumentModalShow(false) setIsAddDocumentModalShow(false)
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/list`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/list`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -549,7 +548,7 @@ const Documents = () => {
formData.append('doc_file', originFileObj) formData.append('doc_file', originFileObj)
formData.append('doc_type', 'DOCUMENT') formData.append('doc_type', 'DOCUMENT')
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/upload`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/upload`,
{ {
method: 'POST', method: 'POST',
body: formData body: formData
@ -559,7 +558,7 @@ const Documents = () => {
data.success && data.success &&
synchChecked && synchChecked &&
fetch( fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/sync`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/sync`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -574,7 +573,7 @@ const Documents = () => {
message.success('success') message.success('success')
setIsAddDocumentModalShow(false) setIsAddDocumentModalShow(false)
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/list`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/list`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -601,7 +600,7 @@ const Documents = () => {
return return
} }
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/add`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/add`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -619,7 +618,7 @@ const Documents = () => {
data.success && data.success &&
synchChecked && synchChecked &&
fetch( fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/sync`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/sync`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -634,7 +633,7 @@ const Documents = () => {
message.success('success') message.success('success')
setIsAddDocumentModalShow(false) setIsAddDocumentModalShow(false)
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${spaceName}/document/list`, `${process.env.API_BASE_URL}/knowledge/${spaceName}/document/list`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {

View File

@ -21,7 +21,6 @@ import {
Typography, Typography,
styled styled
} from '@/lib/mui' } from '@/lib/mui'
import { fetchBaseURL } from '@/app/datastores/constants'
const { Dragger } = Upload const { Dragger } = Upload
@ -91,7 +90,7 @@ const Index = () => {
} }
useEffect(() => { useEffect(() => {
async function fetchData() { 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', method: 'POST',
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
@ -249,7 +248,7 @@ const Index = () => {
return return
} }
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/space/add`, `${process.env.API_BASE_URL}/knowledge/space/add`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -268,7 +267,7 @@ const Index = () => {
message.success('success') message.success('success')
setActiveStep(1) setActiveStep(1)
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/space/list`, `${process.env.API_BASE_URL}/knowledge/space/list`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -415,7 +414,7 @@ const Index = () => {
return return
} }
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/add`, `${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/add`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -434,7 +433,7 @@ const Index = () => {
setIsAddKnowledgeSpaceModalShow(false) setIsAddKnowledgeSpaceModalShow(false)
synchChecked && synchChecked &&
fetch( fetch(
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/sync`, `${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/sync`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -458,7 +457,7 @@ const Index = () => {
formData.append('doc_file', originFileObj) formData.append('doc_file', originFileObj)
formData.append('doc_type', 'DOCUMENT') formData.append('doc_type', 'DOCUMENT')
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/upload`, `${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/upload`,
{ {
method: 'POST', method: 'POST',
body: formData body: formData
@ -470,7 +469,7 @@ const Index = () => {
setIsAddKnowledgeSpaceModalShow(false) setIsAddKnowledgeSpaceModalShow(false)
synchChecked && synchChecked &&
fetch( fetch(
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/sync`, `${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/sync`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -490,7 +489,7 @@ const Index = () => {
return return
} }
const res = await fetch( const res = await fetch(
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/add`, `${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/add`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
@ -510,7 +509,7 @@ const Index = () => {
setIsAddKnowledgeSpaceModalShow(false) setIsAddKnowledgeSpaceModalShow(false)
synchChecked && synchChecked &&
fetch( fetch(
`${fetchBaseURL}/knowledge/${knowledgeSpaceName}/document/sync`, `${process.env.API_BASE_URL}/knowledge/${knowledgeSpaceName}/document/sync`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {

View File

@ -1,7 +1,7 @@
"use client"; "use client";
import { useRequest } from 'ahooks'; import { useRequest } from 'ahooks';
import { useState } from 'react'; 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 IconButton from '@mui/joy/IconButton';
import SendRoundedIcon from '@mui/icons-material/SendRounded'; import SendRoundedIcon from '@mui/icons-material/SendRounded';
import { zodResolver } from '@hookform/resolvers/zod'; import { zodResolver } from '@hookform/resolvers/zod';
@ -38,25 +38,30 @@ export default function Home() {
}; };
return ( return (
<> <>
<div className={`absolute z-20 top-0 inset-x-0 flex justify-center overflow-hidden pointer-events-none`}> <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='w-[108rem] flex-none flex justify-end'> <div className='grid gap-8 lg:grid-cols-3'>
<picture> <div className='lg:col-span-3'>
<source srcSet='/bg1.avif' type='image/avif'></source> <p className='mb-8 text-center text-2xl'>Scenes</p>
<img srcSet='/bg2.png' alt="" className='w-[71.75rem] flex-none max-w-none '/> <Box
</picture> className='grid gap-2 lg:grid-cols-3 lg:gap-6'
</div> sx={{
</div> [`& .${buttonClasses.root}`]: {
<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'> color: 'var(--joy-palette-primary-solidColor)',
<div className='lg:my-auto grid gap-8 lg:grid-cols-3'> backgroundColor: 'var(--joy-palette-primary-solidBg)',
<div className='lg:col-span-3 lg:mt-12'> height: '52px',
<p className='mb-3'>Scenes</p> '&: hover': {
<div className='grid gap-2 lg:grid-cols-3 lg:gap-4'> backgroundColor: 'var(--joy-palette-primary-solidHoverBg)',
}
}
}}
>
{scenesList?.data?.map(scene => ( {scenesList?.data?.map(scene => (
<Button <Button
key={scene['chat_scene']} key={scene['chat_scene']}
size="md" size="md"
variant="soft" variant="solid"
className='text-base rounded-none '
onClick={async () => { onClick={async () => {
const res = await sendPostRequest('/v1/chat/dialogue/new', { const res = await sendPostRequest('/v1/chat/dialogue/new', {
chat_mode: scene['chat_scene'] chat_mode: scene['chat_scene']
@ -69,42 +74,42 @@ export default function Home() {
{scene['scene_name'] {scene['scene_name']
}</Button> }</Button>
))} ))}
</div> </Box>
</div> </div>
</div> </div>
<div className='h-60 flex-none'></div> <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'>
</div> <form
<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'> style={{
<form maxWidth: '100%',
style={{ width: '100%',
maxWidth: '100%', position: 'relative',
width: '100%', display: 'flex',
position: 'relative', marginTop: 'auto',
display: 'flex', overflow: 'visible',
marginTop: 'auto', background: 'none',
overflow: 'visible', justifyContent: 'center',
background: 'none', marginLeft: 'auto',
justifyContent: 'center', marginRight: 'auto',
marginLeft: 'auto', }}
marginRight: 'auto', onSubmit={(e) => {
}} methods.handleSubmit(submit)(e);
onSubmit={(e) => { }}
methods.handleSubmit(submit)(e); >
}} <Input
> sx={{ width: '100%' }}
<Input variant="outlined"
sx={{ width: '100%' }} placeholder='Ask anything'
variant="outlined" endDecorator={
placeholder='Ask anything' <IconButton type="submit" disabled={isLoading}>
endDecorator={ <SendRoundedIcon />
<IconButton type="submit" disabled={isLoading}> </IconButton>
<SendRoundedIcon /> }
</IconButton> {...methods.register('query')}
} />
{...methods.register('query')} </form>
/> </div>
</form>
</div> </div>
</> </>
) )

View File

@ -27,7 +27,7 @@ const AgentPage = (props: {
}); });
const { history, handleChatSubmit } = useAgentChat({ const { history, handleChatSubmit } = useAgentChat({
queryAgentURL: `http://30.183.153.109:5000/v1/chat/completions`, queryAgentURL: `/v1/chat/completions`,
queryBody: { queryBody: {
conv_uid: props.params?.agentId, conv_uid: props.params?.agentId,
chat_mode: props.searchParams?.scene || 'chat_normal', chat_mode: props.searchParams?.scene || 'chat_normal',

View File

@ -2,14 +2,14 @@
import React, { useEffect, useMemo } from 'react'; import React, { useEffect, useMemo } from 'react';
import { usePathname, useRouter } from 'next/navigation'; import { usePathname, useRouter } from 'next/navigation';
import Link from 'next/link'; 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 { Box, List, ListItem, ListItemButton, ListItemDecorator, ListItemContent, Typography, Button, useColorScheme, IconButton } from '@/lib/mui';
import Article from '@mui/icons-material/Article'; import Article from '@mui/icons-material/Article';
import DarkModeIcon from '@mui/icons-material/DarkMode'; import DarkModeIcon from '@mui/icons-material/DarkMode';
import WbSunnyIcon from '@mui/icons-material/WbSunny'; import WbSunnyIcon from '@mui/icons-material/WbSunny';
import MenuIcon from '@mui/icons-material/Menu'; import MenuIcon from '@mui/icons-material/Menu';
import AddIcon from '@mui/icons-material/Add'; 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 DeleteOutlineOutlinedIcon from '@mui/icons-material/DeleteOutlineOutlined';
import { sendPostRequest } from '@/utils/request'; import { sendPostRequest } from '@/utils/request';
@ -110,6 +110,7 @@ const LeftSider = () => {
aria-labelledby="nav-list-browse" aria-labelledby="nav-list-browse"
sx={{ sx={{
'& .JoyListItemButton-root': { p: '8px' }, '& .JoyListItemButton-root': { p: '8px' },
gap: '4px'
}} }}
> >
{dialogueList?.data?.map((each) => { {dialogueList?.data?.map((each) => {
@ -119,32 +120,46 @@ const LeftSider = () => {
<ListItemButton <ListItemButton
selected={isSelect} selected={isSelect}
variant={isSelect ? 'soft' : 'plain'} variant={isSelect ? 'soft' : 'plain'}
sx={{
'&:hover .del-btn': {
visibility: 'visible'
}
}}
> >
<ListItemContent> <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}> <Typography fontSize={14} noWrap={true}>
<SmsOutlinedIcon className='mr-2' />
{each?.user_name || each?.user_input || 'undefined'} {each?.user_name || each?.user_input || 'undefined'}
</Typography> </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> </Link>
</ListItemContent> </ListItemContent>
</ListItemButton> </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> </ListItem>
) )
})} })}
@ -157,6 +172,8 @@ const LeftSider = () => {
<Box <Box
sx={{ sx={{
p: 2, p: 2,
pt: 3,
pb: 6,
borderTop: '1px solid', borderTop: '1px solid',
borderColor: 'divider', borderColor: 'divider',
display: { display: {
@ -183,6 +200,7 @@ const LeftSider = () => {
<ListItem> <ListItem>
<ListItemButton <ListItemButton
color="neutral" color="neutral"
sx={{ marginBottom: 1, height: '2.5rem' }}
selected={each.active} selected={each.active}
variant={each.active ? 'soft' : 'plain'} variant={each.active ? 'soft' : 'plain'}
> >
@ -202,6 +220,7 @@ const LeftSider = () => {
</ListItem> </ListItem>
<ListItem> <ListItem>
<ListItemButton <ListItemButton
sx={{ height: '2.5rem' }}
onClick={handleChangeTheme} onClick={handleChangeTheme}
> >
<ListItemDecorator> <ListItemDecorator>

View File

@ -7,7 +7,11 @@ export const joyTheme = extendTheme({
palette: { palette: {
mode: 'dark', mode: 'dark',
primary: { primary: {
...colors.purple, ...colors.grey,
solidBg: '#dfdfdf91',
solidColor: '#4e4e4e',
solidHoverBg: '#d5d5d5',
outlinedColor: '#4e4e59'
}, },
neutral: { neutral: {
plainColor: '#4d4d4d', plainColor: '#4d4d4d',
@ -21,16 +25,13 @@ export const joyTheme = extendTheme({
surface: '#fff' surface: '#fff'
}, },
text: { text: {
primary: '#25252D' primary: '#505050'
}, },
}, },
}, },
dark: { dark: {
palette: { palette: {
mode: 'light', mode: 'light',
primary: {
...colors.purple,
},
neutral: { neutral: {
plainColor: '#D8D8DF', plainColor: '#D8D8DF',
plainHoverColor: '#F7F7F8', plainHoverColor: '#F7F7F8',

View File

@ -49,7 +49,7 @@ import { useDialogueContext } from '@/app/context/dialogue';
const ctrl = new AbortController(); const ctrl = new AbortController();
let buffer = ''; let buffer = '';
await fetchEventSource(queryAgentURL, { await fetchEventSource(`${process.env.API_BASE_URL + queryAgentURL}`, {
method: 'POST', method: 'POST',
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',

View File

@ -6,6 +6,9 @@ const nextConfig = {
}, },
typescript: { typescript: {
ignoreBuildErrors: true ignoreBuildErrors: true
},
env: {
API_BASE_URL: process.env.API_BASE_URL || 'http://30.183.154.76:5000'
} }
} }

View 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;

View File

@ -1,16 +1,7 @@
import { message } from 'antd'; import { message } from 'antd';
import axios from 'axios'; import axios from './ctx-axios';
import { isPlainObject } from 'lodash'; 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 = { const DEFAULT_HEADERS = {
'content-type': 'application/json', 'content-type': 'application/json',
}; };

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: DB-GPT 0.1.0\n" "Project-Id-Version: DB-GPT 0.1.0\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh_CN\n" "Language: zh_CN\n"
@ -19,31 +19,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\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" msgid "Getting Started"
msgstr "开始" msgstr "开始"
#: ../../index.rst:56 ../../index.rst:77 e12392f17e074b0ab8e693947bda6fc9 #: ../../index.rst:56 ../../index.rst:77 f3b85d983f0141b5872a46451d20252a
msgid "Modules" msgid "Modules"
msgstr "模块" msgstr "模块"
#: ../../index.rst:91 ../../index.rst:107 8fe142b9f4d24fa7aa20103a01283c15 #: ../../index.rst:91 ../../index.rst:107 614a2220f0004aadab14402dab5c926d
msgid "Use Cases" msgid "Use Cases"
msgstr "示例" msgstr "示例"
#: ../../index.rst:121 ../../index.rst:124 ea5086df6a7446e180cbdff164fc4ac4 #: ../../index.rst:121 ../../index.rst:124 fae0a63e09f049a79ffbd8c1fd5b8f12
msgid "Reference" msgid "Reference"
msgstr "参考" msgstr "参考"
#: ../../index.rst:148 ../../index.rst:154 7b4ce224d08d429082917a0d20761728 #: ../../index.rst:148 ../../index.rst:154 d4113b3e7b2f4a1ba462e6a54062adff
msgid "Resources" msgid "Resources"
msgstr "资源" msgstr "资源"
#: ../../index.rst:7 5b9b4c087e2041cfa3adc5ff770a6883 #: ../../index.rst:7 6548011d66b14e71bf3f028b82bb58d6
msgid "Welcome to DB-GPT!" msgid "Welcome to DB-GPT!"
msgstr "欢迎来到DB-GPT中文文档" msgstr "欢迎来到DB-GPT中文文档"
#: ../../index.rst:8 d6e5a54e39c2400eba9036e61df0c836 #: ../../index.rst:8 da9fdd494e664e7e83448d4993c30f60
msgid "" msgid ""
"As large models are released and iterated upon, they are becoming " "As large models are released and iterated upon, they are becoming "
"increasingly intelligent. However, in the process of using large models, " "increasingly intelligent. However, in the process of using large models, "
@ -61,7 +61,7 @@ msgstr ""
"我们启动了DB-" "我们启动了DB-"
"GPT项目为所有基于数据库的场景构建一个完整的私有大模型解决方案。该方案“”支持本地部署既可应用于“独立私有环境”又可根据业务模块进行“独立部署”和“隔离”确保“大模型”的能力绝对私有、安全、可控。" "GPT项目为所有基于数据库的场景构建一个完整的私有大模型解决方案。该方案“”支持本地部署既可应用于“独立私有环境”又可根据业务模块进行“独立部署”和“隔离”确保“大模型”的能力绝对私有、安全、可控。"
#: ../../index.rst:10 7758a7767c1e4103a7dc8314abbabd2e #: ../../index.rst:10 7650af0ff7bc4a93ad82c930c81cb7f5
msgid "" msgid ""
"**DB-GPT** is an experimental open-source project that uses localized GPT" "**DB-GPT** is an experimental open-source project that uses localized GPT"
" large models to interact with your data and environment. With this " " large models to interact with your data and environment. With this "
@ -71,98 +71,102 @@ msgstr ""
"DB-GPT 是一个开源的以数据库为基础的GPT实验项目使用本地化的GPT大模型与您的数据和环境进行交互无数据泄露风险100% 私密100%" "DB-GPT 是一个开源的以数据库为基础的GPT实验项目使用本地化的GPT大模型与您的数据和环境进行交互无数据泄露风险100% 私密100%"
" 安全。" " 安全。"
#: ../../index.rst:12 8a1cd45818f848d585bc3e94aecc99ae #: ../../index.rst:12 18249811cea0456096f06da05638d474
msgid "**Features**" msgid "**Features**"
msgstr "特性" msgstr "特性"
#: ../../index.rst:13 eba08d77b2494d689cf52d3d15e04c77 #: ../../index.rst:13 367c092acf1a49a0906f78433e6d9926
msgid "" msgid ""
"Currently, we have released multiple key features, which are listed below" "Currently, we have released multiple key features, which are listed below"
" to demonstrate our current capabilities:" " to demonstrate our current capabilities:"
msgstr "目前我们已经发布了多种关键的特性,这里一一列举展示一下当前发布的能力。" msgstr "目前我们已经发布了多种关键的特性,这里一一列举展示一下当前发布的能力。"
#: ../../index.rst:15 8bf5afc3467642a7abaefe54ffe7b3a3 #: ../../index.rst:15 01334c212ef44244a306f8cfb584c48f
msgid "SQL language capabilities - SQL generation - SQL diagnosis" msgid "SQL language capabilities - SQL generation - SQL diagnosis"
msgstr "SQL语言能力 - SQL生成 - SQL诊断" msgstr "SQL语言能力 - SQL生成 - SQL诊断"
#: ../../index.rst:19 5a93613526fb42cbbc8d9cda960e8d04 #: ../../index.rst:19 fe7396137ed84517bd99c93500f21bb6
msgid "" msgid ""
"Private domain Q&A and data processing - Database knowledge Q&A - Data " "Private domain Q&A and data processing - Database knowledge Q&A - Data "
"processing" "processing"
msgstr "私有领域问答与数据处理 - 数据库知识问答 - 数据处理" msgstr "私有领域问答与数据处理 - 数据库知识问答 - 数据处理"
#: ../../index.rst:23 48d473545ce049f7bad161f05fc40888 #: ../../index.rst:23 c12af975ed2d451496a476d91b6bb4c5
msgid "" msgid ""
"Plugins - Support custom plugin execution tasks and natively support the " "Plugins - Support custom plugin execution tasks and natively support the "
"Auto-GPT plugin, such as:" "Auto-GPT plugin, such as:"
msgstr "插件模型 - 支持自定义插件执行任务并原生支持Auto-GPT插件例如:* SQL自动执行获取查询结果 * 自动爬取学习知识" msgstr "插件模型 - 支持自定义插件执行任务并原生支持Auto-GPT插件例如:* SQL自动执行获取查询结果 * 自动爬取学习知识"
#: ../../index.rst:26 6e8711ce9d024e4b8c86c9ccc61da30a #: ../../index.rst:26 97507eb30ab548fb9443b252e481d6be
msgid "" msgid ""
"Unified vector storage/indexing of knowledge base - Support for " "Unified vector storage/indexing of knowledge base - Support for "
"unstructured data such as PDF, Markdown, CSV, and WebURL" "unstructured data such as PDF, Markdown, CSV, and WebURL"
msgstr "知识库统一向量存储/索引 - 非结构化数据支持包括PDF、MarkDown、CSV、WebURL" msgstr "知识库统一向量存储/索引 - 非结构化数据支持包括PDF、MarkDown、CSV、WebURL"
#: ../../index.rst:29 b7f600ad1b2e4d4a85199a934c4b5c2f #: ../../index.rst:29 b2ff661c13d54cd79f27923163079706
msgid "" msgid ""
"Milti LLMs Support - Supports multiple large language models, currently " "Milti LLMs Support - Supports multiple large language models, currently "
"supporting Vicuna (7b, 13b), ChatGLM-6b (int4, int8) - TODO: codegen2, " "supporting Vicuna (7b, 13b), ChatGLM-6b (int4, int8) - TODO: codegen2, "
"codet5p" "codet5p"
msgstr "多模型支持 - 支持多种大语言模型, 当前已支持Vicuna(7b,13b), ChatGLM-6b(int4, int8)" msgstr "多模型支持 - 支持多种大语言模型, 当前已支持Vicuna(7b,13b), ChatGLM-6b(int4, int8)"
#: ../../index.rst:35 7350947e20c146408cf7f99671cfc295 #: ../../index.rst:35 15178a36df624fa9b4a5acdab5060752
msgid "" msgid ""
"How to get started using DB-GPT to interact with your data and " "How to get started using DB-GPT to interact with your data and "
"environment." "environment."
msgstr "开始使用DB-GPT与您的数据环境进行交互。" msgstr "开始使用DB-GPT与您的数据环境进行交互。"
#: ../../index.rst:36 5bad56f636ac42978634b18628fd6a20 #: ../../index.rst:36 8aa3a44286b244a4b9b92db285e5382b
#, fuzzy #, fuzzy
msgid "`Quickstart Guide <./getting_started/getting_started.html>`_" msgid "`Quickstart Guide <./getting_started/getting_started.html>`_"
msgstr "`使用指南 <./getting_started/getting_started.html>`_" msgstr "`使用指南 <./getting_started/getting_started.html>`_"
#: ../../index.rst:38 ca63453d7ee84d05821af994be060932 #: ../../index.rst:38 3f4ec91e5df44629aff6c94ffbaa37d7
msgid "Concepts and terminology" msgid "Concepts and terminology"
msgstr "相关概念" msgstr "相关概念"
#: ../../index.rst:40 abddf7b7d23c49149eb70e384ab3eedf #: ../../index.rst:40 d0126674e0e24aefbf51d610b2fcf5da
#, fuzzy #, fuzzy
msgid "`Concepts and Terminology <./getting_started/concepts.html>`_" msgid "`Concepts and Terminology <./getting_started/concepts.html>`_"
msgstr "`相关概念 <./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>`_" msgid "`Tutorials <.getting_started/tutorials.html>`_"
msgstr "`教程 <.getting_started/tutorials.html>`_" msgstr "`教程 <.getting_started/tutorials.html>`_"
#: ../../index.rst:58 6561430a5aca482d9e36c281d530bce1 #: ../../index.rst:58 5f93833b5e8f42b7b8728587f5054d8b
msgid "" msgid ""
"These modules are the core abstractions with which we can interact with " "These modules are the core abstractions with which we can interact with "
"data and environment smoothly." "data and environment smoothly."
msgstr "这些模块是我们可以与数据和环境顺利地进行交互的核心组成。" msgstr "这些模块是我们可以与数据和环境顺利地进行交互的核心组成。"
#: ../../index.rst:59 5b0c1abed4e74351a52a17bd420f61d9 #: ../../index.rst:59 d68173b40df146818ddf68b309bbd27d
msgid "" msgid ""
"It's very important for DB-GPT, DB-GPT also provide standard, extendable " "It's very important for DB-GPT, DB-GPT also provide standard, extendable "
"interfaces." "interfaces."
msgstr "DB-GPT还提供了标准的、可扩展的接口。" msgstr "DB-GPT还提供了标准的、可扩展的接口。"
#: ../../index.rst:61 71a71702e36f4d298b4c07af77daa305 #: ../../index.rst:61 00257e3907b346d5bd007f2cfe52bac9
msgid "" msgid ""
"The docs for each module contain quickstart examples, how to guides, " "The docs for each module contain quickstart examples, how to guides, "
"reference docs, and conceptual guides." "reference docs, and conceptual guides."
msgstr "每个模块的文档都包含快速入门的例子、操作指南、参考文档和相关概念等内容。" msgstr "每个模块的文档都包含快速入门的例子、操作指南、参考文档和相关概念等内容。"
#: ../../index.rst:63 c5c59f19e04340e8a8105f020143d378 #: ../../index.rst:63 e04ba16ec943405080a26ec874e67823
msgid "The modules are as follows" msgid "The modules are as follows"
msgstr "组成模块如下:" msgstr "组成模块如下:"
#: ../../index.rst:65 c6141fac66e7440593ed74962676085f #: ../../index.rst:65 12d9ce3eda484316b3fcbbb2adb48b6e
msgid "" msgid ""
"`LLMs <./modules/llms.html>`_: Supported multi models management and " "`LLMs <./modules/llms.html>`_: Supported multi models management and "
"integrations." "integrations."
msgstr "`LLMs <./modules/llms.html>`_:基于FastChat提供大模型的运行环境。支持多模型管理和集成。 " msgstr "`LLMs <./modules/llms.html>`_:基于FastChat提供大模型的运行环境。支持多模型管理和集成。 "
#: ../../index.rst:67 762dac57a0a842beb69668917477164f #: ../../index.rst:67 9d7ce6fea46c41c0940198499336430e
msgid "" msgid ""
"`Prompts <./modules/prompts.html>`_: Prompt management, optimization, and" "`Prompts <./modules/prompts.html>`_: Prompt management, optimization, and"
" serialization for multi database." " serialization for multi database."
@ -170,59 +174,59 @@ msgstr ""
"`Prompt自动生成与优化 <./modules/prompts.html>`_: 自动化生成高质量的Prompt " "`Prompt自动生成与优化 <./modules/prompts.html>`_: 自动化生成高质量的Prompt "
",并进行优化,提高系统的响应效率" ",并进行优化,提高系统的响应效率"
#: ../../index.rst:69 a4183c4e5469468a8c0a66eff57b55cf #: ../../index.rst:69 0847158883424a98a02e58fd9c2d6744
msgid "`Plugins <./modules/plugins.html>`_: Plugins management, scheduler." msgid "`Plugins <./modules/plugins.html>`_: Plugins management, scheduler."
msgstr "`Agent与插件 <./modules/plugins.html>`_:提供Agent和插件机制使得用户可以自定义并增强系统的行为。" msgstr "`Agent与插件 <./modules/plugins.html>`_:提供Agent和插件机制使得用户可以自定义并增强系统的行为。"
#: ../../index.rst:71 1fb71f17d87d4e81986685afca5c5f64 #: ../../index.rst:71 6b2a8143adff4395b6a86a6d22078a87
#, fuzzy #, fuzzy
msgid "" msgid ""
"`Knowledge <./modules/knowledge.html>`_: Knowledge management, embedding," "`Knowledge <./modules/knowledge.html>`_: Knowledge management, embedding,"
" and search." " and search."
msgstr "`知识库能力: <./modules/knowledge.html>`_: 支持私域知识库问答能力, " msgstr "`知识库能力: <./modules/knowledge.html>`_: 支持私域知识库问答能力, "
#: ../../index.rst:73 b063179603b64fef8dc00265dcdf44a9 #: ../../index.rst:73 70e831c592ca431791a614934061c148
msgid "" msgid ""
"`Connections <./modules/connections.html>`_: Supported multi databases " "`Connections <./modules/connections.html>`_: Supported multi databases "
"connection. management connections and interact with this." "connection. management connections and interact with this."
msgstr "`连接模块 <./modules/connections.html>`_: 用于连接不同的模块和数据源,实现数据的流转和交互 " msgstr "`连接模块 <./modules/connections.html>`_: 用于连接不同的模块和数据源,实现数据的流转和交互 "
#: ../../index.rst:75 033bc012c46a4ec780022e51e32ba173 #: ../../index.rst:75 1a5eaebe25174828b60c17475dae7928
#, fuzzy #, fuzzy
msgid "`Vector <./modules/vector.html>`_: Supported multi vector database." msgid "`Vector <./modules/vector.html>`_: Supported multi vector database."
msgstr "`LLMs <./modules/llms.html>`_:基于FastChat提供大模型的运行环境。支持多模型管理和集成。 " 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:" msgid "Best Practices and built-in implementations for common DB-GPT use cases:"
msgstr "DB-GPT用例的最佳实践和内置方法:" msgstr "DB-GPT用例的最佳实践和内置方法:"
#: ../../index.rst:95 827074b48e7846fb9c77aaa82ff7375a #: ../../index.rst:95 fcc65a470c5643619688488cfe010f61
msgid "" msgid ""
"`Sql generation and diagnosis " "`Sql generation and diagnosis "
"<./use_cases/sql_generation_and_diagnosis.html>`_: SQL generation and " "<./use_cases/sql_generation_and_diagnosis.html>`_: SQL generation and "
"diagnosis." "diagnosis."
msgstr "`Sql生成和诊断 <./use_cases/sql_generation_and_diagnosis.html>`_: Sql生成和诊断。" msgstr "`Sql生成和诊断 <./use_cases/sql_generation_and_diagnosis.html>`_: Sql生成和诊断。"
#: ../../index.rst:97 59f4b4e2a0c54e0aa1dd4ed6d866569d #: ../../index.rst:97 26b983fbb9394f94bf31636175cc6f95
msgid "" msgid ""
"`knownledge Based QA <./use_cases/knownledge_based_qa.html>`_: A " "`knownledge Based QA <./use_cases/knownledge_based_qa.html>`_: A "
"important scene for user to chat with database documents, codes, bugs and" "important scene for user to chat with database documents, codes, bugs and"
" schemas." " schemas."
msgstr "`知识库问答 <./use_cases/knownledge_based_qa.html>`_: 用户与数据库文档、代码和bug聊天的重要场景\"" msgstr "`知识库问答 <./use_cases/knownledge_based_qa.html>`_: 用户与数据库文档、代码和bug聊天的重要场景\""
#: ../../index.rst:99 61cbb326c1134cf3b4dbf4585036c046 #: ../../index.rst:99 aa4cfc95a3bf463682952bf40f38c99b
msgid "" msgid ""
"`Chatbots <./use_cases/chatbots.html>`_: Language model love to chat, use" "`Chatbots <./use_cases/chatbots.html>`_: Language model love to chat, use"
" multi models to chat." " multi models to chat."
msgstr "`聊天机器人 <./use_cases/chatbots.html>`_: 使用多模型进行对话" msgstr "`聊天机器人 <./use_cases/chatbots.html>`_: 使用多模型进行对话"
#: ../../index.rst:101 488b5a083f364d488284c64400f452ff #: ../../index.rst:101 e9b540aab91c44ae911bf96aa18c0f36
msgid "" msgid ""
"`Querying Database Data <./use_cases/query_database_data.html>`_: Query " "`Querying Database Data <./use_cases/query_database_data.html>`_: Query "
"and Analysis data from databases and give charts." "and Analysis data from databases and give charts."
msgstr "`查询数据库数据 <./use_cases/query_database_data.html>`_:从数据库中查询和分析数据并给出图表。" msgstr "`查询数据库数据 <./use_cases/query_database_data.html>`_:从数据库中查询和分析数据并给出图表。"
#: ../../index.rst:103 2a54fcac7c2f47da8a415087450a784d #: ../../index.rst:103 88a99b638b4a42abae39fe9de4f16927
msgid "" msgid ""
"`Interacting with apis <./use_cases/interacting_with_api.html>`_: " "`Interacting with apis <./use_cases/interacting_with_api.html>`_: "
"Interact with apis, such as create a table, deploy a database cluster, " "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交互 <./use_cases/interacting_with_api.html>`_: "
"与API交互例如创建表、部署数据库集群、创建数据库等。" "与API交互例如创建表、部署数据库集群、创建数据库等。"
#: ../../index.rst:105 126df42194b643cd9b9326ee71b62912 #: ../../index.rst:105 53cb38b16ed04420934233aec02fd44b
msgid "" msgid ""
"`Tool use with plugins <./use_cases/tool_use_with_plugin>`_: According to" "`Tool use with plugins <./use_cases/tool_use_with_plugin>`_: According to"
" Plugin use tools to manage databases autonomoly." " Plugin use tools to manage databases autonomoly."
msgstr "`插件工具 <./use_cases/tool_use_with_plugin>`_: 根据插件使用工具自主管理数据库。" msgstr "`插件工具 <./use_cases/tool_use_with_plugin>`_: 根据插件使用工具自主管理数据库。"
#: ../../index.rst:122 fd5e4ce005f24f8eb6eeafe6d16de131 #: ../../index.rst:122 fbc2fe1374ac4909b1c66ea11bbfafec
msgid "" msgid ""
"Full documentation on all methods, classes, installation methods, and " "Full documentation on all methods, classes, installation methods, and "
"integration setups for DB-GPT." "integration setups for DB-GPT."
msgstr "关于DB-GPT的所有方法、类、安装方法和集成设置的完整文档。" msgstr "关于DB-GPT的所有方法、类、安装方法和集成设置的完整文档。"
#: ../../index.rst:133 ee9eb07b432040059c50e6834487f524 #: ../../index.rst:133 c45530a6c3a34a42a0fd8bca6efe3b07
msgid "Ecosystem" msgid "Ecosystem"
msgstr "环境系统" msgstr "环境系统"
#: ../../index.rst:135 826bf512f3a146a89af657abacac6b1b #: ../../index.rst:135 e9f68f4abbdc4832889d0e343ce43d27
msgid "Guides for how other companies/products can be used with DB-GPT" msgid "Guides for how other companies/products can be used with DB-GPT"
msgstr "其他公司/产品如何与DB-GPT一起使用的方法指南" msgstr "其他公司/产品如何与DB-GPT一起使用的方法指南"
#: ../../index.rst:150 4237eb1479194d8087dfd4f64d944555 #: ../../index.rst:150 c33686daaa7c44d28c96dc22c0d9480c
msgid "" msgid ""
"Additional resources we think may be useful as you develop your " "Additional resources we think may be useful as you develop your "
"application!" "application!"
msgstr "“我们认为在您开发应用程序时可能有用的其他资源!”" msgstr "“我们认为在您开发应用程序时可能有用的其他资源!”"
#: ../../index.rst:152 fc80bea0667a4faba7d4ea7dc697fc28 #: ../../index.rst:152 f6d108be181f47af80c4b8a5931ff172
msgid "" msgid ""
"`Discord <https://discord.com/invite/twmZk3vv>`_: if your have some " "`Discord <https://discord.com/invite/twmZk3vv>`_: if your have some "
"problem or ideas, you can talk from discord." "problem or ideas, you can talk from discord."