mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-12 20:27:43 +08:00
feat: revamp DeepSeek v4 model handling
- replace legacy DeepSeek ids with the new deepseek-v4 model family\n- move thinking control to request parameters and preserve assistant reasoning content\n- switch history split to IGNORE transcript injection and map upload auth failures to 401\n- update admin defaults, API docs, samples, and tests for the new model scheme
This commit is contained in:
@@ -50,18 +50,12 @@ export default function ApiTesterContainer({ config, onMessage, authFetch }) {
|
||||
const customKeyManaged = customKeyActive && configuredKeys.includes(trimmedApiKey)
|
||||
|
||||
const models = [
|
||||
{ id: 'deepseek-chat', name: 'deepseek-chat', icon: 'MessageSquare', desc: t('apiTester.models.chat'), color: 'text-amber-500' },
|
||||
{ id: 'deepseek-reasoner', name: 'deepseek-reasoner', icon: 'Cpu', desc: t('apiTester.models.reasoner'), color: 'text-amber-600' },
|
||||
{ id: 'deepseek-chat-search', name: 'deepseek-chat-search', icon: 'SearchIcon', desc: t('apiTester.models.chatSearch'), color: 'text-cyan-500' },
|
||||
{ id: 'deepseek-reasoner-search', name: 'deepseek-reasoner-search', icon: 'SearchIcon', desc: t('apiTester.models.reasonerSearch'), color: 'text-cyan-600' },
|
||||
{ id: 'deepseek-expert-chat', name: 'deepseek-expert-chat', icon: 'MessageSquare', desc: t('apiTester.models.expertChat'), color: 'text-emerald-500' },
|
||||
{ id: 'deepseek-expert-reasoner', name: 'deepseek-expert-reasoner', icon: 'Cpu', desc: t('apiTester.models.expertReasoner'), color: 'text-emerald-600' },
|
||||
{ id: 'deepseek-expert-chat-search', name: 'deepseek-expert-chat-search', icon: 'SearchIcon', desc: t('apiTester.models.expertChatSearch'), color: 'text-teal-500' },
|
||||
{ id: 'deepseek-expert-reasoner-search', name: 'deepseek-expert-reasoner-search', icon: 'SearchIcon', desc: t('apiTester.models.expertReasonerSearch'), color: 'text-teal-600' },
|
||||
{ id: 'deepseek-vision-chat', name: 'deepseek-vision-chat', icon: 'MessageSquare', desc: t('apiTester.models.visionChat'), color: 'text-violet-500' },
|
||||
{ id: 'deepseek-vision-reasoner', name: 'deepseek-vision-reasoner', icon: 'Cpu', desc: t('apiTester.models.visionReasoner'), color: 'text-violet-600' },
|
||||
{ id: 'deepseek-vision-chat-search', name: 'deepseek-vision-chat-search', icon: 'SearchIcon', desc: t('apiTester.models.visionChatSearch'), color: 'text-fuchsia-500' },
|
||||
{ id: 'deepseek-vision-reasoner-search', name: 'deepseek-vision-reasoner-search', icon: 'SearchIcon', desc: t('apiTester.models.visionReasonerSearch'), color: 'text-fuchsia-600' },
|
||||
{ id: 'deepseek-v4-flash', name: 'deepseek-v4-flash', icon: 'MessageSquare', desc: t('apiTester.models.flash'), color: 'text-amber-500' },
|
||||
{ id: 'deepseek-v4-pro', name: 'deepseek-v4-pro', icon: 'Cpu', desc: t('apiTester.models.pro'), color: 'text-amber-600' },
|
||||
{ id: 'deepseek-v4-flash-search', name: 'deepseek-v4-flash-search', icon: 'SearchIcon', desc: t('apiTester.models.flashSearch'), color: 'text-cyan-500' },
|
||||
{ id: 'deepseek-v4-pro-search', name: 'deepseek-v4-pro-search', icon: 'SearchIcon', desc: t('apiTester.models.proSearch'), color: 'text-cyan-600' },
|
||||
{ id: 'deepseek-v4-vision', name: 'deepseek-v4-vision', icon: 'ImageIcon', desc: t('apiTester.models.vision'), color: 'text-violet-500' },
|
||||
{ id: 'deepseek-v4-vision-search', name: 'deepseek-v4-vision-search', icon: 'SearchIcon', desc: t('apiTester.models.visionSearch'), color: 'text-fuchsia-600' },
|
||||
]
|
||||
|
||||
const { runTest, stopGeneration } = useChatStreamClient({
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useEffect, useRef, useState } from 'react'
|
||||
|
||||
export function useApiTesterState({ t }) {
|
||||
const [model, setModel] = useState('deepseek-chat')
|
||||
const [model, setModel] = useState('deepseek-v4-flash')
|
||||
const defaultMessage = t('apiTester.defaultMessage')
|
||||
const [message, setMessage] = useState(defaultMessage)
|
||||
const [apiKey, setApiKey] = useState('')
|
||||
|
||||
@@ -18,7 +18,7 @@ const DEFAULT_FORM = {
|
||||
embeddings: { provider: '' },
|
||||
auto_delete: { mode: 'none' },
|
||||
history_split: { enabled: true, trigger_after_turns: 1 },
|
||||
claude_mapping_text: '{\n "fast": "deepseek-chat",\n "slow": "deepseek-reasoner"\n}',
|
||||
claude_mapping_text: '{\n "fast": "deepseek-v4-flash",\n "slow": "deepseek-v4-pro"\n}',
|
||||
model_aliases_text: '{}',
|
||||
}
|
||||
|
||||
|
||||
@@ -219,18 +219,12 @@
|
||||
"apiTester": {
|
||||
"defaultMessage": "Hello, please introduce yourself in one sentence.",
|
||||
"models": {
|
||||
"chat": "Non-reasoning model",
|
||||
"reasoner": "Reasoning model",
|
||||
"chatSearch": "Non-reasoning model (with search)",
|
||||
"reasonerSearch": "Reasoning model (with search)",
|
||||
"expertChat": "Non-reasoning expert mode",
|
||||
"expertReasoner": "Reasoning expert mode",
|
||||
"expertChatSearch": "Non-reasoning expert mode (with search)",
|
||||
"expertReasonerSearch": "Reasoning expert mode (with search)",
|
||||
"visionChat": "Non-reasoning vision mode",
|
||||
"visionReasoner": "Reasoning vision mode",
|
||||
"visionChatSearch": "Non-reasoning vision mode (with search)",
|
||||
"visionReasonerSearch": "Reasoning vision mode (with search)"
|
||||
"flash": "v4 Flash (thinking on by default)",
|
||||
"pro": "v4 Pro (thinking on by default)",
|
||||
"flashSearch": "v4 Flash (with search)",
|
||||
"proSearch": "v4 Pro (with search)",
|
||||
"vision": "v4 Vision (thinking on by default)",
|
||||
"visionSearch": "v4 Vision (with search)"
|
||||
},
|
||||
"missingApiKey": "Please provide an API key.",
|
||||
"requestFailed": "Request failed.",
|
||||
|
||||
@@ -219,18 +219,12 @@
|
||||
"apiTester": {
|
||||
"defaultMessage": "你好,请用一句话介绍你自己。",
|
||||
"models": {
|
||||
"chat": "非思考模型",
|
||||
"reasoner": "思考模型",
|
||||
"chatSearch": "非思考模型 (带搜索)",
|
||||
"reasonerSearch": "思考模型 (带搜索)",
|
||||
"expertChat": "非思考专家模式",
|
||||
"expertReasoner": "思考专家模式",
|
||||
"expertChatSearch": "非思考专家模式 (带搜索)",
|
||||
"expertReasonerSearch": "思考专家模式 (带搜索)",
|
||||
"visionChat": "非思考视觉模式",
|
||||
"visionReasoner": "思考视觉模式",
|
||||
"visionChatSearch": "非思考视觉模式 (带搜索)",
|
||||
"visionReasonerSearch": "思考视觉模式 (带搜索)"
|
||||
"flash": "v4 Flash(默认开启思考)",
|
||||
"pro": "v4 Pro(默认开启思考)",
|
||||
"flashSearch": "v4 Flash(带搜索)",
|
||||
"proSearch": "v4 Pro(带搜索)",
|
||||
"vision": "v4 Vision(默认开启思考)",
|
||||
"visionSearch": "v4 Vision(带搜索)"
|
||||
},
|
||||
"missingApiKey": "请提供 API 密钥",
|
||||
"requestFailed": "请求失败",
|
||||
|
||||
Reference in New Issue
Block a user