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