一个支持流式回答、追问和问题树的中文 AI 研究助手。
下载本项目后即可在本地运行。项目使用 DeepSeek API;没有配置 API Key 时,会自动使用内置演示模式。
- 在 GitHub 项目页面点击 Code。
- 选择 Download ZIP。
- 解压文件并进入项目文件夹。
git clone <GitHub 仓库地址>
cd threaded-searcher需要安装 Node.js 18 或更高版本,推荐使用 Node.js LTS。
安装后打开终端检查:
node -v
npm -v本项目没有第三方 npm 依赖,不需要执行 npm install。
复制配置示例文件。
Windows PowerShell:
Copy-Item config\deepseek.json.example config\deepseek.jsonmacOS / Linux:
cp config/deepseek.json.example config/deepseek.json打开 config/deepseek.json,填写你的 API Key:
{
"apiKey": "你的 DeepSeek API Key",
"baseUrl": "https://api.deepseek.com",
"model": "deepseek-v4-flash",
"temperature": 0.4,
"stream": true
}也可以使用环境变量:
PowerShell:
$env:DEEPSEEK_API_KEY="你的 DeepSeek API Key"macOS / Linux:
export DEEPSEEK_API_KEY="你的 DeepSeek API Key"环境变量优先级高于 JSON 配置。可使用 DEEPSEEK_API_URL 覆盖 API 地址。
config/deepseek.json已加入.gitignore,不会被提交到 GitHub。请勿公开 API Key。
在项目根目录执行:
npm start如果 3000 端口被占用,可更换端口:
PowerShell:
$env:PORT=3001
npm start然后打开 http://localhost:3001。停止服务请按 Ctrl+C。
没有 API Key 时,项目仍然可以启动并体验:
- 页面布局
- 流式文字显示
- 追问功能
- 选中文字继续提问
- 问题树拖拽、撤销和恢复
演示模式不会调用 DeepSeek,也不会产生 API 费用,但回答内容是内置示例,不是真实模型生成。
- 选择回答方式,输入问题并提交。
- 点击回答中的“追问”,创建当前回答的子问题。
- 选中回答中的一段文字,继续围绕选中内容提问。
- 点击右侧问题树节点,定位到对应回答。
- 拖动节点调整父子关系或同级顺序。
- 使用“撤销”“恢复”“清空”管理问题树。
快捷键:
Ctrl+Z:撤销Ctrl+Y或Ctrl+Shift+Z:恢复
请安装 Node.js LTS,关闭当前终端后重新打开,再执行:
node -v
npm -v请确认:
config/deepseek.json文件存在。apiKey填写正确。- JSON 中的引号和逗号格式正确。
- 网络可以访问
api.deepseek.com。 - 修改配置后已重启
npm start。
重启服务,并在浏览器中按 Ctrl+F5 强制刷新。
.
├── server.js # Node.js 服务、DeepSeek 代理和静态文件服务
├── package.json # 启动命令和项目配置
├── .gitignore # Git 忽略规则
├── config/
│ └── deepseek.json.example # DeepSeek 配置示例
├── public/
│ ├── index.html # 页面结构
│ ├── app.js # 页面交互和问题树逻辑
│ └── styles.css # 页面样式
└── README.md # 使用说明
- 不要把 API Key 提交到 GitHub。
- 不要把 API Key 写入
public/app.js或public/index.html。 - 如果 API Key 泄露,请立即撤销并重新生成。
- 公开部署时,建议增加登录、限流和请求校验。
npm run check