You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

use-rename-chat.ts 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { useSetModalState } from '@/hooks/common-hooks';
  2. import { useSetDialog } from '@/hooks/use-chat-request';
  3. import { IDialog } from '@/interfaces/database/chat';
  4. import { isEmpty } from 'lodash';
  5. import { useCallback, useState } from 'react';
  6. const InitialData = {
  7. name: '',
  8. icon: '',
  9. language: 'English',
  10. prompt_config: {
  11. empty_response: '',
  12. prologue: '你好! 我是你的助理,有什么可以帮到你的吗?',
  13. quote: true,
  14. keyword: false,
  15. tts: false,
  16. system:
  17. '你是一个智能助手,请总结知识库的内容来回答问题,请列举知识库中的数据详细回答。当所有知识库内容都与问题无关时,你的回答必须包括“知识库中未找到您要的答案!”这句话。回答需要考虑聊天历史。\n 以下是知识库:\n {knowledge}\n 以上是知识库。',
  18. refine_multiturn: false,
  19. use_kg: false,
  20. reasoning: false,
  21. parameters: [{ key: 'knowledge', optional: false }],
  22. },
  23. llm_id: '',
  24. llm_setting: {},
  25. similarity_threshold: 0.2,
  26. vector_similarity_weight: 0.30000000000000004,
  27. top_n: 8,
  28. };
  29. export const useRenameChat = () => {
  30. const [chat, setChat] = useState<IDialog>({} as IDialog);
  31. const {
  32. visible: chatRenameVisible,
  33. hideModal: hideChatRenameModal,
  34. showModal: showChatRenameModal,
  35. } = useSetModalState();
  36. const { setDialog, loading } = useSetDialog();
  37. const onChatRenameOk = useCallback(
  38. async (name: string) => {
  39. const nextChat = {
  40. ...(isEmpty(chat) ? InitialData : chat),
  41. name,
  42. };
  43. const ret = await setDialog(nextChat);
  44. if (ret === 0) {
  45. hideChatRenameModal();
  46. }
  47. },
  48. [setDialog, chat, hideChatRenameModal],
  49. );
  50. const handleShowChatRenameModal = useCallback(
  51. (record?: IDialog) => {
  52. if (record) {
  53. setChat(record);
  54. }
  55. showChatRenameModal();
  56. },
  57. [showChatRenameModal],
  58. );
  59. const handleHideModal = useCallback(() => {
  60. hideChatRenameModal();
  61. setChat({} as IDialog);
  62. }, [hideChatRenameModal]);
  63. return {
  64. chatRenameLoading: loading,
  65. initialChatName: chat?.name,
  66. onChatRenameOk,
  67. chatRenameVisible,
  68. hideChatRenameModal: handleHideModal,
  69. showChatRenameModal: handleShowChatRenameModal,
  70. };
  71. };