本分支(agent/eino)包含:
- 后端:Go + CloudWeGo Eino(夸克网盘转存、目录树/缓存、AI 文案生成)
- 前端:Nuxt 4(转存/预览/生成文案/历史记录)
仓库根目录下的 frontend/ 为 Nuxt 4 前端工程,已按 Product-Spec.md 实现:
- 转存文件:提交夸克分享链接,轮询查看任务状态
- 生成文案:选择资源 + 风格配置,一键生成标题/描述,支持单条重生成与保存到历史
- 预览目录:树形目录 + 统计信息(类型分布)
- 历史记录:查看/复用/删除转存与文案记录
启动方式:
cd frontend
npm ci
# 如后端不在同源,请指定 API 基地址(默认 http://127.0.0.1:8787)
# export NUXT_PUBLIC_API_BASE=http://127.0.0.1:8787
npm run dev默认监听::::3000(IPv6 通配;在多数 Linux 环境下也会同时接受 IPv4 连接)
本机访问:http://127.0.0.1:3000 或 http://[::1]:3000
-
环境要求
- Go(见
backend/go.mod中go版本) - Node.js(建议 20+,用于运行
frontend/)
- Go(见
-
配置环境变量(推荐)
- 复制
.env.example为.env.local(.env.local不要提交) - AI:填
OPENAI_API_KEY、OPENAI_MODEL(或使用等价的AI_API_KEY、AI_MODEL) - 代理:如使用中转/代理,填
OPENAI_BASE_URL(会自动补/v1) - 夸克:需要“转存”功能时再填
QUARK_COOKIE(仅“分享链接模式”可不填)
- 复制
-
启动后端
cd backend
GOPROXY=https://goproxy.cn,direct go run ./cmd/eino-agent默认监听:0.0.0.0:8787(本机访问:http://127.0.0.1:8787)
- 启动前端
cd frontend
npm ci
# 如后端不在同源,请指定 API 基地址(默认 http://127.0.0.1:8787)
# export NUXT_PUBLIC_API_BASE=http://127.0.0.1:8787
npm run dev-
分享链接模式(不转存)
POST /api/shares/root-info获取默认资源名(可选)POST /api/shares/directory-cache缓存目录树(便于后续复用/对比 diff)POST /api/agent/generate-copywriting传shareUrl直接生成文案(可saveToHistory)
-
转存模式(需要
QUARK_COOKIE)POST /api/transfers创建转存任务GET /api/transfers/:id轮询状态GET /api/transfers/:id/directory-cache读取目录树缓存(用于预览/生成文案)
GET /healthzPOST /api/transfersGET /api/transfersGET /api/transfers/:idDELETE /api/transfers/:idPOST /api/transfers/:id/retryGET /api/transfers/:id/directory-cachePOST /api/shares/root-info(轻量:推断资源名/根目录 fid)POST /api/shares/directory-tree(不转存:从分享链接获取目录树)GET /api/shares/directory-cache(分享链接目录缓存列表)GET /api/shares/directory-cache/:id(读取分享链接目录缓存)DELETE /api/shares/directory-cache/:idPOST /api/shares/directory-cache(获取/更新分享链接目录并落库,返回新增文件 diff)POST /api/agent/analyze-directoryPOST /api/agent/generate-titlesPOST /api/agent/generate-descriptionPOST /api/agent/check-violationsPOST /api/agent/generate-copywritingGET /api/copywriting-recordsPOST /api/copywriting-recordsGET /api/copywriting-records/:idDELETE /api/copywriting-records/:id
- 每个响应都会带
X-Request-ID;发生错误时 JSON 里也会附带traceid,用于快速定位后端日志。