🔉 feat: TTS/STT rate limiters (#2925)

* fix: remove double initialization of speech routes

* refactor(useMessageHelpers): more consistent latestMessage updates based on unique textKey and early returns when setting

* feat: TTS/STT rate limiters

* chore: remove console log

* fix: make modular chat true by default
This commit is contained in:
Danny Avila 2024-05-30 18:39:21 -04:00 committed by GitHub
parent 08d6bea359
commit 8318f26d66
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 265 additions and 35 deletions

View file

@ -2,6 +2,7 @@ import { useEffect, useRef, useCallback } from 'react';
import { isAssistantsEndpoint } from 'librechat-data-provider';
import type { TMessageProps } from '~/common';
import { useChatContext, useAssistantsMapContext } from '~/Providers';
import { getLatestText, getLengthAndFirstFiveChars } from '~/utils';
import useCopyToClipboard from './useCopyToClipboard';
export default function useMessageHelpers(props: TMessageProps) {
@ -26,20 +27,25 @@ export default function useMessageHelpers(props: TMessageProps) {
const isLast = !children?.length;
useEffect(() => {
let contentChanged = message?.content
? message?.content?.length !== latestText.current
: message?.text !== latestText.current;
if (!isLast) {
contentChanged = false;
if (conversation?.conversationId === 'new') {
return;
}
if (!message) {
return;
} else if (isLast && conversation?.conversationId !== 'new' && contentChanged) {
setLatestMessage({ ...message });
latestText.current = message?.content ? message.content.length : message.text;
}
if (!isLast) {
return;
}
const text = getLatestText(message);
const textKey = `${message?.messageId ?? ''}${getLengthAndFirstFiveChars(text)}`;
if (textKey === latestText.current) {
return;
}
latestText.current = textKey;
setLatestMessage({ ...message });
}, [isLast, message, setLatestMessage, conversation?.conversationId]);
const enterEdit = useCallback(