DeepSeek API 实战:从接入到搭建你自己的 AI 助手
DeepSeek API 实战从接入到搭建你自己的 AI 助手最近做项目需要接入大模型 API对比了一圈最终选了 DeepSeek。原因很简单便宜、中文效果好、兼容 OpenAI 协议。这篇文章记录我从零接入到搭建一个可用 AI 助手的全过程踩过的坑和最终方案都写出来了。一、为什么要选 DeepSeek选模型之前我列了几个硬性需求中文理解能力要强做的是面向国内用户的产品API 调用成本要低前期不想烧钱兼容 OpenAI 协议方便后续切换上下文窗口要够大需要处理长文档对比了几个主流模型后DeepSeek 是最符合的。模型 输入价格 输出价格 上下文 DeepSeek ¥1/百万token ¥2/百万token 64K GPT-4o ¥15/百万token ¥60/百万token 128K Claude3.5¥18/百万token ¥90/百万token 200K价格差距不是一点半点。对于大多数实际场景DeepSeek 的能力完全够用。二、接入过程DeepSeek 的 API 兼容 OpenAI 格式所以用起来和 OpenAI 几乎一样。1. 获取 API Key去 platform.deepseek.com 注册账号 → 创建 API Key。Key 的格式以sk-开头。2. 基础调用fromopenaiimportOpenAI clientOpenAI(api_keysk-your-key-here,base_urlhttps://api.deepseek.com/v1)responseclient.chat.completions.create(modeldeepseek-chat,messages[{role:system,content:你是一个帮助用户解决问题的助手。},{role:user,content:用 Python 写一个快速排序}])print(response.choices[0].message.content)就这么简单。如果你之前用过 OpenAI 的 API只需要把base_url和api_key换掉就行。3. 流式输出实际产品中不可能等完整响应再展示流式输出是标配streamclient.chat.completions.create(modeldeepseek-chat,messages[{role:user,content:讲一个技术笑话}],streamTrue)forchunkinstream:ifchunk.choices[0].delta.content:print(chunk.choices[0].delta.content,end)这样用户能看到文字一个字一个字出来体验好很多。三、搭建自己的 AI 助手有了 API 后我用 FastAPI 搭了一个简单的 AI 助手后端支持对话历史和流式输出。项目结构ai-assistant/ ├── main.py# FastAPI 服务├── chat.py# 对话逻辑├── config.py# 配置└── requirements.txtconfig.pyimportosfromdotenvimportload_dotenv load_dotenv()DEEPSEEK_API_KEYos.getenv(DEEPSEEK_API_KEY)DEEPSEEK_BASE_URLhttps://api.deepseek.com/v1MODEL_NAMEdeepseek-chatchat.py——核心对话逻辑fromopenaiimportOpenAIfromconfigimportDEEPSEEK_API_KEY,DEEPSEEK_BASE_URL,MODEL_NAME clientOpenAI(api_keyDEEPSEEK_API_KEY,base_urlDEEPSEEK_BASE_URL)classChatSession:def__init__(self,system_promptNone):self.messages[]ifsystem_prompt:self.messages.append({role:system,content:system_prompt})defadd_message(self,role,content):self.messages.append({role:role,content:content})defget_response(self):responseclient.chat.completions.create(modelMODEL_NAME,messagesself.messages,temperature0.7,max_tokens2000)replyresponse.choices[0].message.content self.add_message(assistant,reply)returnreplydefget_stream_response(self):streamclient.chat.completions.create(modelMODEL_NAME,messagesself.messages,streamTrue,temperature0.7)full_responseforchunkinstream:deltachunk.choices[0].delta.contentorfull_responsedeltayielddelta self.add_message(assistant,full_response)main.py——FastAPI 服务fromfastapiimportFastAPIfromfastapi.responsesimportStreamingResponsefrompydanticimportBaseModelfromchatimportChatSession appFastAPI()classChatRequest(BaseModel):message:strsession_id:strdefaultsessions{}app.post(/chat)asyncdefchat(request:ChatRequest):ifrequest.session_idnotinsessions:sessions[request.session_id]ChatSession(system_prompt你是一个有用的AI助手。请用中文回答。)sessionsessions[request.session_id]session.add_message(user,request.message)replysession.get_response()return{reply:reply,session_id:request.session_id}app.post(/chat/stream)asyncdefchat_stream(request:ChatRequest):ifrequest.session_idnotinsessions:sessions[request.session_id]ChatSession(system_prompt你是一个有用的AI助手。请用中文回答。)sessionsessions[request.session_id]session.add_message(user,request.message)returnStreamingResponse(session.get_stream_response(),media_typetext/event-stream)四、几个实战踩坑记录1. 上下文管理一开始我没限制对话历史长度结果聊了几十轮后 token 数爆炸每次请求都又慢又贵。解决方案限制 messages 列表长度超出后丢弃最早的对话。MAX_HISTORY20deftrim_messages(self):iflen(self.messages)MAX_HISTORY:# 保留 system prompt丢弃最早的对话system[mforminself.messagesifm[role]system]history[mforminself.messagesifm[role]!system]self.messagessystemhistory[-MAX_HISTORY:]2. 超时处理DeepSeek API 在高峰期偶尔会响应较慢客户端需要设置超时clientOpenAI(api_keyDEEPSEEK_API_KEY,base_urlDEEPSEEK_BASE_URL,timeout30,# 30秒超时max_retries2# 自动重试2次)3. 错误处理API 调用可能因为各种原因失败需要做好容错try:responseclient.chat.completions.create(...)exceptExceptionase:print(fAPI 调用失败:{e})return抱歉我现在有点忙请稍后再试。用户不关心技术细节给他们一个友好的错误提示就够了。五、成本估算我用这个方案跑了两个月来算算账日均请求约500次 平均每次约800tokens输入输出 日均消耗约 400K tokens 月均消耗约 12M tokens 月均成本约 ¥12按 ¥1/百万token 计算12 块钱一个月能跑一个完整的 AI 助手后端。对比 GPT-4o 同样用量要接近 200 块差距是十几倍。写在最后DeepSeek 是目前性价比最高的中文大模型 API没有之一。如果你在做 AI 相关的产品特别是面向中文用户的场景非常值得一试。接入成本极低——改一行base_url就能从 OpenAI 切过来。先跑起来等规模大了再考虑要不要换更贵的模型。你对 DeepSeek 有什么想了解的欢迎在评论区交流。文章中的代码已脱敏完整项目代码可以在 GitHub 上找到

相关新闻

一针见血!用JSLeakWatcher解决HarmonyOS内存泄漏难题

一针见血!用JSLeakWatcher解决HarmonyOS内存泄漏难题

本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看: 一针见血!用JSLeakWatcher解决HarmonyOS内存泄漏难题-华为开发者话题 | 华为开发者联盟 一、为什么你的Harm…

2026/7/17 21:59:58阅读更多 →
HarmonyOS应用性能监测服务APMS-崩溃问题定位分析指导

HarmonyOS应用性能监测服务APMS-崩溃问题定位分析指导

本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看: HarmonyOS应用性能监测服务APMS-崩溃问题定位分析指导-华为开发者话题 | 华为开发者联盟 版本刚上线,崩溃告…

2026/7/17 21:59:58阅读更多 →
AutoGPT API设计与实现:从智能体到可编程服务的工程实践

AutoGPT API设计与实现:从智能体到可编程服务的工程实践

1. 项目概述:为什么我们需要一个AutoGPT的API?如果你最近在捣鼓AI智能体,尤其是像AutoGPT这样的自动化任务执行框架,那你大概率会遇到一个头疼的问题:怎么把它集成到自己的应用里去?是直接复制粘贴它那一大…

2026/7/17 21:54:36阅读更多 →
Java生鲜电商实战项目:SpringBoot线上买菜系统(含数据库+文档)

Java生鲜电商实战项目:SpringBoot线上买菜系统(含数据库+文档)

本文还有配套的精品资源,点击获取 简介:一套开箱即用的Java生鲜电商系统源码,基于SpringBoot 2.x构建,覆盖用户注册登录、商品分类展示、搜索筛选、购物车增删改查、订单提交与状态管理等完整购物流程。后端采用MySQL存储&…

2026/7/17 23:05:06阅读更多 →
纯C实现的电力潮流计算工具,支持标准文本文件导入导出

纯C实现的电力潮流计算工具,支持标准文本文件导入导出

本文还有配套的精品资源,点击获取 简介:这个资源包提供一个轻量级、可直接编译运行的C语言潮流计算程序,适用于教学演示和小型电网算例验证。它通过读取in.txt格式的文本文件加载电网数据,包括节点类型、负荷功率、支路阻抗等参…

2026/7/17 23:05:06阅读更多 →
STC89C52+HC-SR04超声波测距实战工程,带LCD12864显示和Keil完整编译环境

STC89C52+HC-SR04超声波测距实战工程,带LCD12864显示和Keil完整编译环境

本文还有配套的精品资源,点击获取 简介:直接可用的51单片机超声波测距项目,主控为STC89C52(兼容标准8051),搭配HC-SR04模块实现厘米级距离测量。硬件连接明确:TRIG接P1.2、ECHO接P1.1&#x…

2026/7/17 23:05:06阅读更多 →
Python-for-Android SDL2:用Python将2D游戏快速打包为安卓APK

Python-for-Android SDL2:用Python将2D游戏快速打包为安卓APK

1. 项目概述:为什么选择Python-for-Android SDL2?如果你是一个熟悉Python的开发者,想把手头的2D游戏或者交互应用搬到安卓手机上,但又不想一头扎进Java或Kotlin的复杂世界里,那你来对地方了。Python-for-Android&#…

2026/7/17 23:05:06阅读更多 →
STM32F103加湿器毕业设计实操包:带OLED显示、按键交互、继电器雾化控制及全套可烧录工程

STM32F103加湿器毕业设计实操包:带OLED显示、按键交互、继电器雾化控制及全套可烧录工程

本文还有配套的精品资源,点击获取 简介:基于STM32F103C8T6芯片的落地型加湿器项目,硬件已实际搭建并稳定运行,适合毕业设计或课程实践。支持手动调节和自动湿度控制两种模式,通过PB8–PB12共5个独立物理按键完成参数…

2026/7/17 23:05:06阅读更多 →
全新手电筒软件,没想到还能这么玩!

全新手电筒软件,没想到还能这么玩!

安装完毕后打开软件,会发现它设有夜间模式与白天模式,大家可以根据自身喜好进行切换。 除了具备手电筒的基本功能外,该软件还拥有感光灯、SOS 以及闪电效果,并且可以调节闪电的频率效果。 在软件的“功能”板块中,竟有…

2026/7/17 23:00:06阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/17 10:42:55阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/17 8:31:03阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/17 13:22:23阅读更多 →
VS Code 高效配置与个性化定制全攻略

VS Code 高效配置与个性化定制全攻略

1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…

2026/7/17 0:00:01阅读更多 →
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…

2026/7/17 0:00:01阅读更多 →
WinRAR高效配置指南:从基础安装到高级压缩实战

WinRAR高效配置指南:从基础安装到高级压缩实战

前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…

2026/7/17 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/17 22:48:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/17 13:22:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/17 17:26:50阅读更多 →