Procházet zdrojové kódy

add key in MsgUser

visuddhinanda před 8 měsíci
rodič
revize
2cbe8890f2

+ 20 - 6
dashboard-v4/dashboard/src/components/chat/AiChat.tsx

@@ -287,7 +287,7 @@ const AIChatComponent = ({
         return { success: false, error: "API调用失败,请重试" };
         return { success: false, error: "API调用失败,请重试" };
       }
       }
     },
     },
-    [models, streamTypeWriter, fetchModel, currentTypingMessage]
+    [models, streamTypeWriter, currentTypingMessage]
   );
   );
 
 
   const sendMessage = useCallback(
   const sendMessage = useCallback(
@@ -310,7 +310,6 @@ const AIChatComponent = ({
       setMessages((prev) => [...prev, userMessage]);
       setMessages((prev) => [...prev, userMessage]);
       setInputValue("");
       setInputValue("");
       setIsLoading(true);
       setIsLoading(true);
-      onChat && onChat();
 
 
       // Scroll to the new user message
       // Scroll to the new user message
       scrollToBottom();
       scrollToBottom();
@@ -339,7 +338,14 @@ const AIChatComponent = ({
         setIsLoading(false);
         setIsLoading(false);
       }
       }
     },
     },
-    [inputValue, messages, systemPrompt, callOpenAI, scrollToBottom]
+    [
+      inputValue,
+      scrollToBottom,
+      systemPrompt,
+      messages,
+      callOpenAI,
+      selectedModel,
+    ]
   );
   );
 
 
   const refreshAIResponse = useCallback(
   const refreshAIResponse = useCallback(
@@ -404,7 +410,7 @@ const AIChatComponent = ({
         }
         }
       }
       }
     },
     },
-    [messages, systemPrompt, callOpenAI, fetchModel]
+    [messages, systemPrompt, callOpenAI]
   );
   );
 
 
   const confirmEdit = useCallback((id: number, text: string): void => {
   const confirmEdit = useCallback((id: number, text: string): void => {
@@ -441,7 +447,10 @@ const AIChatComponent = ({
 
 
   const modelMenu: MenuProps = {
   const modelMenu: MenuProps = {
     selectedKeys: [selectedModel],
     selectedKeys: [selectedModel],
-    onClick: ({ key }) => setSelectedModel(key),
+    onClick: ({ key }) => {
+      console.log("setSelectedModel", key);
+      setSelectedModel(key);
+    },
     items: models?.map((model) => ({
     items: models?.map((model) => ({
       key: model.uid,
       key: model.uid,
       label: model.name,
       label: model.name,
@@ -466,6 +475,7 @@ const AIChatComponent = ({
               if (msg.type === "user") {
               if (msg.type === "user") {
                 return (
                 return (
                   <MsgUser
                   <MsgUser
+                    key={index}
                     msg={msg}
                     msg={msg}
                     onChange={(value: string) => confirmEdit(index, value)}
                     onChange={(value: string) => confirmEdit(index, value)}
                   />
                   />
@@ -473,6 +483,7 @@ const AIChatComponent = ({
               } else if (msg.type === "ai") {
               } else if (msg.type === "ai") {
                 return (
                 return (
                   <MsgAssistant
                   <MsgAssistant
+                    key={index}
                     msg={msg}
                     msg={msg}
                     models={models}
                     models={models}
                     onRefresh={(modelId: string) => {
                     onRefresh={(modelId: string) => {
@@ -550,7 +561,10 @@ const AIChatComponent = ({
                 <Button
                 <Button
                   type="primary"
                   type="primary"
                   icon={<SendOutlined />}
                   icon={<SendOutlined />}
-                  onClick={() => sendMessage()}
+                  onClick={() => {
+                    sendMessage();
+                    onChat && onChat();
+                  }}
                   disabled={!inputValue.trim() || isLoading}
                   disabled={!inputValue.trim() || isLoading}
                 />
                 />
               </Space>
               </Space>