mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-22 03:10:15 +01:00
Add presets and endpoints data services
This commit is contained in:
parent
f2d18c81fc
commit
3d0bfaef51
5 changed files with 102 additions and 126 deletions
|
|
@ -3,16 +3,16 @@ import store from '~/store';
|
|||
import TrashIcon from '../svg/TrashIcon';
|
||||
import { Dialog, DialogTrigger } from '../ui/Dialog.tsx';
|
||||
import DialogTemplate from '../ui/DialogTemplate';
|
||||
import { useDeleteConversationMutation } from '~/data-provider';
|
||||
import { useClearConversationsMutation } from '~/data-provider';
|
||||
|
||||
export default function ClearConvos() {
|
||||
const { newConversation } = store.useConversation();
|
||||
const { refreshConversations } = store.useConversations();
|
||||
const clearConvosMutation = useDeleteConversationMutation();
|
||||
const clearConvosMutation = useClearConversationsMutation();
|
||||
|
||||
const clickHandler = () => {
|
||||
console.log('Clearing conversations...');
|
||||
clearConvosMutation.mutate({});
|
||||
clearConvosMutation.mutate();
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
|
|
|
|||
|
|
@ -1,44 +1,48 @@
|
|||
import * as t from './types';
|
||||
import request from './request';
|
||||
import * as endpoints from './endpoints';
|
||||
import * as endpoints from './api-endpoints';
|
||||
|
||||
export function getConversations(pageNumber: string): Promise<t.TGetConversationsResponse> {
|
||||
return request.get(endpoints.getConversations(pageNumber));
|
||||
return request.get(endpoints.conversations(pageNumber));
|
||||
}
|
||||
|
||||
export function deleteConversation(payload: t.TDeleteConversationRequest) {
|
||||
//todo: this should be a DELETE request
|
||||
return request.post(endpoints.deleteConversation(), payload);
|
||||
return request.post(endpoints.deleteConversation(), {arg: payload});
|
||||
}
|
||||
|
||||
export function clearAllConversations(): Promise<unknown> {
|
||||
return request.post(endpoints.deleteConversation(), {arg: {}});
|
||||
}
|
||||
|
||||
export function getMessagesByConvoId(id: string): Promise<t.TMessage[]> {
|
||||
return request.get(endpoints.getMessages(id));
|
||||
return request.get(endpoints.messages(id));
|
||||
}
|
||||
|
||||
export function getConversationById(id: string): Promise<t.TConversation> {
|
||||
return request.get(endpoints.getConversationById(id));
|
||||
return request.get(endpoints.conversationById(id));
|
||||
}
|
||||
|
||||
export function updateConversation(
|
||||
payload: t.TUpdateConversationRequest
|
||||
): Promise<t.TUpdateConversationResponse> {
|
||||
return request.post(endpoints.updateConversation(), payload);
|
||||
return request.post(endpoints.updateConversation(), {arg: payload});
|
||||
}
|
||||
|
||||
export function updateCustomGpt(payload: t.TUpdateCustomGptRequest) {
|
||||
return request.post(endpoints.customGpts(), payload);
|
||||
export function getPresets(): Promise<t.TPreset[]> {
|
||||
return request.get(endpoints.presets());
|
||||
}
|
||||
|
||||
export function getCustomGpts(): Promise<t.TGetCustomGptsResponse> {
|
||||
return request.get(endpoints.customGpts());
|
||||
export function createPreset(payload: t.TPreset): Promise<t.TPreset[]> {
|
||||
return request.post(endpoints.presets(), payload);
|
||||
}
|
||||
|
||||
export function deleteCustomGpt(payload: t.TDeleteCustomGptRequest): Promise<t.TDeleteCustomGptResponse> {
|
||||
return request.post(endpoints.deleteCustomGpt(), payload);
|
||||
export function updatePreset(payload: t.TPreset): Promise<t.TPreset[]> {
|
||||
return request.post(endpoints.presets(), payload);
|
||||
}
|
||||
|
||||
export function getModels(): Promise<t.TGetModelsResponse> {
|
||||
return request.get(endpoints.getModels());
|
||||
export function deletePresets(): Promise<unknown> {
|
||||
return request.post(endpoints.deletePresets(), {arg: {}});
|
||||
}
|
||||
|
||||
export function getSearchEnabled(): Promise<boolean> {
|
||||
|
|
@ -60,6 +64,12 @@ type TSearchFetcherProps = {
|
|||
callback: (data: any) => void
|
||||
};
|
||||
|
||||
export const searchConversations = async({ q, pageNumber, callback }: TSearchFetcherProps) => {
|
||||
return request.get(endpoints.search(q, pageNumber)).then(({ data }) => {
|
||||
callback(data);
|
||||
});
|
||||
}
|
||||
|
||||
export const searchFetcher = async ({ pre, q, pageNumber, callback }: TSearchFetcherProps) => {
|
||||
pre();
|
||||
//@ts-ignore
|
||||
|
|
@ -67,3 +77,7 @@ export const searchFetcher = async ({ pre, q, pageNumber, callback }: TSearchFet
|
|||
console.log('search data', data);
|
||||
callback(data);
|
||||
};
|
||||
|
||||
export const getAIEndpoints = () => {
|
||||
return request.get(endpoints.aiEndpoints());
|
||||
}
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
|
||||
export const getModels = () => {
|
||||
return `/api/models`;
|
||||
};
|
||||
|
||||
export const getAICompletion = () => {
|
||||
return `/api/ask `;
|
||||
};
|
||||
|
||||
export const user = () => {
|
||||
return `/api/me`;
|
||||
};
|
||||
|
||||
export const getMessages = (id: string) => {
|
||||
return `/api/messages/${id}`;
|
||||
};
|
||||
|
||||
export const getConversations = (pageNumber: string) => {
|
||||
return `/api/convos?pageNumber=${pageNumber}`;
|
||||
};
|
||||
|
||||
export const getConversationById = (id: string) => {
|
||||
return `/api/convos/${id}`;
|
||||
};
|
||||
|
||||
export const updateConversation = () => {
|
||||
return `/api/convos/update`;
|
||||
};
|
||||
|
||||
export const deleteConversation = () => {
|
||||
return `/api/convos/clear`;
|
||||
};
|
||||
|
||||
export const prompts = () => {
|
||||
return `/api/prompts`;
|
||||
};
|
||||
|
||||
export const customGpts = () => {
|
||||
return `/api/customGpts`;
|
||||
};
|
||||
|
||||
// TODO: turn this into a DELETE instead of POST on the backend
|
||||
export const deleteCustomGpt = () => {
|
||||
return `/api/customGpts/delete`;
|
||||
};
|
||||
|
||||
export const generateTitle = () => {
|
||||
return `/api/convos/gen_title`;
|
||||
};
|
||||
|
||||
export const search = (q: string, pageNumber: string) => {
|
||||
return `/api/search?q=${q}&pageNumber=${pageNumber}`;
|
||||
}
|
||||
|
||||
export const searchEnabled = () => {
|
||||
return `/api/search/enable`;
|
||||
}
|
||||
|
|
@ -13,10 +13,11 @@ export enum QueryKeys {
|
|||
messages = "messsages",
|
||||
allConversations = "allConversations",
|
||||
conversation = "conversation",
|
||||
models = "models",
|
||||
customGpts = "customGpts",
|
||||
searchEnabled = "searchEnabled",
|
||||
user = "user",
|
||||
endpoints = "endpoints",
|
||||
presets = "presets",
|
||||
searchResults = "searchResults",
|
||||
}
|
||||
|
||||
export const useGetUserQuery = (): QueryObserverResult<t.TUser> => {
|
||||
|
|
@ -107,51 +108,6 @@ export const useDeleteConversationMutation = (
|
|||
);
|
||||
};
|
||||
|
||||
export const useUpdateCustomGptMutation = (): UseMutationResult<t.TUpdateCustomGptResponse> => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation(
|
||||
(payload: t.TUpdateCustomGptRequest) =>
|
||||
dataService.updateCustomGpt(payload),
|
||||
{
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries([QueryKeys.customGpts]);
|
||||
},
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export const useGetCustomGptsQuery = (): QueryObserverResult<
|
||||
t.TCustomGpt[],
|
||||
unknown
|
||||
> => {
|
||||
return useQuery([QueryKeys.customGpts], () => dataService.getCustomGpts(), {
|
||||
refetchOnWindowFocus: false,
|
||||
refetchOnReconnect: false,
|
||||
refetchOnMount: false,
|
||||
});
|
||||
};
|
||||
|
||||
export const useDeleteCustomGptMutation = (): UseMutationResult<t.TDeleteCustomGptResponse> => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation(
|
||||
(payload: t.TDeleteCustomGptRequest) =>
|
||||
dataService.deleteCustomGpt(payload),
|
||||
{
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries([QueryKeys.customGpts]);
|
||||
},
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export const useGetModelsQuery = (): QueryObserverResult<t.TGetModelsResponse> => {
|
||||
return useQuery([QueryKeys.models], () => dataService.getModels(), {
|
||||
refetchOnWindowFocus: false,
|
||||
refetchOnReconnect: false,
|
||||
refetchOnMount: false,
|
||||
});
|
||||
};
|
||||
|
||||
export const useClearConversationsMutation = (): UseMutationResult<unknown> => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation(() => dataService.clearAllConversations(), {
|
||||
|
|
@ -161,7 +117,7 @@ export const useClearConversationsMutation = (): UseMutationResult<unknown> => {
|
|||
});
|
||||
};
|
||||
|
||||
export const useGetConversationsQuery = (pageNumber: string): QueryObserverResult<t.TGetConversationsResponse> => {
|
||||
export const useGetConversationsQuery = (pageNumber: string): QueryObserverResult<t.Conversation[]> => {
|
||||
return useQuery([QueryKeys.allConversations, pageNumber], () =>
|
||||
dataService.getConversations(pageNumber), {
|
||||
// refetchOnWindowFocus: false,
|
||||
|
|
@ -181,3 +137,67 @@ export const useGetSearchEnabledQuery = (config?: UseQueryOptions<boolean>): Que
|
|||
}
|
||||
);
|
||||
}
|
||||
|
||||
export const useGetEndpointsQuery = (): QueryObserverResult<t.TEndpoints> => {
|
||||
return useQuery([QueryKeys.endpoints], () =>
|
||||
dataService.getAIEndpoints(), {
|
||||
refetchOnWindowFocus: false,
|
||||
refetchOnReconnect: false,
|
||||
refetchOnMount: false,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
export const useCreatePresetMutation = (): UseMutationResult<t.Preset[]> => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation(
|
||||
(payload: t.TCreatePresetRequest) =>
|
||||
dataService.createPreset(payload),
|
||||
{
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries([QueryKeys.presets]);
|
||||
},
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export const useUpdatePresetMutation = (): UseMutationResult<t.TPreset[]> => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation(
|
||||
(payload: t.TUpdatePresetRequest) =>
|
||||
dataService.updatePreset(payload),
|
||||
{
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries([QueryKeys.presets]);
|
||||
},
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export const useGetPresetsQuery = (): QueryObserverResult<t.TPreset[], unknown> => {
|
||||
return useQuery([QueryKeys.presets], () => dataService.getPresets(), {
|
||||
refetchOnWindowFocus: false,
|
||||
refetchOnReconnect: false,
|
||||
refetchOnMount: false,
|
||||
});
|
||||
};
|
||||
|
||||
export const useDeleteAllPresetsMutation = (): UseMutationResult<unknown> => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation(() => dataService.deletePresets(), {
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries([QueryKeys.presets]);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export const useSearchFetcher = (query: string, pageNumber: string, callback: () => void, config?: UseQueryOptions<t.TSearchResponse>): QueryObserverResult<t.TSearchResponse> => {
|
||||
return useQuery<t.TSearchResponse>([QueryKeys.searchResults, pageNumber, query], () =>
|
||||
dataService.searchConversations(query, pageNumber, callback), {
|
||||
refetchOnWindowFocus: false,
|
||||
refetchOnReconnect: false,
|
||||
refetchOnMount: false,
|
||||
...config
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
import axios, { AxiosRequestConfig } from "axios";
|
||||
|
||||
async function _get<T>(url: string, options?: AxiosRequestConfig): Promise<T> {
|
||||
const response = await axios.get(url, {...options});
|
||||
const response = await axios.get(url, { withCredentials: true, ...options});
|
||||
return response.data;
|
||||
}
|
||||
|
||||
async function _post(url: string, arg?: any) {
|
||||
const modifiedData = {arg, withCredentials: true}
|
||||
const response = await axios.post(url, modifiedData, {
|
||||
async function _post(url: string, data?: any) {
|
||||
const response = await axios.post(url, JSON.stringify(data), {
|
||||
headers: { "Content-Type": "application/json" },
|
||||
});
|
||||
return response.data;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue