# novel_agent_platform **Repository Path**: LongYuFeng/novel_agent_platform ## Basic Information - **Project Name**: novel_agent_platform - **Description**: 一个写小说的多agent只能小说编写平台。 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-25 - **Last Updated**: 2026-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: Agent ## README # AI 小说创作平台(NAP) AI 小说创作平台:Tauri v2 桌面壳 + React/TypeScript 前端 + Python FastAPI 后端(SQLite 存储)。 **数据源为真实后端 HTTP 唯一实现**(Issue 28 起 mock 已退役,前端必须连后端才能使用;无后端时界面请求会报错)。后端地址按构建环境分叉:开发 127.0.0.1:1480、生产(安装版)127.0.0.1:1470,两套可同机并行(见「开发与生产并行」)。 ## 环境要求 - Node.js 22 + pnpm 11(前端) - Python 3.11 + uv(后端,venv 由 uv 创建) - Rust 工具链(仅 `pnpm tauri dev` / `pnpm tauri build` 需要) ## 安装依赖 ```bash # 前端(含 Tauri 图标生成等 postinstall 脚本) pnpm install # 后端 cd backend uv pip install -r requirements.txt cd .. ``` ## 运行 启动顺序:**先启动后端,再启动前端 / 桌面应用**。 ### 1. 启动后端(FastAPI,开发端口 1480) ```bash cd backend .venv\Scripts\python.exe -m app ``` 首次启动自动创建并播种数据库 `backend/data/nap.db`(含演示作品种子数据)。 ### 2a. 浏览器模式(开发调试用) ```bash # 另开一个终端 pnpm dev ``` 浏览器访问 http://localhost:1430(工作区 CORS 已放行)。 ### 2b. 桌面应用(正式形态) ```bash pnpm tauri dev ``` CSP 基线已在 `src-tauri/tauri.conf.json` 配置:生产构建注入 `csp`(connect-src 放行 `http://127.0.0.1:1470`),开发注入 `devCsp`(放行 1430 dev server 与开发后端 1480)。 ### 停止 两个终端分别按 `Ctrl+C` 即可(后端为 SQLite 持久化,停止不丢数据)。 ### 开发与生产并行(端口布局) | | 前端 | 后端 | 数据库 | | --- | --- | --- | --- | | 开发(本文档流程) | Vite dev server :1430 | 手动 `python -m app`(默认 :1480) | `backend/data/nap.db` | | 生产(安装版) | 内嵌于桌面窗口(无端口) | sidecar(桌面壳注入 :1470) | 系统 AppData | 两端口彼此隔离,开发机可同时运行已安装的生产版;前端按构建环境自动连接对应后端,开发操作不会写入生产数据。 ## 测试 ```bash # 前端:类型检查 + 纯函数层单测(Vitest) pnpm typecheck pnpm test # 后端:契约测试(pytest,全项目唯一业务契约测试缝) cd backend .venv\Scripts\python.exe -m pytest ``` ## 构建 / 打包 ```bash # 前端产物(dist/) pnpm build # 桌面安装包 pnpm tauri build ``` ## 目录结构 - `src/`:前端(React + react-router,HashRouter) - `src/api/`:数据层——`http.ts` 为唯一实现,`index.ts` 导出 `api` - `backend/`:Python FastAPI 后端(REST + SSE 生成流),`app/routers/` 按域拆分 - `src-tauri/`:Tauri v2 桌面壳 - `.scratch/ai-novel-platform-mvp/`:需求与任务跟踪(spec.md + issues/)