mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-26 05:08:50 +01:00
* feat: add expiredAt property to Conversation and Message models Added `expiredAt` property to both Conversation and Message schemas. Configured `expireAfterSeconds` index in MongoDB to automatically delete documents after a specified period. * feat(data-provider): add isTemporary and expiredAt properties to support temporary chats Added `isTemporary` property to TPayload and TSubmission for API calls for temporary chat. Additionally, added `expiredAt` property to `tConversationSchema` to determine if a chat is temporary. * feat: implement isTemporary state management Add Recoil state for tracking temporary conversations, update event handlers to respect temporary chat status * feat: add configuration to interfaceconfig to hide the temporary chat switch * feat: add Temporary Chat UI with switch and modify related behaviors - Added a Temporary Chat switch button at the end of dropdown lists in each model. - Updated the form background color to black when Temporary Chat is enabled. - Modified Navigation to exclude Temporary Chats from the chat list. * fix: exclude Temporary Chats from search results Updated the getConvosQueried query to ensure that Temporary Chats are not included in the search results. * fix: hide bookmark button for Temporary Chats Updated the UI to ensure that the bookmark button is not displayed when a chat is as Temporary Chat. * chore: update isTemporary state management in ChatRoute * chore: fix to pass the tests
31 lines
896 B
TypeScript
31 lines
896 B
TypeScript
import type * as t from './types';
|
|
import { EndpointURLs } from './config';
|
|
import * as s from './schemas';
|
|
|
|
export default function createPayload(submission: t.TSubmission) {
|
|
const { conversation, userMessage, endpointOption, isEdited, isContinued, isTemporary } =
|
|
submission;
|
|
const { conversationId } = s.tConvoUpdateSchema.parse(conversation);
|
|
const { endpoint, endpointType } = endpointOption as {
|
|
endpoint: s.EModelEndpoint;
|
|
endpointType?: s.EModelEndpoint;
|
|
};
|
|
|
|
let server = EndpointURLs[endpointType ?? endpoint];
|
|
|
|
if (isEdited && s.isAssistantsEndpoint(endpoint)) {
|
|
server += '/modify';
|
|
} else if (isEdited) {
|
|
server = server.replace('/ask/', '/edit/');
|
|
}
|
|
|
|
const payload: t.TPayload = {
|
|
...userMessage,
|
|
...endpointOption,
|
|
isContinued: !!(isEdited && isContinued),
|
|
conversationId,
|
|
isTemporary,
|
|
};
|
|
|
|
return { server, payload };
|
|
}
|