Bläddra i källkod

Feat: Load the dialog page, prohibit calling the dialog/get interface #6798 (#6799)

### What problem does this PR solve?

Feat: Load the dialog page, prohibit calling the dialog/get interface
#6798

### Type of change


- [x] New Feature (non-breaking change which adds functionality)
tags/v0.18.0
balibabu 7 månader sedan
förälder
incheckning
f49588756e
Inget konto är kopplat till bidragsgivarens mejladress
2 ändrade filer med 22 tillägg och 12 borttagningar
  1. 8
    6
      web/src/hooks/chat-hooks.ts
  2. 14
    6
      web/src/pages/chat/hooks.ts

+ 8
- 6
web/src/hooks/chat-hooks.ts Visa fil

@@ -84,7 +84,7 @@ export const useGetChatSearchParams = () => {

//#region dialog

export const useFetchNextDialogList = () => {
export const useFetchNextDialogList = (pureFetch = false) => {
const { handleClickDialog } = useClickDialogCard();
const { dialogId } = useGetChatSearchParams();

@@ -103,12 +103,14 @@ export const useFetchNextDialogList = () => {

if (data.code === 0) {
const list: IDialog[] = data.data;
if (list.length > 0) {
if (list.every((x) => x.id !== dialogId)) {
handleClickDialog(data.data[0].id);
if (!pureFetch) {
if (list.length > 0) {
if (list.every((x) => x.id !== dialogId)) {
handleClickDialog(data.data[0].id);
}
} else {
history.push('/chat');
}
} else {
history.push('/chat');
}
}


+ 14
- 6
web/src/pages/chat/hooks.ts Visa fil

@@ -6,6 +6,7 @@ import {
useFetchNextConversation,
useFetchNextConversationList,
useFetchNextDialog,
useFetchNextDialogList,
useGetChatSearchParams,
useRemoveNextConversation,
useRemoveNextDialog,
@@ -202,15 +203,24 @@ export const useEditDialog = () => {

//#region conversation

const useFindPrologueFromDialogList = () => {
const { dialogId } = useGetChatSearchParams();
const { data: dialogList } = useFetchNextDialogList(true);
const prologue = useMemo(() => {
return dialogList.find((x) => x.id === dialogId)?.prompt_config.prologue;
}, [dialogId, dialogList]);

return prologue;
};

export const useSelectDerivedConversationList = () => {
const { t } = useTranslate('chat');

const [list, setList] = useState<Array<IConversation>>([]);
const { data: currentDialog } = useFetchNextDialog();
const { data: conversationList, loading } = useFetchNextConversationList();
const { dialogId } = useGetChatSearchParams();
const prologue = currentDialog?.prompt_config?.prologue ?? '';
const { setNewConversationRouteParams } = useSetNewConversationRouteParams();
const prologue = useFindPrologueFromDialogList();

const addTemporaryConversation = useCallback(() => {
const conversationId = getConversationId();
@@ -291,13 +301,11 @@ export const useSelectNextMessages = () => {
removeMessagesAfterCurrentMessage,
} = useSelectDerivedMessages();
const { data: conversation, loading } = useFetchNextConversation();
const { data: dialog } = useFetchNextDialog();
const { conversationId, dialogId, isNew } = useGetChatSearchParams();
const prologue = useFindPrologueFromDialogList();

const addPrologue = useCallback(() => {
if (dialogId !== '' && isNew === 'true') {
const prologue = dialog.prompt_config?.prologue;

const nextMessage = {
role: MessageType.Assistant,
content: prologue,
@@ -306,7 +314,7 @@ export const useSelectNextMessages = () => {

setDerivedMessages([nextMessage]);
}
}, [isNew, dialog, dialogId, setDerivedMessages]);
}, [dialogId, isNew, prologue, setDerivedMessages]);

useEffect(() => {
addPrologue();

Laddar…
Avbryt
Spara