diff --git a/web/src/pages/next-chats/chat/app-settings/chat-settings.tsx b/web/src/pages/next-chats/chat/app-settings/chat-settings.tsx index f3079a314d..d4a6e5b4ed 100644 --- a/web/src/pages/next-chats/chat/app-settings/chat-settings.tsx +++ b/web/src/pages/next-chats/chat/app-settings/chat-settings.tsx @@ -5,6 +5,7 @@ import { Separator } from '@/components/ui/separator'; import { DatasetMetadata } from '@/constants/chat'; import { useSetModalState } from '@/hooks/common-hooks'; import { useFetchChat, useUpdateChat } from '@/hooks/use-chat-request'; +import { useFindLlmByUuid } from '@/hooks/use-llm-request'; import { cn } from '@/lib/utils'; import { removeUselessFieldsFromValues, @@ -30,6 +31,7 @@ export function ChatSettings({ hasSingleChatBox }: ChatSettingsProps) { const formSchema = useChatSettingSchema(); const { data } = useFetchChat(); const { updateChat, loading } = useUpdateChat(); + const findLlmByUuid = useFindLlmByUuid(); const { id } = useParams(); const { t } = useTranslation(); @@ -87,6 +89,14 @@ export function ChatSettings({ hasSingleChatBox }: ChatSettingsProps) { referenceMetadata.fields = undefined; } + // Add model_type to llm_setting based on the selected llm_id + if (nextValues.llm_id) { + nextValues.llm_setting = { + ...nextValues.llm_setting, + model_type: findLlmByUuid(nextValues.llm_id)?.model_type || 'chat', + }; + } + updateChat({ chatId: id!, params: { diff --git a/web/src/pages/next-chats/chat/chat-box/next-multiple-chat-box.tsx b/web/src/pages/next-chats/chat/chat-box/next-multiple-chat-box.tsx index 0714992711..666d4c4cf3 100644 --- a/web/src/pages/next-chats/chat/chat-box/next-multiple-chat-box.tsx +++ b/web/src/pages/next-chats/chat/chat-box/next-multiple-chat-box.tsx @@ -25,6 +25,7 @@ import { useGetChatSearchParams, usePatchChat, } from '@/hooks/use-chat-request'; +import { useFindLlmByUuid } from '@/hooks/use-llm-request'; import { useFetchUserInfo } from '@/hooks/use-user-setting-request'; import { IClientConversation } from '@/interfaces/database/chat'; import { buildMessageUuidWithRole } from '@/utils/chat'; @@ -132,6 +133,7 @@ const ChatCard = forwardRef(function ChatCard( const { data: userInfo } = useFetchUserInfo(); const { data: currentDialog } = useFetchChat(); + const findLlmByUuid = useFindLlmByUuid(); useSetDefaultModel(form); @@ -143,12 +145,16 @@ const ChatCard = forwardRef(function ChatCard( const handleApplyConfig = useCallback(() => { const values = form.getValues(); + const llmId = values.llm_id; patchChat({ chatId: dialogId!, params: { ...currentDialog, - llm_id: values.llm_id, - llm_setting: omit(values, 'llm_id'), + llm_id: llmId, + llm_setting: { + ...omit(values, 'llm_id'), + model_type: findLlmByUuid(llmId)?.model_type || 'chat', + }, }, }); }, [currentDialog, dialogId, form, patchChat]); diff --git a/web/src/pages/next-chats/hooks/use-rename-chat.ts b/web/src/pages/next-chats/hooks/use-rename-chat.ts index 705a5ef014..65329e1938 100644 --- a/web/src/pages/next-chats/hooks/use-rename-chat.ts +++ b/web/src/pages/next-chats/hooks/use-rename-chat.ts @@ -1,5 +1,6 @@ import { useSetModalState } from '@/hooks/common-hooks'; import { useCreateChat, usePatchChat } from '@/hooks/use-chat-request'; +import { useFindLlmByUuid } from '@/hooks/use-llm-request'; import { useFetchTenantInfo } from '@/hooks/use-user-setting-request'; import { IDialog } from '@/interfaces/database/chat'; import { isEmpty } from 'lodash'; @@ -17,6 +18,7 @@ export const useRenameChat = () => { const { patchChat, loading: patchLoading } = usePatchChat(); const { t } = useTranslation(); const tenantInfo = useFetchTenantInfo(); + const findLlmByUuid = useFindLlmByUuid(); const InitialData = useMemo( () => ({ @@ -39,13 +41,15 @@ export const useRenameChat = () => { toc_enhance: false, }, llm_id: tenantInfo.data.llm_id, - llm_setting: {}, + llm_setting: { + model_type: findLlmByUuid(tenantInfo.data.llm_id)?.model_type || 'chat', + }, similarity_threshold: 0.2, vector_similarity_weight: 0.3, top_n: 8, top_k: 1024, }), - [t, tenantInfo.data.llm_id], + [t, tenantInfo.data.llm_id, findLlmByUuid], ); const onChatRenameOk = useCallback(