From 87479743595c7d4f927694fb7a5047f1dad9ad1c Mon Sep 17 00:00:00 2001 From: suyao Date: Wed, 30 Apr 2025 15:26:51 +0800 Subject: [PATCH] refactor: enhance ThinkingPanel and related components for improved reasoning effort management - Updated ThinkingPanel to streamline token mapping and error messaging. - Refactored ThinkingSelect to utilize a list for better UI interaction. - Enhanced ThinkingSlider with styled components for a more intuitive user experience. - Adjusted model checks in the configuration to support new reasoning models. - Improved translations for clarity and consistency across languages. --- .../ThinkingPanel/ThinkingSelect.tsx | 65 ++++--- .../ThinkingPanel/ThinkingSlider.tsx | 160 +++++++++++++----- .../src/components/ThinkingPanel/index.tsx | 25 ++- src/renderer/src/config/models.ts | 5 +- src/renderer/src/i18n/locales/en-us.json | 19 ++- src/renderer/src/i18n/locales/ja-jp.json | 19 ++- src/renderer/src/i18n/locales/ru-ru.json | 20 ++- src/renderer/src/i18n/locales/zh-cn.json | 15 +- src/renderer/src/i18n/locales/zh-tw.json | 17 +- .../src/pages/home/Inputbar/Inputbar.tsx | 34 ++-- .../pages/home/Inputbar/ThinkingButton.tsx | 53 +++++- .../providers/AiProvider/AnthropicProvider.ts | 31 +--- .../providers/AiProvider/OpenAIProvider.ts | 44 +++-- 13 files changed, 330 insertions(+), 177 deletions(-) diff --git a/src/renderer/src/components/ThinkingPanel/ThinkingSelect.tsx b/src/renderer/src/components/ThinkingPanel/ThinkingSelect.tsx index 307dd4d4f4..ca92e85891 100644 --- a/src/renderer/src/components/ThinkingPanel/ThinkingSelect.tsx +++ b/src/renderer/src/components/ThinkingPanel/ThinkingSelect.tsx @@ -1,16 +1,17 @@ import { isSupportedReasoningEffortGrokModel } from '@renderer/config/models' import { Assistant, Model } from '@renderer/types' -import { Select } from 'antd' -import { useMemo, useState } from 'react' +import { List } from 'antd' +import { useMemo } from 'react' import { useTranslation } from 'react-i18next' +import styled from 'styled-components' import { ReasoningEffortOptions } from './index' interface ThinkingSelectProps { model: Model assistant: Assistant - value?: ReasoningEffortOptions | null - onChange?: (value: ReasoningEffortOptions) => void + value: ReasoningEffortOptions + onChange: (value: ReasoningEffortOptions) => void } interface OptionType { @@ -18,9 +19,8 @@ interface OptionType { value: ReasoningEffortOptions } -export default function ThinkingSelect({ model, assistant, value, onChange }: ThinkingSelectProps) { +export default function ThinkingSelect({ model, value, onChange }: ThinkingSelectProps) { const { t } = useTranslation() - const [open, setOpen] = useState(false) const baseOptions = useMemo( () => @@ -41,24 +41,41 @@ export default function ThinkingSelect({ model, assistant, value, onChange }: Th [model, baseOptions] ) - const currentValue = value ?? assistant.settings?.reasoning_effort ?? null - - const handleChange = (newValue: ReasoningEffortOptions) => { - onChange?.(newValue) - setOpen(false) - } - return ( - <> -