Skip to content
Dashboard

DeepSeek V3 vs. R1: How to choose between them

Link to headingWhat is DeepSeek V3?

Link to headingKey V3 capabilities and release timeline

Link to headingWho DeepSeek V3 is built for

Link to headingWhat is DeepSeek R1?

Link to headingKey R1 capabilities and release timeline

Link to headingWho DeepSeek R1 is built for

Link to headingHow DeepSeek V3 and R1 differ in architecture and training

Link to headingShared MoE foundation

Link to headingV3's pretraining and RLHF pipeline

Link to headingR1's reinforcement learning with verifiable rewards

Link to headingWhy R1 produces chain-of-thought and V3 doesn't

Link to headingDeepSeek V3 and R1 side-by-side

Link to headingBenchmark performance

Link to headingCost and latency tradeoffs

Link to headingWhen to use DeepSeek V3

Link to headingWhen to use DeepSeek R1

Link to headingBuilding with DeepSeek V3 and R1 on Vercel

Link to headingAccessing both models through the AI SDK

import { deepseek } from '@ai-sdk/deepseek';
const v3 = deepseek.chat('deepseek-chat');
const r1 = deepseek.chat('deepseek-reasoner');

Link to headingRouting between V3 and R1 by query complexity

import { deepseek } from '@ai-sdk/deepseek';
import { convertToModelMessages, streamText, type UIMessage } from 'ai';
function selectModel(useReasoning: boolean) {
return useReasoning
? deepseek('deepseek-reasoner')
: deepseek('deepseek-chat');
}
export async function POST(req: Request) {
const {
messages,
useReasoning,
}: { messages: UIMessage[]; useReasoning: boolean } = await req.json();
const result = streamText({
model: selectModel(useReasoning),
messages: await convertToModelMessages(messages),
});
return result.toUIMessageStreamResponse({
sendReasoning: useReasoning,
});
}

Link to headingStreaming reasoning tokens in Next.js apps

for await (const part of result.fullStream) {
if (part.type === 'reasoning') {
console.log('Reasoning:', part.text);
} else if (part.type === 'text') {
console.log('Answer:', part.text);
}
}

Link to headingPick the right DeepSeek model for the job

Link to headingFrequently asked questions about DeepSeek V3 and R1

Link to headingIs DeepSeek R1 just V3 with extra training?

Link to headingCan I use R1 and V3 together in the same application?

Link to headingWhich is better for coding, R1 or V3?

Link to headingDoes DeepSeek R1 support tool calling and structured output?

Ready to deploy?