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