Commit 7529f51e by Archer

temp

parent be69cfb9
......@@ -45,8 +45,13 @@ const Button = defineStyleConfig({
}
},
variants: {
outline: {
borderWidth: '1.5px'
white: {
color: '#fff',
backgroundColor: 'transparent',
border: '1px solid #ffffff',
_hover: {
backgroundColor: 'rgba(255,255,255,0.1)'
}
}
},
defaultProps: {
......
......@@ -103,9 +103,14 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
}
};
for await (const chunk of chatResponse.data as any) {
const parser = createParser(onParse);
parser.feed(decodeURIComponent(chunk));
const decoder = new TextDecoder();
try {
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);
} catch (err: any) {
......
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;
import React, { useState, useCallback } from 'react';
import { Box, Button, Flex, Card } from '@chakra-ui/react';
import { getMyModels } from '@/api/model';
import { getChatSiteId } from '@/api/chat';
import { ModelType } from '@/types/model';
import { useRouter } from 'next/router';
......@@ -11,6 +10,7 @@ import { useQuery } from '@tanstack/react-query';
import { useLoading } from '@/hooks/useLoading';
import dynamic from 'next/dynamic';
import { useToast } from '@/hooks/useToast';
import { useUserStore } from '@/store/user';
const CreateModel = dynamic(() => import('./components/CreateModel'));
......@@ -18,22 +18,20 @@ const ModelList = () => {
const { toast } = useToast();
const { isPc } = useScreen();
const router = useRouter();
const [models, setModels] = useState<ModelType[]>([]);
const { myModels, setMyModels, getMyModels } = useUserStore();
const [openCreateModel, setOpenCreateModel] = useState(false);
const { Loading, setIsLoading } = useLoading();
/* 加载模型 */
const { isLoading } = useQuery(['loadModels'], () => getMyModels(), {
onSuccess(res) {
if (!res) return;
setModels(res);
}
});
const { isLoading } = useQuery(['loadModels'], getMyModels);
/* 创建成功回调 */
const createModelSuccess = useCallback((data: ModelType) => {
setModels((state) => [data, ...state]);
}, []);
const createModelSuccess = useCallback(
(data: ModelType) => {
setMyModels([data, ...myModels]);
},
[myModels, setMyModels]
);
/* 点前往聊天预览页 */
const handlePreviewChat = useCallback(
......@@ -74,9 +72,9 @@ const ModelList = () => {
{/* 表单 */}
<Box mt={5} position={'relative'}>
{isPc ? (
<ModelTable models={models} handlePreviewChat={handlePreviewChat} />
<ModelTable models={myModels} handlePreviewChat={handlePreviewChat} />
) : (
<ModelPhoneList models={models} handlePreviewChat={handlePreviewChat} />
<ModelPhoneList models={myModels} handlePreviewChat={handlePreviewChat} />
)}
</Box>
{/* 创建弹窗 */}
......
......@@ -28,7 +28,7 @@ export const jsonRes = (
} else if (openaiError[error?.response?.statusText]) {
msg = openaiError[error.response.statusText];
}
// console.log(error?.response)
console.log('error->', error.code, error?.response?.statusText, msg);
}
......
......@@ -2,25 +2,30 @@ import { create } from 'zustand';
import { devtools } from 'zustand/middleware';
import { immer } from 'zustand/middleware/immer';
import type { UserType, UserUpdateParams } from '@/types/user';
import type { ModelType } from '@/types/model';
import { setToken } from '@/utils/user';
import { getMyModels } from '@/api/model';
type State = {
userInfo: UserType | null;
setUserInfo: (user: UserType, token?: string) => void;
updateUserInfo: (user: UserUpdateParams) => void;
myModels: ModelType[];
getMyModels: () => void;
setMyModels: (data: ModelType[]) => void;
};
export const useUserStore = create<State>()(
devtools(
immer((set, get) => ({
userInfo: null,
setUserInfo: (user: UserType, token?: string) => {
setUserInfo(user: UserType, token?: string) {
set((state) => {
state.userInfo = user;
});
token && setToken(token);
},
updateUserInfo: (user: UserUpdateParams) => {
updateUserInfo(user: UserUpdateParams) {
set((state) => {
if (!state.userInfo) return;
state.userInfo = {
......@@ -28,6 +33,20 @@ export const useUserStore = create<State>()(
...user
};
});
},
myModels: [],
getMyModels: () =>
getMyModels().then((res) => {
set((state) => {
state.myModels = res;
});
return res;
}),
setMyModels(data: ModelType[]) {
set((state) => {
state.myModels = data;
});
return null;
}
}))
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment