type
Post
status
Published
date
Feb 2, 2025
slug
nextjs-deepseek
summary
NextJs如何接入deepseek
tags
React
AI
前端
开发
category
技术分享
icon
password
😀
本文详细介绍了如何通过Next.js的Router Handler来调用DeepSeek的API。

📝 调用DeepSeek的API

基于DeepSeek API文档

第一种方法是基于DeepSeek API文档中的示例代码进行集成,核心是使用OpenAI包进行API调用。
首次调用 API | DeepSeek API Docs
这种方式不仅支持JSON格式的数据传输,还支持流式渲染,但相较于第二种方案,其实现代码会稍显复杂。
💡注意:只有deepseek-chat模型支持json数据返回,deepseek-reasoner也就是我们俗称的效果更好的R1模型是不支持json数据的,需要自己手动处理。
我自己尝试下来会按渣markdown的格式进行返回,可以写一个简单的工具对字符串进行处理,或者按照第二种方法中vercel官网建议的解决方案。分享一下我的处理方案
工具函数进行简单替换:
这样处理的好处是非常快,完全根据markdown的文本特征进行处理,不需要再调用额外的API,但是同时也可能会存在异常的处理情况,比如返回值中本身就存在类似的字符或者返回值的主体本身不符合jsonString的格式。

利用@ai-sdk/deepseek进行调用

第二种方法则是利用@ai-sdk/deepseek进行调用,具体实现细节可参考Vercel官方文档。
需要注意的是,这种方法不支持直接返回JSON格式的数据,官方建议通过另一个免费模型对数据进行二次处理以解决这一问题。
官网这里使用了zod对返回的数据格式进行了约束,这种方案适用于对格式要求较为严格的场景,建议搭配TS一起使用

🤗 总结归纳

deepseek-chat的返回速度较快但是内容质量确实比不上deepseek-reasoner,但是R1模型的返回速度较慢,尤其是最近饱受外部非法请求的骚扰,时常会出现请求超时、中断的情况,所以在实际的应用开发中建议考虑多层的降级方案。

📎 参考文章