| 
                        123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 | 
                        - import {
 -   IConversation,
 -   IDialog,
 -   IStats,
 -   IToken,
 - } from '@/interfaces/database/chat';
 - import { useCallback } from 'react';
 - import { useDispatch, useSelector } from 'umi';
 - 
 - export const useFetchDialogList = () => {
 -   const dispatch = useDispatch();
 - 
 -   const fetchDialogList = useCallback(() => {
 -     return dispatch<any>({ type: 'chatModel/listDialog' });
 -   }, [dispatch]);
 - 
 -   return fetchDialogList;
 - };
 - 
 - export const useSelectDialogList = () => {
 -   const dialogList: IDialog[] = useSelector(
 -     (state: any) => state.chatModel.dialogList,
 -   );
 - 
 -   return dialogList;
 - };
 - 
 - export const useFetchConversationList = () => {
 -   const dispatch = useDispatch();
 - 
 -   const fetchConversationList = useCallback(
 -     async (dialogId: string) => {
 -       if (dialogId) {
 -         dispatch({
 -           type: 'chatModel/listConversation',
 -           payload: { dialog_id: dialogId },
 -         });
 -       }
 -     },
 -     [dispatch],
 -   );
 - 
 -   return fetchConversationList;
 - };
 - 
 - export const useSelectConversationList = () => {
 -   const conversationList: IConversation[] = useSelector(
 -     (state: any) => state.chatModel.conversationList,
 -   );
 - 
 -   return conversationList;
 - };
 - 
 - export const useFetchConversation = () => {
 -   const dispatch = useDispatch();
 - 
 -   const fetchConversation = useCallback(
 -     (conversationId: string, needToBeSaved = true) => {
 -       return dispatch<any>({
 -         type: 'chatModel/getConversation',
 -         payload: {
 -           needToBeSaved,
 -           conversation_id: conversationId,
 -         },
 -       });
 -     },
 -     [dispatch],
 -   );
 - 
 -   return fetchConversation;
 - };
 - 
 - export const useFetchDialog = () => {
 -   const dispatch = useDispatch();
 - 
 -   const fetchDialog = useCallback(
 -     (dialogId: string, needToBeSaved = true) => {
 -       if (dialogId) {
 -         return dispatch<any>({
 -           type: 'chatModel/getDialog',
 -           payload: { dialog_id: dialogId, needToBeSaved },
 -         });
 -       }
 -     },
 -     [dispatch],
 -   );
 - 
 -   return fetchDialog;
 - };
 - 
 - export const useRemoveDialog = () => {
 -   const dispatch = useDispatch();
 - 
 -   const removeDocument = useCallback(
 -     (dialogIds: Array<string>) => {
 -       return dispatch({
 -         type: 'chatModel/removeDialog',
 -         payload: {
 -           dialog_ids: dialogIds,
 -         },
 -       });
 -     },
 -     [dispatch],
 -   );
 - 
 -   return removeDocument;
 - };
 - 
 - export const useUpdateConversation = () => {
 -   const dispatch = useDispatch();
 - 
 -   const updateConversation = useCallback(
 -     (payload: any) => {
 -       return dispatch<any>({
 -         type: 'chatModel/setConversation',
 -         payload,
 -       });
 -     },
 -     [dispatch],
 -   );
 - 
 -   return updateConversation;
 - };
 - 
 - export const useSetDialog = () => {
 -   const dispatch = useDispatch();
 - 
 -   const setDialog = useCallback(
 -     (payload: IDialog) => {
 -       return dispatch<any>({ type: 'chatModel/setDialog', payload });
 -     },
 -     [dispatch],
 -   );
 - 
 -   return setDialog;
 - };
 - 
 - export const useRemoveConversation = () => {
 -   const dispatch = useDispatch();
 - 
 -   const removeConversation = useCallback(
 -     (conversationIds: Array<string>, dialogId: string) => {
 -       return dispatch<any>({
 -         type: 'chatModel/removeConversation',
 -         payload: {
 -           dialog_id: dialogId,
 -           conversation_ids: conversationIds,
 -         },
 -       });
 -     },
 -     [dispatch],
 -   );
 - 
 -   return removeConversation;
 - };
 - 
 - export const useCompleteConversation = () => {
 -   const dispatch = useDispatch();
 - 
 -   const completeConversation = useCallback(
 -     (payload: any) => {
 -       return dispatch<any>({
 -         type: 'chatModel/completeConversation',
 -         payload,
 -       });
 -     },
 -     [dispatch],
 -   );
 - 
 -   return completeConversation;
 - };
 - 
 - // #region API provided for external calls
 - 
 - export const useCreateToken = (dialogId: string) => {
 -   const dispatch = useDispatch();
 - 
 -   const createToken = useCallback(() => {
 -     return dispatch<any>({
 -       type: 'chatModel/createToken',
 -       payload: { dialogId },
 -     });
 -   }, [dispatch, dialogId]);
 - 
 -   return createToken;
 - };
 - 
 - export const useListToken = () => {
 -   const dispatch = useDispatch();
 - 
 -   const listToken = useCallback(
 -     (dialogId: string) => {
 -       return dispatch<any>({
 -         type: 'chatModel/listToken',
 -         payload: { dialogId },
 -       });
 -     },
 -     [dispatch],
 -   );
 - 
 -   return listToken;
 - };
 - 
 - export const useSelectTokenList = () => {
 -   const tokenList: IToken[] = useSelector(
 -     (state: any) => state.chatModel.tokenList,
 -   );
 - 
 -   return tokenList;
 - };
 - 
 - export const useRemoveToken = () => {
 -   const dispatch = useDispatch();
 - 
 -   const removeToken = useCallback(
 -     (payload: { tenantId: string; dialogId: string; tokens: string[] }) => {
 -       return dispatch<any>({
 -         type: 'chatModel/removeToken',
 -         payload: payload,
 -       });
 -     },
 -     [dispatch],
 -   );
 - 
 -   return removeToken;
 - };
 - 
 - export const useFetchStats = () => {
 -   const dispatch = useDispatch();
 - 
 -   const fetchStats = useCallback(
 -     (payload: any) => {
 -       return dispatch<any>({
 -         type: 'chatModel/getStats',
 -         payload,
 -       });
 -     },
 -     [dispatch],
 -   );
 - 
 -   return fetchStats;
 - };
 - 
 - export const useSelectStats = () => {
 -   const stats: IStats = useSelector((state: any) => state.chatModel.stats);
 - 
 -   return stats;
 - };
 - 
 - //#endregion
 
 
  |