diff --git a/app/components/DocsAssistant.tsx b/app/components/DocsAssistant.tsx index 60e2af6..0849751 100644 --- a/app/components/DocsAssistant.tsx +++ b/app/components/DocsAssistant.tsx @@ -1,6 +1,6 @@ "use client"; -import { useCallback, useEffect, useMemo } from "react"; +import { useCallback, useEffect, useMemo, useRef } from "react"; import { AssistantRuntimeProvider } from "@assistant-ui/react"; import { useAISDKRuntime } from "@assistant-ui/react-ai-sdk"; @@ -49,13 +49,13 @@ function DocsAssistantInner({ pageContext }: DocsAssistantProps) { return { pageContext, provider, apiKey }; }, }), - [geminiApiKey, openaiApiKey, pageContext, provider], + [pageContext, provider, openaiApiKey, geminiApiKey], ); const chat = useChat({ transport, onFinish: () => { - // 当对话结束时(流式传输完成),记录一次查询行为 + // Track AI query when chat finishes (streaming completes) if (window.umami) { window.umami.track("ai_assistant_query"); } @@ -68,6 +68,11 @@ function DocsAssistantInner({ pageContext }: DocsAssistantProps) { clearError: clearChatError, } = chat; + // Clear previous error when Provider changes + useEffect(() => { + clearChatError(); + }, [provider, clearChatError]); + useEffect(() => { if (chatStatus === "submitted" || chatStatus === "streaming") { clearChatError(); diff --git a/app/hooks/useAssistantSettings.tsx b/app/hooks/useAssistantSettings.tsx index da78c48..c82ab8e 100644 --- a/app/hooks/useAssistantSettings.tsx +++ b/app/hooks/useAssistantSettings.tsx @@ -16,7 +16,7 @@ interface AssistantSettingsState { provider: Provider; openaiApiKey: string; geminiApiKey: string; - saveToLocalStorage: boolean; // 是否将API Key保存到localStorage + saveToLocalStorage: boolean; // Whether to save API keys to localStorage } interface AssistantSettingsContextValue extends AssistantSettingsState { @@ -30,7 +30,7 @@ interface AssistantSettingsContextValue extends AssistantSettingsState { const SETTINGS_KEY = "assistant-settings-storage"; const defaultSettings: AssistantSettingsState = { - provider: "openai", + provider: "intern", openaiApiKey: "", geminiApiKey: "", saveToLocalStorage: false, @@ -56,7 +56,7 @@ const parseStoredSettings = (raw: string | null): AssistantSettingsState => { : parsed.provider === "intern" ? "intern" : "openai", - // 只有在saveToLocalStorage为true时才使用存储的key + // Use only stored key if saveToLocalStorage is true openaiApiKey: saveToLocalStorage && typeof parsed.openaiApiKey === "string" ? parsed.openaiApiKey @@ -100,7 +100,7 @@ export const AssistantSettingsProvider = ({ } try { - // 根据saveToLocalStorage决定是否保存API key + // Decide whether to save API keys based on saveToLocalStorage const dataToSave = settings.saveToLocalStorage ? settings : {