Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
赵月辉
/
fastgpt-migrated
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Unverified
Commit
7529f51e
authored
Mar 15, 2023
by
Archer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
temp
parent
be69cfb9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
67 additions
and
21 deletions
+67
-21
src/constants/theme.ts
+7
-2
src/pages/api/chat/chatGpt.ts
+8
-3
src/pages/chat/components/SlideBar.tsx
+19
-0
src/pages/chat/index.tsx
+0
-0
src/pages/model/list.tsx
+11
-13
src/service/response.ts
+1
-1
src/store/user.ts
+21
-2
No files found.
src/constants/theme.ts
View file @
7529f51e
...
@@ -45,8 +45,13 @@ const Button = defineStyleConfig({
...
@@ -45,8 +45,13 @@ const Button = defineStyleConfig({
}
}
},
},
variants
:
{
variants
:
{
outline
:
{
white
:
{
borderWidth
:
'1.5px'
color
:
'#fff'
,
backgroundColor
:
'transparent'
,
border
:
'1px solid #ffffff'
,
_hover
:
{
backgroundColor
:
'rgba(255,255,255,0.1)'
}
}
}
},
},
defaultProps
:
{
defaultProps
:
{
...
...
src/pages/api/chat/chatGpt.ts
View file @
7529f51e
...
@@ -103,9 +103,14 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -103,9 +103,14 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
}
}
};
};
for
await
(
const
chunk
of
chatResponse
.
data
as
any
)
{
const
decoder
=
new
TextDecoder
();
const
parser
=
createParser
(
onParse
);
try
{
parser
.
feed
(
decodeURIComponent
(
chunk
));
for
await
(
const
chunk
of
chatResponse
.
data
as
any
)
{
const
parser
=
createParser
(
onParse
);
parser
.
feed
(
decoder
.
decode
(
chunk
));
}
}
catch
(
error
)
{
console
.
log
(
'pipe error'
,
error
);
}
}
pass
.
push
(
null
);
pass
.
push
(
null
);
}
catch
(
err
:
any
)
{
}
catch
(
err
:
any
)
{
...
...
src/pages/chat/components/SlideBar.tsx
0 → 100644
View file @
7529f51e
import
React
from
'react'
;
import
{
Box
,
Button
}
from
'@chakra-ui/react'
;
import
{
AddIcon
}
from
'@chakra-ui/icons'
;
const
SlideBar
=
({
resetChat
}:
{
resetChat
:
()
=>
void
})
=>
{
return
(
<
Box
flex=
{
'0 0 250px'
}
p=
{
3
}
backgroundColor=
{
'blackAlpha.800'
}
color=
{
'white'
}
>
{
/* 新对话 */
}
<
Button
w=
{
'100%'
}
variant=
{
'white'
}
h=
{
'40px'
}
leftIcon=
{
<
AddIcon
/>
}
onClick=
{
resetChat
}
>
新对话
</
Button
>
{
/* 我的模型 */
}
{
/* 历史记录 */
}
</
Box
>
);
};
export
default
SlideBar
;
src/pages/chat/index.tsx
View file @
7529f51e
This diff is collapsed.
Click to expand it.
src/pages/model/list.tsx
View file @
7529f51e
import
React
,
{
useState
,
useCallback
}
from
'react'
;
import
React
,
{
useState
,
useCallback
}
from
'react'
;
import
{
Box
,
Button
,
Flex
,
Card
}
from
'@chakra-ui/react'
;
import
{
Box
,
Button
,
Flex
,
Card
}
from
'@chakra-ui/react'
;
import
{
getMyModels
}
from
'@/api/model'
;
import
{
getChatSiteId
}
from
'@/api/chat'
;
import
{
getChatSiteId
}
from
'@/api/chat'
;
import
{
ModelType
}
from
'@/types/model'
;
import
{
ModelType
}
from
'@/types/model'
;
import
{
useRouter
}
from
'next/router'
;
import
{
useRouter
}
from
'next/router'
;
...
@@ -11,6 +10,7 @@ import { useQuery } from '@tanstack/react-query';
...
@@ -11,6 +10,7 @@ import { useQuery } from '@tanstack/react-query';
import
{
useLoading
}
from
'@/hooks/useLoading'
;
import
{
useLoading
}
from
'@/hooks/useLoading'
;
import
dynamic
from
'next/dynamic'
;
import
dynamic
from
'next/dynamic'
;
import
{
useToast
}
from
'@/hooks/useToast'
;
import
{
useToast
}
from
'@/hooks/useToast'
;
import
{
useUserStore
}
from
'@/store/user'
;
const
CreateModel
=
dynamic
(()
=>
import
(
'./components/CreateModel'
));
const
CreateModel
=
dynamic
(()
=>
import
(
'./components/CreateModel'
));
...
@@ -18,22 +18,20 @@ const ModelList = () => {
...
@@ -18,22 +18,20 @@ const ModelList = () => {
const
{
toast
}
=
useToast
();
const
{
toast
}
=
useToast
();
const
{
isPc
}
=
useScreen
();
const
{
isPc
}
=
useScreen
();
const
router
=
useRouter
();
const
router
=
useRouter
();
const
[
models
,
setModels
]
=
useState
<
ModelType
[]
>
([]
);
const
{
myModels
,
setMyModels
,
getMyModels
}
=
useUserStore
(
);
const
[
openCreateModel
,
setOpenCreateModel
]
=
useState
(
false
);
const
[
openCreateModel
,
setOpenCreateModel
]
=
useState
(
false
);
const
{
Loading
,
setIsLoading
}
=
useLoading
();
const
{
Loading
,
setIsLoading
}
=
useLoading
();
/* 加载模型 */
/* 加载模型 */
const
{
isLoading
}
=
useQuery
([
'loadModels'
],
()
=>
getMyModels
(),
{
const
{
isLoading
}
=
useQuery
([
'loadModels'
],
getMyModels
);
onSuccess
(
res
)
{
if
(
!
res
)
return
;
setModels
(
res
);
}
});
/* 创建成功回调 */
/* 创建成功回调 */
const
createModelSuccess
=
useCallback
((
data
:
ModelType
)
=>
{
const
createModelSuccess
=
useCallback
(
setModels
((
state
)
=>
[
data
,
...
state
]);
(
data
:
ModelType
)
=>
{
},
[]);
setMyModels
([
data
,
...
myModels
]);
},
[
myModels
,
setMyModels
]
);
/* 点前往聊天预览页 */
/* 点前往聊天预览页 */
const
handlePreviewChat
=
useCallback
(
const
handlePreviewChat
=
useCallback
(
...
@@ -74,9 +72,9 @@ const ModelList = () => {
...
@@ -74,9 +72,9 @@ const ModelList = () => {
{
/* 表单 */
}
{
/* 表单 */
}
<
Box
mt=
{
5
}
position=
{
'relative'
}
>
<
Box
mt=
{
5
}
position=
{
'relative'
}
>
{
isPc
?
(
{
isPc
?
(
<
ModelTable
models=
{
models
}
handlePreviewChat=
{
handlePreviewChat
}
/>
<
ModelTable
models=
{
m
yM
odels
}
handlePreviewChat=
{
handlePreviewChat
}
/>
)
:
(
)
:
(
<
ModelPhoneList
models=
{
models
}
handlePreviewChat=
{
handlePreviewChat
}
/>
<
ModelPhoneList
models=
{
m
yM
odels
}
handlePreviewChat=
{
handlePreviewChat
}
/>
)
}
)
}
</
Box
>
</
Box
>
{
/* 创建弹窗 */
}
{
/* 创建弹窗 */
}
...
...
src/service/response.ts
View file @
7529f51e
...
@@ -28,7 +28,7 @@ export const jsonRes = (
...
@@ -28,7 +28,7 @@ export const jsonRes = (
}
else
if
(
openaiError
[
error
?.
response
?.
statusText
])
{
}
else
if
(
openaiError
[
error
?.
response
?.
statusText
])
{
msg
=
openaiError
[
error
.
response
.
statusText
];
msg
=
openaiError
[
error
.
response
.
statusText
];
}
}
// console.log(error?.response)
console
.
log
(
'error->'
,
error
.
code
,
error
?.
response
?.
statusText
,
msg
);
console
.
log
(
'error->'
,
error
.
code
,
error
?.
response
?.
statusText
,
msg
);
}
}
...
...
src/store/user.ts
View file @
7529f51e
...
@@ -2,25 +2,30 @@ import { create } from 'zustand';
...
@@ -2,25 +2,30 @@ import { create } from 'zustand';
import
{
devtools
}
from
'zustand/middleware'
;
import
{
devtools
}
from
'zustand/middleware'
;
import
{
immer
}
from
'zustand/middleware/immer'
;
import
{
immer
}
from
'zustand/middleware/immer'
;
import
type
{
UserType
,
UserUpdateParams
}
from
'@/types/user'
;
import
type
{
UserType
,
UserUpdateParams
}
from
'@/types/user'
;
import
type
{
ModelType
}
from
'@/types/model'
;
import
{
setToken
}
from
'@/utils/user'
;
import
{
setToken
}
from
'@/utils/user'
;
import
{
getMyModels
}
from
'@/api/model'
;
type
State
=
{
type
State
=
{
userInfo
:
UserType
|
null
;
userInfo
:
UserType
|
null
;
setUserInfo
:
(
user
:
UserType
,
token
?:
string
)
=>
void
;
setUserInfo
:
(
user
:
UserType
,
token
?:
string
)
=>
void
;
updateUserInfo
:
(
user
:
UserUpdateParams
)
=>
void
;
updateUserInfo
:
(
user
:
UserUpdateParams
)
=>
void
;
myModels
:
ModelType
[];
getMyModels
:
()
=>
void
;
setMyModels
:
(
data
:
ModelType
[])
=>
void
;
};
};
export
const
useUserStore
=
create
<
State
>
()(
export
const
useUserStore
=
create
<
State
>
()(
devtools
(
devtools
(
immer
((
set
,
get
)
=>
({
immer
((
set
,
get
)
=>
({
userInfo
:
null
,
userInfo
:
null
,
setUserInfo
:
(
user
:
UserType
,
token
?:
string
)
=>
{
setUserInfo
(
user
:
UserType
,
token
?:
string
)
{
set
((
state
)
=>
{
set
((
state
)
=>
{
state
.
userInfo
=
user
;
state
.
userInfo
=
user
;
});
});
token
&&
setToken
(
token
);
token
&&
setToken
(
token
);
},
},
updateUserInfo
:
(
user
:
UserUpdateParams
)
=>
{
updateUserInfo
(
user
:
UserUpdateParams
)
{
set
((
state
)
=>
{
set
((
state
)
=>
{
if
(
!
state
.
userInfo
)
return
;
if
(
!
state
.
userInfo
)
return
;
state
.
userInfo
=
{
state
.
userInfo
=
{
...
@@ -28,6 +33,20 @@ export const useUserStore = create<State>()(
...
@@ -28,6 +33,20 @@ export const useUserStore = create<State>()(
...
user
...
user
};
};
});
});
},
myModels
:
[],
getMyModels
:
()
=>
getMyModels
().
then
((
res
)
=>
{
set
((
state
)
=>
{
state
.
myModels
=
res
;
});
return
res
;
}),
setMyModels
(
data
:
ModelType
[])
{
set
((
state
)
=>
{
state
.
myModels
=
data
;
});
return
null
;
}
}
}))
}))
)
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment