Files
deep-research-web-ui/composables/useAiProvider.ts

46 lines
1.2 KiB
TypeScript

import { createDeepSeek } from '@ai-sdk/deepseek'
import { createOpenRouter } from '@openrouter/ai-sdk-provider'
import { createOpenAI } from '@ai-sdk/openai'
import {
extractReasoningMiddleware,
wrapLanguageModel,
type LanguageModelV1,
} from 'ai'
export const useAiModel = () => {
const config = useConfigStore()
let model: LanguageModelV1
switch (config.config.ai.provider) {
case 'openrouter': {
const openRouter = createOpenRouter({
apiKey: config.config.ai.apiKey,
baseURL: config.aiApiBase,
})
model = openRouter(config.config.ai.model, {
includeReasoning: true,
})
}
case 'deepseek': {
const deepSeek = createDeepSeek({
apiKey: config.config.ai.apiKey,
baseURL: config.aiApiBase,
})
model = deepSeek(config.config.ai.model)
}
case 'openai-compatible':
default: {
const openai = createOpenAI({
apiKey: config.config.ai.apiKey,
baseURL: config.aiApiBase,
})
model = openai(config.config.ai.model)
}
}
return wrapLanguageModel({
model,
middleware: extractReasoningMiddleware({ tagName: 'think' }),
})
}