chatbot-template/lib/ai/models.ts
Jeremy c61d4f91d4
feat: add reasoning model (#750)
Co-authored-by: Matt Apperson <me@mattapperson.com>
2025-02-03 18:03:15 +03:00

49 lines
1.2 KiB
TypeScript

import { openai } from '@ai-sdk/openai';
import { fireworks } from '@ai-sdk/fireworks';
import {
customProvider,
extractReasoningMiddleware,
wrapLanguageModel,
} from 'ai';
export const DEFAULT_CHAT_MODEL: string = 'chat-model-small';
export const myProvider = customProvider({
languageModels: {
'chat-model-small': openai('gpt-4o-mini'),
'chat-model-large': openai('gpt-4o'),
'chat-model-reasoning': wrapLanguageModel({
model: fireworks('accounts/fireworks/models/deepseek-r1'),
middleware: extractReasoningMiddleware({ tagName: 'think' }),
}),
'title-model': openai('gpt-4-turbo'),
'block-model': openai('gpt-4o-mini'),
},
imageModels: {
'small-model': openai.image('dall-e-3'),
},
});
interface ChatModel {
id: string;
name: string;
description: string;
}
export const chatModels: Array<ChatModel> = [
{
id: 'chat-model-small',
name: 'Small model',
description: 'Small model for fast, lightweight tasks',
},
{
id: 'chat-model-large',
name: 'Large model',
description: 'Large model for complex, multi-step tasks',
},
{
id: 'chat-model-reasoning',
name: 'Reasoning model',
description: 'Uses advanced reasoning',
},
];