feat: support reasoning models like DeepSeek R1

This commit is contained in:
AnotiaWang
2025-02-14 15:20:02 +08:00
parent 93527597b7
commit e7296df78f
17 changed files with 549 additions and 171 deletions

View File

@ -1,14 +1,18 @@
import { createOpenAI } from '@ai-sdk/openai'
import { createDeepSeek } from '@ai-sdk/deepseek'
import { extractReasoningMiddleware, wrapLanguageModel } from 'ai'
export const useAiModel = () => {
const config = useConfigStore()
switch (config.config.ai.provider) {
case 'openai-compatible':
const openai = createOpenAI({
const deepseek = createDeepSeek({
apiKey: config.config.ai.apiKey,
baseURL: config.aiApiBase,
})
return openai(config.config.ai.model)
return wrapLanguageModel({
model: deepseek(config.config.ai.model),
middleware: extractReasoningMiddleware({ tagName: 'think' }),
})
default:
throw new Error(`Unknown AI provider: ${config.config.ai.provider}`)
}