Parcourir la source

添加fetchModel 修复大模型名称错误的问题

visuddhinanda il y a 8 mois
Parent
commit
eb860e6bdb
1 fichiers modifiés avec 15 ajouts et 10 suppressions
  1. 15 10
      dashboard-v4/dashboard/src/components/chat/AiChat.tsx

+ 15 - 10
dashboard-v4/dashboard/src/components/chat/AiChat.tsx

@@ -77,6 +77,7 @@ const AIChatComponent = ({
   const [inputValue, setInputValue] = useState<string>("");
   const [inputValue, setInputValue] = useState<string>("");
   const [isLoading, setIsLoading] = useState<boolean>(false);
   const [isLoading, setIsLoading] = useState<boolean>(false);
   const [selectedModel, setSelectedModel] = useState<string>("");
   const [selectedModel, setSelectedModel] = useState<string>("");
+  const [fetchModel, setFetchModel] = useState<string>("");
   const [refreshingMessageId, setRefreshingMessageId] = useState<number | null>(
   const [refreshingMessageId, setRefreshingMessageId] = useState<number | null>(
     null
     null
   );
   );
@@ -161,14 +162,15 @@ const AIChatComponent = ({
         console.error("no REACT_APP_OPENAI_PROXY");
         console.error("no REACT_APP_OPENAI_PROXY");
         return { success: false, error: "API配置错误" };
         return { success: false, error: "API配置错误" };
       }
       }
-      console.log("modelId", modelId);
+
       try {
       try {
+        setFetchModel(modelId);
         const payload = {
         const payload = {
           model: models?.find((value) => value.uid === modelId)?.model,
           model: models?.find((value) => value.uid === modelId)?.model,
           messages: messages,
           messages: messages,
           stream: true,
           stream: true,
           temperature: 0.7,
           temperature: 0.7,
-          max_tokens: 2000,
+          max_tokens: 3000, //本次回复”最大输出长度
         };
         };
         const url = process.env.REACT_APP_OPENAI_PROXY;
         const url = process.env.REACT_APP_OPENAI_PROXY;
         const data = {
         const data = {
@@ -201,10 +203,11 @@ const AIChatComponent = ({
         const typeController = streamTypeWriter(
         const typeController = streamTypeWriter(
           (content: string) => {},
           (content: string) => {},
           (finalContent: string) => {
           (finalContent: string) => {
+            console.log("newData in callOpenAI", finalContent);
             const newData: MessageVersion = {
             const newData: MessageVersion = {
               id: Date.now(),
               id: Date.now(),
               content: finalContent,
               content: finalContent,
-              model: selectedModel,
+              model: modelId,
               role: "assistant",
               role: "assistant",
               timestamp: new Date().toLocaleTimeString(),
               timestamp: new Date().toLocaleTimeString(),
             };
             };
@@ -279,7 +282,7 @@ const AIChatComponent = ({
         return { success: false, error: "API调用失败,请重试" };
         return { success: false, error: "API调用失败,请重试" };
       }
       }
     },
     },
-    [models, selectedModel, streamTypeWriter, currentTypingMessage]
+    [models, streamTypeWriter, fetchModel, currentTypingMessage]
   );
   );
 
 
   const sendMessage = useCallback(
   const sendMessage = useCallback(
@@ -364,7 +367,8 @@ const AIChatComponent = ({
             setError("重新生成失败,请重试");
             setError("重新生成失败,请重试");
             setRefreshingMessageId(null);
             setRefreshingMessageId(null);
           } else {
           } else {
-            // Ensure the message type is set to "ai" on successful refresh
+            /*
+            console.log("newData refreshAIResponse", result);
             setMessages((prev) => {
             setMessages((prev) => {
               const newMessages = [...prev];
               const newMessages = [...prev];
               const targetMessage = newMessages[messageIndex];
               const targetMessage = newMessages[messageIndex];
@@ -372,7 +376,7 @@ const AIChatComponent = ({
                 const newData: MessageVersion = {
                 const newData: MessageVersion = {
                   id: Date.now(),
                   id: Date.now(),
                   content: result.content || "",
                   content: result.content || "",
-                  model: selectedModel,
+                  model: modelId,
                   role: "assistant",
                   role: "assistant",
                   timestamp: new Date().toLocaleTimeString(),
                   timestamp: new Date().toLocaleTimeString(),
                 };
                 };
@@ -385,6 +389,7 @@ const AIChatComponent = ({
               setRefreshingMessageId(null);
               setRefreshingMessageId(null);
               return newMessages;
               return newMessages;
             });
             });
+            */
           }
           }
         } catch (error) {
         } catch (error) {
           console.error("刷新回答失败:", error);
           console.error("刷新回答失败:", error);
@@ -394,7 +399,7 @@ const AIChatComponent = ({
         }
         }
       }
       }
     },
     },
-    [messages, systemPrompt, callOpenAI, selectedModel]
+    [messages, systemPrompt, callOpenAI, fetchModel]
   );
   );
 
 
   const confirmEdit = useCallback((id: number, text: string): void => {
   const confirmEdit = useCallback((id: number, text: string): void => {
@@ -479,7 +484,7 @@ const AIChatComponent = ({
             <MsgError
             <MsgError
               message={error}
               message={error}
               onRefresh={() =>
               onRefresh={() =>
-                refreshAIResponse(messages.length - 1, selectedModel)
+                refreshAIResponse(messages.length - 1, fetchModel)
               }
               }
             />
             />
           ) : (
           ) : (
@@ -488,12 +493,12 @@ const AIChatComponent = ({
           {isTyping && (
           {isTyping && (
             <MsgTyping
             <MsgTyping
               text={currentTypingMessage}
               text={currentTypingMessage}
-              model={models?.find((m) => m.uid === selectedModel)}
+              model={models?.find((m) => m.uid === fetchModel)}
             />
             />
           )}
           )}
 
 
           {isLoading && !isTyping && (
           {isLoading && !isTyping && (
-            <MsgLoading model={models?.find((m) => m.uid === selectedModel)} />
+            <MsgLoading model={models?.find((m) => m.uid === fetchModel)} />
           )}
           )}
         </Space>
         </Space>
         <div ref={messagesEndRef} />
         <div ref={messagesEndRef} />