mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-16 16:30:15 +01:00
🔧 fix: Allow Azure Assistants Chats to be Deleted (#3893)
This commit is contained in:
parent
2b0654bb2c
commit
f270455be6
3 changed files with 14 additions and 6 deletions
|
|
@ -1,7 +1,6 @@
|
|||
const multer = require('multer');
|
||||
const express = require('express');
|
||||
const { CacheKeys } = require('librechat-data-provider');
|
||||
const { initializeClient } = require('~/server/services/Endpoints/assistants');
|
||||
const { CacheKeys, EModelEndpoint } = require('librechat-data-provider');
|
||||
const { getConvosByPage, deleteConvos, getConvo, saveConvo } = require('~/models/Conversation');
|
||||
const { storage, importFileFilter } = require('~/server/routes/files/multer');
|
||||
const requireJwtAuth = require('~/server/middleware/requireJwtAuth');
|
||||
|
|
@ -11,6 +10,10 @@ const { createImportLimiters } = require('~/server/middleware');
|
|||
const getLogStores = require('~/cache/getLogStores');
|
||||
const { sleep } = require('~/server/utils');
|
||||
const { logger } = require('~/config');
|
||||
const assistantClients = {
|
||||
[EModelEndpoint.azureAssistants]: require('~/server/services/Endpoints/azureAssistants'),
|
||||
[EModelEndpoint.assistants]: require('~/server/services/Endpoints/assistants'),
|
||||
};
|
||||
|
||||
const router = express.Router();
|
||||
router.use(requireJwtAuth);
|
||||
|
|
@ -74,7 +77,7 @@ router.post('/gen_title', async (req, res) => {
|
|||
|
||||
router.post('/clear', async (req, res) => {
|
||||
let filter = {};
|
||||
const { conversationId, source, thread_id } = req.body.arg;
|
||||
const { conversationId, source, thread_id, endpoint } = req.body.arg;
|
||||
if (conversationId) {
|
||||
filter = { conversationId };
|
||||
}
|
||||
|
|
@ -83,9 +86,12 @@ router.post('/clear', async (req, res) => {
|
|||
return res.status(200).send('No conversationId provided');
|
||||
}
|
||||
|
||||
if (thread_id) {
|
||||
if (
|
||||
typeof endpoint != 'undefined' &&
|
||||
Object.prototype.propertyIsEnumerable.call(assistantClients, endpoint)
|
||||
) {
|
||||
/** @type {{ openai: OpenAI}} */
|
||||
const { openai } = await initializeClient({ req, res });
|
||||
const { openai } = await assistantClients[endpoint].initializeClient({ req, res });
|
||||
try {
|
||||
const response = await openai.beta.threads.del(thread_id);
|
||||
logger.debug('Deleted OpenAI thread:', response);
|
||||
|
|
|
|||
|
|
@ -44,8 +44,9 @@ export function DeleteConversationDialog({
|
|||
const confirmDelete = useCallback(() => {
|
||||
const messages = queryClient.getQueryData<TMessage[]>([QueryKeys.messages, conversationId]);
|
||||
const thread_id = messages?.[messages.length - 1]?.thread_id;
|
||||
const endpoint = messages?.[messages.length - 1]?.endpoint;
|
||||
|
||||
deleteConvoMutation.mutate({ conversationId, thread_id, source: 'button' });
|
||||
deleteConvoMutation.mutate({ conversationId, thread_id, endpoint, source: 'button' });
|
||||
}, [conversationId, deleteConvoMutation, queryClient]);
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -152,6 +152,7 @@ export type TUpdateConversationResponse = TConversation;
|
|||
export type TDeleteConversationRequest = {
|
||||
conversationId?: string;
|
||||
thread_id?: string;
|
||||
endpoint?: string;
|
||||
source?: string;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue