chatbot-template/lib/ai/providers.ts
2025-03-17 16:40:25 -07:00

41 lines
1.2 KiB
TypeScript

import {
customProvider,
extractReasoningMiddleware,
wrapLanguageModel,
} from "ai";
import { openai } from "@ai-sdk/openai";
import { fireworks } from "@ai-sdk/fireworks";
import { xai } from "@ai-sdk/xai";
import { isTestEnvironment } from "../constants";
import {
artifactModel,
chatModel,
reasoningModel,
titleModel,
} from "./models.test";
export const myProvider = isTestEnvironment
? customProvider({
languageModels: {
"chat-model-small": chatModel,
"chat-model-large": chatModel,
"chat-model-reasoning": reasoningModel,
"title-model": titleModel,
"artifact-model": artifactModel,
},
})
: customProvider({
languageModels: {
"chat-model-small": xai("grok-2-1212"),
"chat-model-reasoning": wrapLanguageModel({
model: fireworks("accounts/fireworks/models/deepseek-r1"),
middleware: extractReasoningMiddleware({ tagName: "think" }),
}),
"title-model": xai("grok-2-1212"),
"artifact-model": xai("grok-2-1212"),
},
imageModels: {
"small-model": openai.image("dall-e-2"),
"large-model": openai.image("dall-e-3"),
},
});