用 DeepSeek API 从零写一个流式摘要小工具:Node.js 命令行版
很多 AI 小工具不需要一开始就做成完整网站。比如“把一段长文本压缩成 5 条摘要”,用命令行就能快速验证:输入文本文件,调用模型,边生成边显示结果,最后把摘要保存下来。这篇文章用 DeepSeek API 和 Node.js 从零写一个流式摘要小工具,重点放在能跑、能看见输出、能处理失败。
根据 DeepSeek API Docs,DeepSeek API 使用兼容 OpenAI/Anthropic 的接口格式;在 OpenAI 格式下可以访问 https://api.deepseek.com,并通过 /chat/completions 发起对话请求。官方文档也提示旧模型名 deepseek-chat、deepseek-reasoner 将在 2026-07-24 15:59 UTC 弃用,所以新项目建议优先选择文档里的 deepseek-v4-pro 或 deepseek-v4-flash。
- 项目目标:一个能边输出边摘要的 CLI
- 环境准备:密钥、依赖和输入文件
- 核心代码:读取文本并请求模型
- 本地运行:从文件到流式输出
- 部署和集成:把小工具接进工作流
- 验收清单:怎么确认它真的可用
- 总结
项目目标:一个能边输出边摘要的 CLI
我们要做的工具很小,目标也很明确:
- 从本地文件读取一段长文本。
- 调用 DeepSeek API 生成中文摘要。
- 使用流式响应,让用户不用等完整结果才看到输出。
- 最后把生成内容保存成
summary.md。
这个项目适合作为 AI 应用的第一步:你可以先验证提示词、模型响应速度和错误处理,再决定要不要扩展成网页、接口服务或自动化任务。

环境准备:密钥、依赖和输入文件
先准备一个空目录,并安装 OpenAI 兼容 SDK:
mkdir ai-summary-cli cd ai-summary-cli npm init -y npm install openai
然后设置环境变量。密钥不要写进代码,也不要提交到仓库:
export DEEPSEEK_API_KEY="你的 DeepSeek API Key"
准备一个输入文件 input.txt,里面放需要摘要的内容。第一次测试建议用几百到一两千字,不要上来就塞超长文档,这样更容易观察请求、输出和失败提示。
核心代码:读取文本并请求模型
新建 summarize.mjs,代码如下:
import OpenAI from "openai";
import fs from "node:fs/promises";
const apiKey = process.env.DEEPSEEK_API_KEY;
if (!apiKey) {
console.error("请先设置 DEEPSEEK_API_KEY");
process.exit(1);
}
const client = new OpenAI({
apiKey,
baseURL: "https://api.deepseek.com"
});
const inputPath = process.argv[2] || "input.txt";
const outputPath = process.argv[3] || "summary.md";
const sourceText = await fs.readFile(inputPath, "utf8");
const stream = await client.chat.completions.create({
model: "deepseek-v4-flash",
stream: true,
messages: [
{
role: "system",
content: "你是一个严谨的中文摘要助手,只输出摘要,不补充无关内容。"
},
{
role: "user",
content: `请把下面内容整理成 5 条要点,并保留关键数字和结论:\n\n${sourceText}`
}
]
});
let result = "";
for await (const chunk of stream) {
const delta = chunk.choices?.[0]?.delta?.content || "";
if (!delta) continue;
process.stdout.write(delta);
result += delta;
}
await fs.writeFile(outputPath, result + "\n", "utf8");
console.log(`\n\n已保存到 ${outputPath}`);
这里有三个关键点:第一,baseURL 指向 DeepSeek 的 OpenAI 兼容入口;第二,stream: true 打开流式响应;第三,循环里每拿到一段内容就打印出来,同时拼接到最终结果里。
本地运行:从文件到流式输出
运行命令:
node summarize.mjs input.txt summary.md
正常情况下,终端会边生成边显示摘要,结束后看到“已保存到 summary.md”。如果没有输出,先检查三个地方:
DEEPSEEK_API_KEY是否已经设置。input.txt是否存在且有内容。- 当前网络是否能访问 API 地址。

部署和集成:把小工具接进工作流
命令行工具最适合先接入低风险流程。例如:
- 把会议纪要草稿整理成 5 条待办。
- 把技术文档压缩成阅读提纲。
- 把客服反馈整理成问题分类。
- 把日志说明转换成排查清单。
如果后续要集成到后台任务或网页接口里,建议先补三件事:限制输入长度、记录请求耗时、给失败场景返回清晰提示。不要把用户隐私、生产密钥、内部合同等敏感内容直接送给模型;确实要处理内部文本时,先做脱敏和权限控制。
验收清单:怎么确认它真的可用
上线前可以按这张清单验收:
- 结果可读:摘要是不是 5 条,是否保留了关键数字和结论。
- 输出可见:终端是否能看到流式输出,而不是一直空等。
- 失败清楚:没有密钥、文件不存在、网络异常时,提示是否明确。
- 文件落盘:
summary.md是否正常生成,内容是否和终端一致。 - 安全边界:是否避免把密钥和敏感数据写入代码或仓库。
总结
这个小项目把 AI 应用最核心的链路跑通了:读入文本、组织提示词、调用 DeepSeek API、流式显示结果、保存摘要。它足够小,适合快速验证;也足够完整,后续可以扩展成网页摘要、批量处理、定时任务或文档归档流程。真正落地时,别只关注模型回答,还要把输入长度、失败提示、权限边界和敏感信息处理一起设计进去。
DeepSeek 官网是什么?App 怎么下载更安全:入口核对和使用建议
- 上一篇
- DeepSeek 官网是什么?App 怎么下载更安全:入口核对和使用建议
- 下一篇
- Go 并发读写 map 怎么选:map+RWMutex、sync.Map、分片 map 对比
-
- 科技周边 · 人工智能 | 1小时前 | 人工智能 · GenAI · opentelemetry · 可观测性 · AI工程 · 人工智能 链路追踪 GenAI OpenTelemetry AI可观测性 LLM网关 Token统计
- AI 调用可观测架构:从散乱日志到 OpenTelemetry GenAI 字段统一
- 427浏览 收藏
-
- 科技周边 · 人工智能 | 3天前 | 人工智能 · 前端流式输出 · AI聊天 · Fetch Stream · 前端 AI聊天 流式输出 ReadableStream TextDecoder Fetch Stream
- AI 聊天流式输出前端配方:用 Fetch Stream 实现逐字渲染和中断控制
- 448浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- ljg-skills
- ljg-skills 是李继刚开源的 AI 技能与提示词集合,面向大模型使用者整理了一批可复用的 prompt、角色设定和任务技能模板,适合用于学习提示词设计、搭建个人 AI 工作流和沉淀团队常用智能体能力。
- 3184次使用
-
- MELO音乐
- MELO音乐是一站式AI视频与音乐制作助手,对标suno, udio的高品质体验。提供伴奏生成、原创写词、无损导出、哼唱识曲、混音变声等全套音频与短视频编辑工具。无论是流行Kpop、电音说唱、民谣古风、摇滚儿歌还是商用轻音乐,MELO为你免费谱曲,轻松做同款!
- 2938次使用
-
- UniScribe
- UniScribe 是一款 AI 音视频转文字与内容整理工具,支持上传音频、视频文件或粘贴 YouTube 链接,自动生成转写文本、摘要、思维导图和关键问题,并支持多格式导出,适合会议记录、课程学习、访谈整理和内容创作复盘。
- 2895次使用
-
- 剧云
- 剧云是专业中文剧本创作平台,安全稳定运行十余年,集成AI编剧、剧本医生审核、人物小传、剧情关系图、大纲编写、多人协作、Word导入导出、版权管控功能,数据安全防护,轻松高效创作剧本。
- 3099次使用
-
- 万象有声
- 万象有声,一个专为有声创作者打造的新一代智能有声内容创作平台。平台提供专业的智能拆章、智能画本编辑、AI配音、AI生成音效、后期制作、智能对轨、智能审听等有声创作全流程工具,可以帮助创作者高效、低成本创作出引人入胜的有声作品。立即体验,让有声书制作更简单!
- 3057次使用
-
- 极客时间优秀课程推荐分享
- 2023-02-23 100浏览
-
- 大家都是如何看开源代码的
- 2023-01-08 101浏览
-
- AI 知识库分块实战:按标题层级切文档,减少回答跑偏
- 2026-06-13 101浏览
-
- 手机App验证码一般放在服务器端什么地方?为什么?
- 2023-02-16 102浏览
-
- Sequelize-Automate: 自动生成 Sequelize Models
- 2023-01-26 103浏览

