773 lines
57 KiB
Plaintext
773 lines
57 KiB
Plaintext
---
|
||
description:
|
||
globs:
|
||
alwaysApply: false
|
||
---
|
||
|
||
# AI写作软件项目全局配置
|
||
project_config:
|
||
name: "ai-novel-assistant"
|
||
description: "AI驱动的小说创作管理系统"
|
||
|
||
# 后端配置
|
||
backend:
|
||
framework: "spring-boot"
|
||
version: "3.2.0"
|
||
java_version: "23"
|
||
base_package: "com.ainovel"
|
||
|
||
|
||
# 前端配置
|
||
frontend:
|
||
framework: "flutter"
|
||
web_first: true
|
||
|
||
|
||
# 数据结构
|
||
rule:数据结构,noval和act是一对多关系 act和chapter是一对多关系,chapter和sense是一对多关系,sense和摘要是一对一关系
|
||
|
||
# AINovalWriter 项目架构说明
|
||
|
||
## 项目概述
|
||
|
||
AINovalWriter 是一个AI辅助小说创作平台,包含前端应用(Flutter)和后端服务(Spring Boot)两个主要部分。
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
AINovalWriter/
|
||
├── DESIGN_DOCUMENT.md # 项目顶层设计文档
|
||
├── OPTIMIZATION_SUMMARY.md # 优化总结文档
|
||
├── temp.java # 临时 Java 文件 (用途待定)
|
||
├── 提示词模板生成需求.md # AI 提示词模板生成功能的需求文档
|
||
├── 版本控制功能说明.md # 编辑器版本控制功能的设计或说明文档
|
||
├── 项目架构说明.md # 项目整体架构的说明文档
|
||
│
|
||
├── 需求文档/ # 存放项目需求相关文档
|
||
│ ├── prd.md # 产品需求文档 (Product Requirement Document)
|
||
│ ├── requirements_validation.md # 需求验证文档
|
||
│ ├── user_flow_and_wireframes.md # 用户流程和线框图文档
|
||
│ ├── 前端后台任务系统需求文档.md # 前端后台任务系统的需求文档
|
||
│ ├── 前端概要设计文档.md # 前端整体概要设计文档
|
||
│ ├── 前端详细设计文档.(小说列表模块,编辑器模块).md # 前端小说列表和编辑器模块的详细设计
|
||
│ ├── 前端详细设计文档(AI聊天模块).md # 前端 AI 聊天模块的详细设计
|
||
│ ├── 前端详细设计文档(Codex知识库模块).md # 前端 Codex 知识库模块的详细设计
|
||
│ ├── 前端详细设计文档(小说计划预览模块).md # 前端小说计划(Plan)预览模块的详细设计
|
||
│ ├── 前端详细设计文档(文件导出模块详细设计).md # 前端文件导出模块的详细设计
|
||
│ ├── 后台任务系统需求文档.md # 后端后台任务系统的需求文档
|
||
│ │
|
||
│ └── AI生成场景摘要和场景内容/ # AI 生成功能的特定需求文档
|
||
│ ├── 前端 AI 生成与提示词管理需求文档.md # 前端 AI 生成与提示词管理的需求
|
||
│ ├── 后端 AI 生成与提示词管理 - 详细设计文档.md # 后端 AI 生成与提示词管理的详细设计
|
||
│ └── 后端 AI 生成与提示词管理需求文档.md # 后端 AI 生成与提示词管理的需求
|
||
│
|
||
├── 测试计划与文档/ # 存放测试相关计划和文档
|
||
│ ├── 后端接口文档.md # 后端 API 接口文档
|
||
│ ├── 改进报告.md # 项目改进报告
|
||
│ ├── 第一次测试计划与功能点.md # 项目第一次迭代的测试计划和功能点
|
||
│ └── 第二次迭代第一次代码评审.md # 第二次迭代的代码评审记录
|
||
│
|
||
├── 后端开发文档/ # 存放后端开发过程中的文档
|
||
│ ├── AI小说助手系统后端概要设计文档.md # 后端概要设计文档
|
||
│ ├── AI小说助手系统敏捷开发计划 - 技术验证阶段(调整版).md # 技术验证阶段的敏捷开发计划
|
||
│ ├── AI小说助手系统敏捷开发计划 - 边验证边开发模式.md # 边验证边开发的敏捷计划
|
||
│ ├── spint1-2.md # Sprint 1-2 的相关文档或笔记
|
||
│ ├── 技术评估.md # 项目涉及的技术评估文档
|
||
│ └── 迭代日记.md # 开发迭代过程中的日记或记录
|
||
│
|
||
├── 原型图/ # 存放界面原型图及相关说明
|
||
│ ├── 实现动态获取模型列表和配置验证功能/ # 动态获取模型列表功能的文档
|
||
│ │ └── 实现动态获取模型列表和配置验证功能.md # 该功能的 Markdown 说明文档
|
||
│ │
|
||
│ ├── 剧情推演html原型图和需求文档/ # 剧情推演(Next Outline)功能的原型和需求
|
||
│ │ ├── next_outline_prototype.html # 剧情推演功能的 HTML 原型
|
||
│ │ ├── 前端需求.md # 剧情推演功能的前端需求
|
||
│ │ └── 后端需求.md # 剧情推演功能的后端需求
|
||
│ │
|
||
│ └── plan文档和原型图/ # 小说计划(Plan)视图的原型和文档
|
||
│ ├── plan.html # Plan 视图的 HTML 原型
|
||
│ └── 前端 Plan 视图原型描述.md # Plan 视图原型的 Markdown 描述
|
||
│
|
||
├── 前端产品敏捷迭代计划/ # 前端产品的迭代计划
|
||
│ └── 前端产品迭代计划.md # 前端产品迭代计划文档
|
||
│
|
||
├── target/ # 构建输出目录 (通常由构建工具生成)
|
||
│ └── performance-reports/ # 性能测试报告目录
|
||
│ ├── performance_test_platform_50_users_20250313_101351.md # 平台线程模型的 50 用户性能测试报告
|
||
│ └── performance_test_virtual_50_users_20250313_101432.md # 虚拟线程模型的 50 用户性能测试报告
|
||
│
|
||
├── postman/ # Postman API 测试集合
|
||
│ ├── AINovalWriter_Test_API.json # AINovalWriter 项目的 Postman 测试 API 集合
|
||
│ ├── AINoval_API_Collection.json # AINoval 项目的 Postman API 集合
|
||
│ └── README.md # Postman 集合的说明文档
|
||
│
|
||
├── AINovalServer/ # 后端 Spring Boot 项目目录
|
||
│ ├── AINoval_API_Collection.json # (重复) AINoval API Postman 集合
|
||
│ ├── AINoval_API_Tests.postman_collection.json # AINoval API 测试 Postman 集合
|
||
│ ├── AINoval_Performance_Tests.postman_collection.json # AINoval 性能测试 Postman 集合
|
||
│ ├── hs_err_pid53088.log # Java 虚拟机错误日志
|
||
│ ├── hs_err_pid73408.log # Java 虚拟机错误日志
|
||
│ ├── PERFORMANCE_TESTING.md # 性能测试相关说明文档
|
||
│ ├── performance_test_script.js # (可能用于 k6 等工具) 性能测试脚本
|
||
│ ├── pom.xml # Maven 项目对象模型文件,定义项目依赖和构建配置
|
||
│ ├── README.md # AINovalServer 项目的说明文档
|
||
│ ├── Sprint1开发总结.md # Sprint 1 开发总结
|
||
│ ├── start-performance-test.sh # 启动性能测试的 Shell 脚本
|
||
│ │
|
||
│ ├── 设计文档/ # 后端特定模块的设计文档
|
||
│ │ ├── 后台任务系统后端任务分解.md # 后台任务系统后端的任务分解文档
|
||
│ │ ├── 小说导入功能 - 高性能实施方案.md # 小说导入功能的高性能方案设计
|
||
│ │ └── 小说导入功能设计方案 (更新版).md # 小说导入功能的设计方案 (更新版)
|
||
│ │
|
||
│ ├── target/ # Maven 构建输出目录
|
||
│ │ ├── test-classes/ # 编译后的测试类目录
|
||
│ │ │ └── performance-test-report-template.md # 性能测试报告模板 (测试资源)
|
||
│ │ ├── classes/ # 编译后的主类目录
|
||
│ │ │ ├── application-dev.yml # 开发环境配置文件
|
||
│ │ │ ├── application-performance-test.yml # 性能测试环境配置文件
|
||
│ │ │ ├── application-test.yml # 测试环境配置文件
|
||
│ │ │ ├── application.yml # 主应用程序配置文件
|
||
│ │ │ ├── static/ # 静态资源目录
|
||
│ │ │ │ └── gemini-test.html # Gemini 测试用的 HTML 文件
|
||
│ │ │ └── prompts/ # AI 提示词模板目录
|
||
│ │ │ └── next_outline_prompt.txt # 剧情推演的提示词模板
|
||
│ │
|
||
│ ├── src/ # 源代码目录
|
||
│ │ ├── test/ # 测试代码目录
|
||
│ │ │ ├── resources/ # 测试资源目录
|
||
│ │ │ │ └── performance-test-report-template.md # (重复) 性能测试报告模板
|
||
│ │ │ └── java/com/ainovel/server/ # 测试 Java 代码根目录
|
||
│ │ │ ├── service/ # 服务层测试
|
||
│ │ │ │ ├── NextOutlineServiceTest.java # NextOutlineService 的测试类
|
||
│ │ │ │ └── SceneServiceVersionTest.java # SceneService 版本功能的测试类
|
||
│ │ │ └── performance/ # 性能测试相关代码
|
||
│ │ │ ├── PerformanceTestRunner.java # 性能测试运行器
|
||
│ │ │ ├── VirtualThreadPerformanceTest.java # 虚拟线程性能测试类
|
||
│ │ │ ├── util/ # 性能测试工具类
|
||
│ │ │ │ └── PerformanceTestUtil.java # 性能测试工具类
|
||
│ │ │ └── simulation/ # 性能测试模拟场景
|
||
│ │ │ ├── AIServiceSimulation.java # AI 服务调用的模拟
|
||
│ │ │ ├── NovelServiceSimulation.java # 小说服务的模拟
|
||
│ │ │ └── VirtualThreadVsTraditionalSimulation.java # 虚拟线程与传统线程对比的模拟
|
||
│ │ │
|
||
│ │ └── main/ # 主代码目录
|
||
│ │ ├── resources/ # 主资源目录
|
||
│ │ │ ├── application-dev.yml # (重复) 开发环境配置文件
|
||
│ │ │ ├── application-performance-test.yml # (重复) 性能测试环境配置文件
|
||
│ │ │ ├── application-test.yml # (重复) 测试环境配置文件
|
||
│ │ │ ├── application.yml # (重复) 主应用程序配置文件
|
||
│ │ │ ├── static/ # (重复) 静态资源目录
|
||
│ │ │ │ └── gemini-test.html # (重复) Gemini 测试用的 HTML 文件
|
||
│ │ │ └── prompts/ # (重复) AI 提示词模板目录
|
||
│ │ │ └── next_outline_prompt.txt # (重复) 剧情推演的提示词模板
|
||
│ │ │
|
||
│ │ └── java/com/ainovel/server/ # 主 Java 代码根目录
|
||
│ │ ├── AiNovelServerApplication.java # Spring Boot 应用主入口类
|
||
│ │ │
|
||
│ │ ├── web/ # Web 层,处理 HTTP 请求
|
||
│ │ │ ├── GeminiTestController.java # Gemini 测试相关的控制器 (可能已废弃或测试用)
|
||
│ │ │ ├── dto/ # Data Transfer Objects (数据传输对象)
|
||
│ │ │ │ ├── AIModelConfigDto.java # AI 模型配置 DTO
|
||
│ │ │ │ ├── ApiKeyValidationRequest.java # API Key 验证请求 DTO
|
||
│ │ │ │ ├── ApiKeyValidationResponse.java # API Key 验证响应 DTO
|
||
│ │ │ │ ├── AuthorIdDto.java # 作者 ID DTO
|
||
│ │ │ │ ├── AuthRequest.java # 认证请求 DTO
|
||
│ │ │ │ ├── AuthResponse.java # 认证响应 DTO
|
||
│ │ │ │ ├── ChangePasswordRequest.java # 修改密码请求 DTO
|
||
│ │ │ │ ├── ChapterIdDto.java # 章节 ID DTO
|
||
│ │ │ │ ├── ChapterSceneDto.java # 章节场景 DTO
|
||
│ │ │ │ ├── ChapterScenesDto.java # 章节场景列表 DTO
|
||
│ │ │ │ ├── ConfigIndexDto.java # 配置索引 DTO
|
||
│ │ │ │ ├── CreatePromptTemplateRequest.java # 创建提示词模板请求 DTO
|
||
│ │ │ │ ├── CreateUserAIModelConfigRequest.java # 创建用户 AI 模型配置请求 DTO
|
||
│ │ │ │ ├── ErrorResponse.java # 错误响应 DTO
|
||
│ │ │ │ ├── GenerateNextOutlinesDTO.java # 生成后续大纲请求 DTO
|
||
│ │ │ │ ├── GenerateSceneFromSummaryRequest.java # 从摘要生成场景请求 DTO
|
||
│ │ │ │ ├── GenerateSceneFromSummaryResponse.java # 从摘要生成场景响应 DTO
|
||
│ │ │ │ ├── IdDto.java # 通用 ID DTO
|
||
│ │ │ │ ├── ImportStatus.java # 导入状态 DTO
|
||
│ │ │ │ ├── JobIdResponse.java # 任务 ID 响应 DTO
|
||
│ │ │ │ ├── ListUserConfigsRequest.java # 列出用户配置请求 DTO
|
||
│ │ │ │ ├── LoadMoreScenesRequestDto.java # 加载更多场景请求 DTO
|
||
│ │ │ │ ├── NextOutlineDTO.java # 后续大纲 DTO
|
||
│ │ │ │ ├── NovelChapterDto.java # 小说章节 DTO
|
||
│ │ │ │ ├── NovelChapterSceneDto.java # 小说章节场景 DTO
|
||
│ │ │ │ ├── NovelIdDto.java # 小说 ID DTO
|
||
│ │ │ │ ├── NovelIdTypeDto.java # 小说 ID 和类型 DTO
|
||
│ │ │ │ ├── NovelUpdateDto.java # 小说更新 DTO
|
||
│ │ │ │ ├── NovelWithScenesDto.java # 包含场景的小说 DTO
|
||
│ │ │ │ ├── NovelWithScenesUpdateDto.java # 包含场景的小说更新 DTO
|
||
│ │ │ │ ├── NovelWithSummariesDto.java # 包含摘要的小说 DTO
|
||
│ │ │ │ ├── OptimizationResultDto.java # 优化结果 DTO
|
||
│ │ │ │ ├── OptimizePromptRequest.java # 优化提示词请求 DTO
|
||
│ │ │ │ ├── OutlineGenerationChunk.java # 大纲生成块 DTO (用于流式传输)
|
||
│ │ │ │ ├── PaginatedScenesRequestDto.java # 分页场景请求 DTO
|
||
│ │ │ │ ├── PromptTemplateDto.java # 提示词模板 DTO
|
||
│ │ │ │ ├── ProviderModelsRequest.java # Provider 模型列表请求 DTO
|
||
│ │ │ │ ├── ProxyConfigRequest.java # 代理配置请求 DTO
|
||
│ │ │ │ ├── RagQueryDto.java # RAG 查询 DTO
|
||
│ │ │ │ ├── RagQueryResultDto.java # RAG 查询结果 DTO
|
||
│ │ │ │ ├── RefreshTokenRequest.java # 刷新令牌请求 DTO
|
||
│ │ │ │ ├── RevisionRequest.java # 版本请求 DTO
|
||
│ │ │ │ ├── SceneContentUpdateDto.java # 场景内容更新 DTO
|
||
│ │ │ │ ├── SceneDeleteDto.java # 场景删除 DTO
|
||
│ │ │ │ ├── SceneRestoreDto.java # 场景恢复 DTO
|
||
│ │ │ │ ├── SceneSearchDto.java # 场景搜索 DTO
|
||
│ │ │ │ ├── SceneSummaryDto.java # 场景摘要 DTO
|
||
│ │ │ │ ├── SceneUpdateDto.java # 场景更新 DTO
|
||
│ │ │ │ ├── SceneVersionCompareDto.java # 场景版本比较 DTO
|
||
│ │ │ │ ├── SceneVersionDiff.java # 场景版本差异 DTO
|
||
│ │ │ │ ├── SessionCreateDto.java # 会话创建 DTO
|
||
│ │ │ │ ├── SessionMessageDto.java # 会话消息 DTO
|
||
│ │ │ │ ├── SessionUpdateDto.java # 会话更新 DTO
|
||
│ │ │ │ ├── SuggestionRequest.java # 建议请求 DTO
|
||
│ │ │ │ ├── SummarizeSceneRequest.java # 摘要场景请求 DTO
|
||
│ │ │ │ ├── SummarizeSceneResponse.java # 摘要场景响应 DTO
|
||
│ │ │ │ ├── UpdatePromptRequest.java # 更新提示词请求 DTO
|
||
│ │ │ │ ├── UpdatePromptTemplateRequest.java # 更新提示词模板请求 DTO
|
||
│ │ │ │ ├── UpdateUserAIModelConfigRequest.java # 更新用户 AI 模型配置请求 DTO
|
||
│ │ │ │ ├── UserAIModelConfigResponse.java # 用户 AI 模型配置响应 DTO
|
||
│ │ │ │ ├── UserIdConfigIndexDto.java # 用户 ID 和配置索引 DTO
|
||
│ │ │ │ ├── UserIdDto.java # 用户 ID DTO
|
||
│ │ │ │ ├── UserPromptTemplateDto.java # 用户提示词模板 DTO
|
||
│ │ │ │ ├── UserRegistrationRequest.java # 用户注册请求 DTO
|
||
│ │ │ │ └── UserUpdateDto.java # 用户更新 DTO
|
||
│ │ │ │
|
||
│ │ │ ├── controller/ # REST API 控制器
|
||
│ │ │ │ ├── AIChatController.java # AI 聊天功能控制器
|
||
│ │ │ │ ├── AIGenerationController.java # AI 生成功能控制器
|
||
│ │ │ │ ├── AuthController.java # 用户认证控制器
|
||
│ │ │ │ ├── ModelInfoController.java # AI 模型信息控制器
|
||
│ │ │ │ ├── MongoTestController.java # MongoDB 测试控制器 (可能已废弃或测试用)
|
||
│ │ │ │ ├── NextOutlineController.java # 剧情推演控制器
|
||
│ │ │ │ ├── NovelAIController.java # 小说相关的 AI 功能控制器
|
||
│ │ │ │ ├── NovelController.java # 小说管理控制器
|
||
│ │ │ │ ├── PromptTemplateController.java # 提示词模板控制器
|
||
│ │ │ │ ├── RagController.java # RAG 功能控制器
|
||
│ │ │ │ ├── SceneController.java # 场景管理控制器
|
||
│ │ │ │ ├── SecurityTestController.java # 安全测试控制器 (可能已废弃或测试用)
|
||
│ │ │ │ ├── UserAIModelConfigController.java # 用户 AI 模型配置控制器
|
||
│ │ │ │ ├── UserController.java # 用户管理控制器
|
||
│ │ │ │ └── UserPromptController.java # 用户提示词控制器
|
||
│ │ │ │
|
||
│ │ │ └── base/ # Web 层基础类
|
||
│ │ │ └── ReactiveBaseController.java # 响应式控制器基类 (可能用于 WebSocket 或 SSE)
|
||
│ │ │
|
||
│ │ ├── service/ # 服务层,包含业务逻辑
|
||
│ │ │ ├── AIChatService.java # AI 聊天服务接口
|
||
│ │ │ ├── AIProviderRegistryService.java # AI Provider 注册服务接口
|
||
│ │ │ ├── AIService.java # 通用 AI 服务接口
|
||
│ │ │ ├── EmbeddingService.java # 文本嵌入服务接口
|
||
│ │ │ ├── ImportService.java # 文件导入服务接口
|
||
│ │ │ ├── IndexingService.java # 索引服务接口 (用于 RAG)
|
||
│ │ │ ├── JwtService.java # JWT (JSON Web Token) 服务接口
|
||
│ │ │ ├── KnowledgeService.java # 知识库服务接口 (可能与 RAG 相关)
|
||
│ │ │ ├── MetadataService.java # 元数据服务接口
|
||
│ │ │ ├── NextOutlineService.java # 剧情推演服务接口
|
||
│ │ │ ├── NovelAIService.java # 小说 AI 相关服务接口
|
||
│ │ │ ├── NovelParser.java # 小说文件解析器接口
|
||
│ │ │ ├── NovelRagAssistant.java # 小说 RAG 助手接口
|
||
│ │ │ ├── NovelService.java # 小说管理服务接口
|
||
│ │ │ ├── PromptService.java # 提示词服务接口
|
||
│ │ │ ├── PromptTemplateService.java # 提示词模板服务接口
|
||
│ │ │ ├── SceneService.java # 场景管理服务接口
|
||
│ │ │ ├── StorageService.java # 文件存储服务接口
|
||
│ │ │ ├── UserAIModelConfigService.java # 用户 AI 模型配置服务接口
|
||
│ │ │ ├── UserPromptService.java # 用户提示词服务接口
|
||
│ │ │ ├── UserService.java # 用户管理服务接口
|
||
│ │ │ │
|
||
│ │ │ ├── vectorstore/ # 向量数据库相关接口和类
|
||
│ │ │ │ ├── ChromaVectorStore.java # Chroma 向量数据库实现 (可能)
|
||
│ │ │ │ ├── SearchResult.java # 向量搜索结果类
|
||
│ │ │ │ └── VectorStore.java # 向量数据库接口
|
||
│ │ │ │
|
||
│ │ │ ├── rag/ # RAG (检索增强生成) 相关类
|
||
│ │ │ │ ├── ChromaEmbeddingStoreProvider.java # Chroma 嵌入存储提供者 (LangChain4j)
|
||
│ │ │ │ ├── LangChain4jEmbeddingModel.java # LangChain4j 嵌入模型封装
|
||
│ │ │ │ ├── NovelRagAssistant.java # (重复) 小说 RAG 助手接口
|
||
│ │ │ │ ├── RagService.java # RAG 服务接口
|
||
│ │ │ │ └── RagServiceImpl.java # RAG 服务实现
|
||
│ │ │ │
|
||
│ │ │ ├── provider/ # 外部服务提供者 (如存储)
|
||
│ │ │ │ ├── AliOSSStorageProvider.java # 阿里云 OSS 存储提供者实现
|
||
│ │ │ │ └── StorageProvider.java # 存储提供者接口
|
||
│ │ │ │
|
||
│ │ │ ├── impl/ # 服务层接口实现
|
||
│ │ │ │ ├── AIChatServiceImpl.java # AI 聊天服务实现
|
||
│ │ │ │ ├── AIServiceImpl.java # 通用 AI 服务实现
|
||
│ │ │ │ ├── EmbeddingServiceImpl.java # 文本嵌入服务实现
|
||
│ │ │ │ ├── ImportServiceImpl.java # 文件导入服务实现
|
||
│ │ │ │ ├── IndexingServiceImpl.java # 索引服务实现
|
||
│ │ │ │ ├── JwtServiceImpl.java # JWT 服务实现
|
||
│ │ │ │ ├── KnowledgeServiceImpl.java # 知识库服务实现
|
||
│ │ │ │ ├── MetadataServiceImpl.java # 元数据服务实现
|
||
│ │ │ │ ├── NextOutlineServiceImpl.java # 剧情推演服务实现
|
||
│ │ │ │ ├── NovelAIServiceImpl.java # 小说 AI 相关服务实现
|
||
│ │ │ │ ├── NovelRagAssistantImpl.java # 小说 RAG 助手实现
|
||
│ │ │ │ ├── NovelServiceImpl.java # 小说管理服务实现
|
||
│ │ │ │ ├── PromptServiceImpl.java # 提示词服务实现
|
||
│ │ │ │ ├── PromptTemplateServiceImpl.java # 提示词模板服务实现
|
||
│ │ │ │ ├── SceneServiceImpl.java # 场景管理服务实现
|
||
│ │ │ │ ├── StorageServiceImpl.java # 文件存储服务实现
|
||
│ │ │ │ ├── TxtNovelParser.java # TXT 格式小说解析器实现
|
||
│ │ │ │ ├── UserAIModelConfigServiceImpl.java # 用户 AI 模型配置服务实现
|
||
│ │ │ │ ├── UserPromptServiceImpl.java # 用户提示词服务实现
|
||
│ │ │ │ └── UserServiceImpl.java # 用户管理服务实现
|
||
│ │ │ │
|
||
│ │ │ └── ai/ # AI 模型提供者相关代码
|
||
│ │ │ ├── AbstractAIModelProvider.java # AI 模型提供者抽象基类
|
||
│ │ │ ├── AIModelProvider.java # AI 模型提供者接口
|
||
│ │ │ ├── AnthropicModelProvider.java # Anthropic 模型提供者 (可能直接调用 API)
|
||
│ │ │ ├── GeminiModelProvider.java # Gemini 模型提供者 (可能直接调用 API)
|
||
│ │ │ ├── GrokModelProvider.java # Grok 模型提供者 (可能直接调用 API)
|
||
│ │ │ ├── OpenAIModelProvider.java # OpenAI 模型提供者 (可能直接调用 API)
|
||
│ │ │ ├── SiliconFlowModelProvider.java # SiliconFlow 模型提供者 (可能直接调用 API)
|
||
│ │ │ │
|
||
│ │ │ ├── registry/ # AI Provider 注册表
|
||
│ │ │ │ └── AIProviderRegistry.java # AI Provider 注册表实现
|
||
│ │ │ │
|
||
│ │ │ ├── langchain4j/ # LangChain4j 集成实现
|
||
│ │ │ │ ├── AnthropicLangChain4jModelProvider.java # Anthropic LangChain4j 提供者
|
||
│ │ │ │ ├── GeminiLangChain4jModelProvider.java # Gemini LangChain4j 提供者
|
||
│ │ │ │ ├── LangChain4jModelProvider.java # LangChain4j 提供者接口/基类
|
||
│ │ │ │ ├── OpenAILangChain4jModelProvider.java # OpenAI LangChain4j 提供者
|
||
│ │ │ │ ├── OpenRouterLangChain4jModelProvider.java # OpenRouter LangChain4j 提供者
|
||
│ │ │ │ ├── SiliconFlowLangChain4jModelProvider.java # SiliconFlow LangChain4j 提供者
|
||
│ │ │ │ └── TogetherAILangChain4jModelProvider.java # TogetherAI LangChain4j 提供者
|
||
│ │ │ │
|
||
│ │ │ ├── factory/ # 工厂模式 (用于创建 Provider)
|
||
│ │ │ │ └── AIModelProviderFactory.java # AI 模型提供者工厂
|
||
│ │ │ │
|
||
│ │ │ └── capability/ # AI Provider 能力检测
|
||
│ │ │ ├── AnthropicCapabilityDetector.java # Anthropic 能力检测器
|
||
│ │ │ ├── GeminiCapabilityDetector.java # Gemini 能力检测器
|
||
│ │ │ ├── GrokCapabilityDetector.java # Grok 能力检测器
|
||
│ │ │ ├── OpenAICapabilityDetector.java # OpenAI 能力检测器
|
||
│ │ │ ├── OpenRouterCapabilityDetector.java # OpenRouter 能力检测器
|
||
│ │ │ ├── ProviderCapabilityDetector.java # Provider 能力检测器接口
|
||
│ │ │ ├── ProviderCapabilityService.java # Provider 能力服务
|
||
│ │ │ ├── SiliconFlowCapabilityDetector.java # SiliconFlow 能力检测器
|
||
│ │ │ └── TogetherAICapabilityDetector.java # TogetherAI 能力检测器
|
||
│ │ │
|
||
│ │ ├── security/ # 安全配置和组件
|
||
│ │ │ ├── CurrentUser.java # 获取当前用户注解
|
||
│ │ │ ├── CurrentUserMethodArgumentResolver.java # 解析 @CurrentUser 注解的参数解析器
|
||
│ │ │ ├── JwtAuthenticationManager.java # JWT 认证管理器
|
||
│ │ │ └── JwtServerAuthenticationConverter.java # JWT 服务器认证转换器 (用于 Spring Security WebFlux)
|
||
│ │ │
|
||
│ │ ├── repository/ # 数据仓库层 (数据库交互)
|
||
│ │ │ ├── AIChatMessageRepository.java # AI 聊天消息仓库接口
|
||
│ │ │ ├── AIChatSessionRepository.java # AI 聊天会话仓库接口
|
||
│ │ │ ├── KnowledgeChunkRepository.java # 知识块仓库接口
|
||
│ │ │ ├── NextOutlineRepository.java # 后续大纲仓库接口
|
||
│ │ │ ├── NovelRepository.java # 小说仓库接口
|
||
│ │ │ ├── PromptTemplateRepository.java # 提示词模板仓库接口
|
||
│ │ │ ├── SceneRepository.java # 场景仓库接口
|
||
│ │ │ ├── UserAIModelConfigRepository.java # 用户 AI 模型配置仓库接口
|
||
│ │ │ ├── UserPromptTemplateRepository.java # 用户提示词模板仓库接口
|
||
│ │ │ ├── UserRepository.java # 用户仓库接口
|
||
│ │ │ │
|
||
│ │ │ ├── impl/ # 数据仓库层实现 (部分自定义实现)
|
||
│ │ │ │ ├── NextOutlineRepositoryImpl.java # NextOutlineRepository 自定义实现
|
||
│ │ │ │ └── UserRepositoryImpl.java # UserRepository 自定义实现
|
||
│ │ │ │
|
||
│ │ │ └── custom/ # 自定义仓库接口 (用于复杂查询)
|
||
│ │ │ └── CustomUserRepository.java # 自定义用户仓库接口
|
||
│ │ │
|
||
│ │ ├── exception/ # 自定义异常类
|
||
│ │ │ └── VectorStoreException.java # 向量存储异常
|
||
│ │ │
|
||
│ │ ├── domain/ # 领域模型和 DTO
|
||
│ │ │ ├── model/ # 核心领域模型 (对应数据库实体)
|
||
│ │ │ │ ├── AIChatMessage.java # AI 聊天消息实体
|
||
│ │ │ │ ├── AIChatSession.java # AI 聊天会话实体
|
||
│ │ │ │ ├── AIFeatureType.java # AI 功能类型枚举
|
||
│ │ │ │ ├── AIInteraction.java # AI 交互记录实体 (可能)
|
||
│ │ │ │ ├── AIRequest.java # AI 请求实体 (可能)
|
||
│ │ │ │ ├── AIResponse.java # AI 响应实体 (可能)
|
||
│ │ │ │ ├── BaseAIRequest.java # AI 请求基类 (可能)
|
||
│ │ │ │ ├── Character.java # 角色实体
|
||
│ │ │ │ ├── GenerateNextOutlinesDTO.java # (重复) 生成后续大纲 DTO (位置可能不当)
|
||
│ │ │ │ ├── KnowledgeChunk.java # 知识块实体
|
||
│ │ │ │ ├── ModelInfo.java # 模型信息实体
|
||
│ │ │ │ ├── ModelListingCapability.java # 模型列表能力枚举
|
||
│ │ │ │ ├── NextOutline.java # 后续大纲实体
|
||
│ │ │ │ ├── Novel.java # 小说实体
|
||
│ │ │ │ ├── OptimizationResult.java # 优化结果实体
|
||
│ │ │ │ ├── OptimizationSection.java # 优化部分实体
|
||
│ │ │ │ ├── OptimizationStatistics.java # 优化统计实体
|
||
│ │ │ │ ├── OptimizationStyle.java # 优化风格枚举
|
||
│ │ │ │ ├── PromptTemplate.java # 提示词模板实体
|
||
│ │ │ │ ├── Scene.java # 场景实体
|
||
│ │ │ │ ├── SceneVersionDiff.java # (重复) 场景版本差异 DTO (位置可能不当)
|
||
│ │ │ │ ├── Setting.java # 设定实体
|
||
│ │ │ │ ├── User.java # 用户实体
|
||
│ │ │ │ ├── UserAIModelConfig.java # 用户 AI 模型配置实体
|
||
│ │ │ │ └── UserPromptTemplate.java # 用户提示词模板实体
|
||
│ │ │ │
|
||
│ │ │ └── dto/ # 领域层 DTO (特定于领域逻辑)
|
||
│ │ │ ├── ApiKeyTestRequest.java # API Key 测试请求 DTO
|
||
│ │ │ ├── ParsedNovelData.java # 解析后的小说数据 DTO
|
||
│ │ │ └── ParsedSceneData.java # 解析后的场景数据 DTO
|
||
│ │ │
|
||
│ │ ├── controller/ # (重复) 控制器目录 (结构可能需要调整)
|
||
│ │ │ └── ProviderCapabilityController.java # Provider 能力控制器
|
||
│ │ │
|
||
│ │ ├── config/ # 应用配置类
|
||
│ │ │ ├── AIServiceConfig.java # AI 服务相关配置
|
||
│ │ │ ├── CacheConfig.java # 缓存配置 (如 Caffeine)
|
||
│ │ │ ├── ChatLanguageModelConfig.java # 聊天语言模型配置 (可能与 LangChain4j 相关)
|
||
│ │ │ ├── MongoConfig.java # MongoDB 配置
|
||
│ │ │ ├── MongoQueryCounterAspect.java # MongoDB 查询计数切面 (用于监控或调试)
|
||
│ │ │ ├── MonitoringConfig.java # 监控配置 (如 Micrometer, Actuator)
|
||
│ │ │ ├── PasswordConfig.java # 密码加密配置 (如 BCryptPasswordEncoder)
|
||
│ │ │ ├── ProviderServiceConfig.java # Provider 服务配置
|
||
│ │ │ ├── ProxyConfig.java # 网络代理配置
|
||
│ │ │ ├── RagConfig.java # RAG 配置
|
||
│ │ │ ├── SecurityConfig.java # Spring Security 配置
|
||
│ │ │ ├── StorageConfig.java # 文件存储配置
|
||
│ │ │ ├── StorageStartupTester.java # 存储服务启动测试器
|
||
│ │ │ ├── TestSecurityConfig.java # 测试环境安全配置
|
||
│ │ │ ├── VectorStoreConfig.java # 向量存储配置
|
||
│ │ │ ├── VirtualThreadConfig.java # 虚拟线程执行器配置
|
||
│ │ │ └── WebConfig.java # Web 相关配置 (如 CORS, ArgumentResolvers)
|
||
│ │ │
|
||
│ │ └── common/ # 通用工具和类
|
||
│ │ ├── util/ # 通用工具类
|
||
│ │ │ ├── MockDataGenerator.java # 模拟数据生成器
|
||
│ │ │ ├── PerformanceTestUtil.java # (重复) 性能测试工具类
|
||
│ │ │ └── PromptUtil.java # 提示词处理工具类
|
||
│ │ │
|
||
│ │ ├── security/ # 通用安全类
|
||
│ │ │ └── CurrentUser.java # (重复) 获取当前用户注解
|
||
│ │ │
|
||
│ │ ├── model/ # 通用模型类
|
||
│ │ │ └── ErrorResponse.java # (重复) 通用错误响应模型
|
||
│ │ │
|
||
│ │ └── exception/ # 通用异常类
|
||
│ │ ├── ResourceNotFoundException.java # 资源未找到异常
|
||
│ │ └── ValidationException.java # 验证异常
|
||
│
|
||
└── AINoval/ # 前端 Flutter 项目目录
|
||
├── analysis_options.yaml # Dart 代码分析器选项
|
||
├── devtools_options.yaml # Dart 开发者工具选项
|
||
├── firebase.json # Firebase CLI 配置文件
|
||
├── pubspec.yaml # Flutter 项目配置文件 (依赖项, 资源等)
|
||
├── README.md # AINoval 前端项目说明文档
|
||
│
|
||
├── 设计文档/ # 前端特定模块的设计文档
|
||
│ └── 前端后台任务系统任务分解.md # 前端后台任务系统的任务分解
|
||
│
|
||
├── web/ # Web 平台特定文件
|
||
│ ├── index.html # Web 应用主 HTML 文件
|
||
│ └── manifest.json # Web 应用清单文件
|
||
│
|
||
├── scripts/ # Dart 脚本目录
|
||
│ └── replace_print_with_logger.dart # 用于替换 print 为 logger 的脚本
|
||
│
|
||
├── lib/ # Flutter 应用主要代码目录
|
||
│ ├── firebase_options.dart # Firebase 初始化选项 (自动生成)
|
||
│ ├── main.dart # Flutter 应用入口文件
|
||
│ │
|
||
│ ├── widgets/ # 可重用的小部件目录
|
||
│ │ └── common/ # 通用小部件
|
||
│ │ ├── empty_state_placeholder.dart # 空状态占位符小部件
|
||
│ │ └── loading_indicator.dart # 加载指示器小部件
|
||
│ │
|
||
│ ├── utils/ # 工具类目录
|
||
│ │ ├── app_theme.dart # 应用主题工具类
|
||
│ │ ├── date_formatter.dart # 日期格式化工具类
|
||
│ │ ├── date_time_parser.dart # 日期时间解析工具类
|
||
│ │ ├── debouncer.dart # 防抖动工具类
|
||
│ │ ├── logger.dart # 日志记录工具类
|
||
│ │ ├── logger_guide.md # 日志记录器使用指南
|
||
│ │ ├── logger_usage_examples.dart # 日志记录器使用示例
|
||
│ │ ├── mock_data.dart # 模拟数据
|
||
│ │ ├── mock_data_generator.dart # 模拟数据生成器
|
||
│ │ └── word_count_analyzer.dart # 字数统计分析器
|
||
│ │
|
||
│ ├── ui/ # UI 相关目录 (可能包含通用 UI 元素)
|
||
│ │ ├── screens/ # (旧结构?) 屏幕目录
|
||
│ │ │ └── editor_screen.dart # (旧结构?) 编辑器屏幕
|
||
│ │ ├── dialogs/ # 对话框目录
|
||
│ │ │ └── scene_history_dialog.dart # 场景历史对话框
|
||
│ │ └── common/ # 通用 UI 组件
|
||
│ │ ├── loading_indicator.dart # (重复) 加载指示器
|
||
│ │ └── no_data_placeholder.dart # 无数据占位符
|
||
│ │
|
||
│ ├── theme/ # 主题和样式目录
|
||
│ │ └── text_styles.dart # 文本样式定义
|
||
│ │
|
||
│ ├── services/ # 应用服务目录
|
||
│ │ ├── auth_service.dart # 认证服务
|
||
│ │ ├── context_provider.dart # 上下文提供者 (可能用于全局访问)
|
||
│ │ ├── local_storage_service.dart # 本地存储服务
|
||
│ │ ├── sync_service.dart # 同步服务 (可能用于离线/在线同步)
|
||
│ │ ├── websocket_service.dart # WebSocket 服务
|
||
│ │ │
|
||
│ │ └── api_service/ # API 服务目录 (与后端交互)
|
||
│ │ ├── README.md # API 服务说明
|
||
│ │ ├── repositories/ # API 仓库接口
|
||
│ │ │ ├── chat_repository.dart # 聊天 API 仓库接口
|
||
│ │ │ ├── editor_repository.dart # 编辑器 API 仓库接口
|
||
│ │ │ ├── next_outline_repository.dart # 剧情推演 API 仓库接口
|
||
│ │ │ ├── novel_repository.dart # 小说 API 仓库接口
|
||
│ │ │ ├── prompt_repository.dart # 提示词 API 仓库接口
|
||
│ │ │ ├── storage_repository.dart # 存储 API 仓库接口
|
||
│ │ │ └── user_ai_model_config_repository.dart # 用户 AI 配置 API 仓库接口
|
||
│ │ │
|
||
│ │ ├── repositories/impl/ # API 仓库实现
|
||
│ │ │ ├── aliyun_oss_storage_repository.dart # 阿里云 OSS 存储仓库实现
|
||
│ │ │ ├── chat_repository_impl.dart # 聊天 API 仓库实现
|
||
│ │ │ ├── editor_repository_impl.dart # 编辑器 API 仓库实现
|
||
│ │ │ ├── next_outline_repository_impl.dart # 剧情推演 API 仓库实现
|
||
│ │ │ ├── novel_repository_impl.dart # 小说 API 仓库实现
|
||
│ │ │ ├── prompt_repository_impl.dart # 提示词 API 仓库实现
|
||
│ │ │ ├── storage_repository_impl.dart # 存储 API 仓库实现
|
||
│ │ │ └── user_ai_model_config_repository_impl.dart # 用户 AI 配置 API 仓库实现
|
||
│ │ │
|
||
│ │ └── base/ # API 服务基础类
|
||
│ │ ├── api_client.dart # API 客户端 (如 Dio 封装)
|
||
│ │ ├── api_exception.dart # API 异常类
|
||
│ │ └── sse_client.dart # Server-Sent Events (SSE) 客户端
|
||
│ │
|
||
│ ├── screens/ # 应用屏幕 (主要页面) 目录
|
||
│ │ ├── settings/ # 设置屏幕
|
||
│ │ │ ├── settings_panel.dart # 设置面板主屏幕
|
||
│ │ │ └── widgets/ # 设置屏幕相关小部件
|
||
│ │ │ ├── ai_assist_toolbar.dart # AI 辅助工具栏
|
||
│ │ │ ├── ai_config_form.dart # AI 配置表单
|
||
│ │ │ ├── custom_model_dialog.dart # 自定义模型对话框
|
||
│ │ │ ├── model_group_list.dart # 模型分组列表
|
||
│ │ │ ├── model_service_card.dart # 模型服务卡片
|
||
│ │ │ ├── model_service_header.dart # 模型服务列表头部
|
||
│ │ │ ├── model_service_list_page.dart # 模型服务列表页面
|
||
│ │ │ ├── optimization_result_view.dart # 优化结果视图
|
||
│ │ │ ├── processing_indicator.dart # 处理中指示器
|
||
│ │ │ ├── prompt_editor_panel.dart # 提示词编辑面板
|
||
│ │ │ ├── prompt_management_panel.dart # 提示词管理面板
|
||
│ │ │ ├── prompt_template_library.dart # 提示词模板库
|
||
│ │ │ ├── provider_list.dart # AI Provider 列表
|
||
│ │ │ ├── searchable_model_dropdown.dart # 可搜索的模型下拉菜单
|
||
│ │ │ └── template_permission_indicator.dart # 模板权限指示器
|
||
│ │ │
|
||
│ │ ├── novel_list/ # 小说列表屏幕
|
||
│ │ │ ├── novel_list_screen.dart # 小说列表主屏幕
|
||
│ │ │ └── widgets/ # 小说列表屏幕相关小部件
|
||
│ │ │ ├── continue_writing_section.dart # 继续写作区域
|
||
│ │ │ ├── empty_novel_view.dart # 空小说列表视图
|
||
│ │ │ ├── header_section.dart # 头部区域
|
||
│ │ │ ├── import_novel_dialog.dart # 导入小说对话框
|
||
│ │ │ ├── loading_view.dart # 加载视图
|
||
│ │ │ ├── novel_card.dart # 小说卡片
|
||
│ │ │ ├── novel_list_error_view.dart # 小说列表错误视图
|
||
│ │ │ └── search_filter_bar.dart # 搜索和过滤栏
|
||
│ │ │
|
||
│ │ ├── next_outline/ # 剧情推演屏幕
|
||
│ │ │ ├── next_outline_screen.dart # 剧情推演主屏幕
|
||
│ │ │ ├── next_outline_view.dart # 剧情推演视图 (可能包含主要 UI)
|
||
│ │ │ └── widgets/ # 剧情推演屏幕相关小部件
|
||
│ │ │ ├── outline_generation_config_card.dart # 大纲生成配置卡片
|
||
│ │ │ ├── results_grid.dart # 结果网格布局
|
||
│ │ │ └── result_card.dart # 结果卡片
|
||
│ │ │
|
||
│ │ ├── editor/ # 编辑器屏幕
|
||
│ │ │ ├── editor_screen.dart # 编辑器主屏幕
|
||
│ │ │ ├── widgets/ # 编辑器屏幕通用小部件
|
||
│ │ │ │ ├── ai_chat_button.dart # AI 聊天按钮
|
||
│ │ │ │ ├── ai_generation_panel.dart # AI 生成面板
|
||
│ │ │ │ ├── ai_scene_generation_side_panel.dart # AI 场景生成侧边面板
|
||
│ │ │ │ ├── ai_stream_generation_display.dart # AI 流式生成显示
|
||
│ │ │ │ ├── ai_summary_panel.dart # AI 摘要面板
|
||
│ │ │ │ ├── ai_summary_side_panel.dart # AI 摘要侧边面板
|
||
│ │ │ │ ├── custom_dropdown.dart # 自定义下拉菜单
|
||
│ │ │ │ ├── dialogs.dart # 编辑器相关对话框
|
||
│ │ │ │ ├── dropdown_guide.md # 下拉菜单使用指南
|
||
│ │ │ │ ├── dropdown_manager.dart # 下拉菜单管理器
|
||
│ │ │ │ ├── editor_toolbar.dart # 编辑器工具栏
|
||
│ │ │ │ ├── enhanced_menu_item.dart # 增强型菜单项
|
||
│ │ │ │ ├── generate_scene_dialog.dart # 生成场景对话框
|
||
│ │ │ │ ├── menu_builder.dart # 菜单构建器
|
||
│ │ │ │ ├── menu_definitions.dart # 菜单定义
|
||
│ │ │ │ ├── novel_settings_view.dart # 小说设置视图
|
||
│ │ │ │ ├── selection_toolbar.dart # 文本选择工具栏
|
||
│ │ │ │ └── word_count_display.dart # 字数显示
|
||
│ │ │ │
|
||
│ │ │ ├── managers/ # 编辑器屏幕管理器
|
||
│ │ │ │ ├── editor_dialog_manager.dart # 编辑器对话框管理器
|
||
│ │ │ │ ├── editor_layout_manager.dart # 编辑器布局管理器
|
||
│ │ │ │ └── editor_state_manager.dart # 编辑器状态管理器
|
||
│ │ │ │
|
||
│ │ │ ├── controllers/ # 编辑器屏幕控制器 (可能与 BLoC 结合)
|
||
│ │ │ │ └── editor_screen_controller.dart # 编辑器屏幕控制器
|
||
│ │ │ │
|
||
│ │ │ └── components/ # 编辑器屏幕的主要 UI 组件
|
||
│ │ │ ├── act_section.dart # 幕/卷区域组件
|
||
│ │ │ ├── chapter_section.dart # 章区域组件
|
||
│ │ │ ├── draggable_divider.dart # 可拖动分隔线
|
||
│ │ │ ├── editor_app_bar.dart # 编辑器应用栏
|
||
│ │ │ ├── editor_layout.dart # 编辑器整体布局
|
||
│ │ │ ├── editor_main_area.dart # 编辑器主编辑区域
|
||
│ │ │ ├── editor_sidebar.dart # 编辑器侧边栏 (大纲/章节/场景列表)
|
||
│ │ │ ├── multi_ai_panel_view.dart # 多 AI 面板视图
|
||
│ │ │ ├── plan_view.dart # 小说计划 (Plan) 视图
|
||
│ │ │ └── scene_editor.dart # 场景编辑器组件
|
||
│ │ │
|
||
│ │ ├── chat/ # AI 聊天屏幕
|
||
│ │ │ ├── chat_screen.dart # AI 聊天主屏幕
|
||
│ │ │ └── widgets/ # AI 聊天屏幕相关小部件
|
||
│ │ │ ├── ai_chat_sidebar.dart # AI 聊天侧边栏
|
||
│ │ │ ├── chat_input.dart # 聊天输入框
|
||
│ │ │ ├── chat_message_bubble.dart # 聊天消息气泡
|
||
│ │ │ ├── chat_sidebar.dart # 聊天侧边栏 (可能包含会话列表)
|
||
│ │ │ ├── context_panel.dart # 上下文面板
|
||
│ │ │ ├── model_selector_dropdown.dart # 模型选择下拉菜单
|
||
│ │ │ └── typing_indicator.dart # 输入中指示器
|
||
│ │ │
|
||
│ │ ├── auth/ # 认证屏幕
|
||
│ │ │ └── login_screen.dart # 登录屏幕
|
||
│ │ │
|
||
│ │ └── ai_config/ # AI 配置管理屏幕
|
||
│ │ ├── ai_config_management_screen.dart # AI 配置管理主屏幕
|
||
│ │ └── widgets/ # AI 配置屏幕相关小部件
|
||
│ │ ├── add_edit_ai_config_dialog.dart # 添加/编辑 AI 配置对话框
|
||
│ │ ├── ai_config_list_item.dart # AI 配置列表项
|
||
│ │ └── ai_model_selector.dart # AI 模型选择器
|
||
│ │
|
||
│ ├── repositories/ # 数据仓库目录 (顶层, 可能需要整合)
|
||
│ │ └── codex_repository.dart # Codex (知识库) 仓库接口
|
||
│ │
|
||
│ ├── models/ # 数据模型目录
|
||
│ │ ├── ai_model_group.dart # AI 模型分组模型
|
||
│ │ ├── chat_message.dart # 聊天消息模型
|
||
│ │ ├── chat_models.dart # 聊天相关模型 (可能包含会话等)
|
||
│ │ ├── editor_content.dart # 编辑器内容模型
|
||
│ │ ├── editor_settings.dart # 编辑器设置模型
|
||
│ │ ├── import_status.dart # 导入状态模型
|
||
│ │ ├── model_info.dart # 模型信息模型
|
||
│ │ ├── novel_structure.dart # 小说结构模型 (卷/章/场景)
|
||
│ │ ├── novel_summary.dart # 小说摘要模型
|
||
│ │ ├── prompt_models.dart # 提示词相关模型
|
||
│ │ ├── revision.dart # 版本/修订模型
|
||
│ │ ├── scene_version.dart # 场景版本模型
|
||
│ │ ├── user_ai_model_config_model.dart # 用户 AI 模型配置模型
|
||
│ │ │
|
||
│ │ ├── next_outline/ # 剧情推演相关模型
|
||
│ │ │ ├── next_outline_dto.dart # 剧情推演 DTO
|
||
│ │ │ └── outline_generation_chunk.dart # 大纲生成块 (SSE)
|
||
│ │ │
|
||
│ │ └── api/ # API 数据传输对象 (DTO)
|
||
│ │ └── editor_dtos.dart # 编辑器相关的 DTO
|
||
│ │
|
||
│ ├── l10n/ # 本地化目录
|
||
│ │ └── l10n.dart # 本地化工具类/入口
|
||
│ │
|
||
│ ├── docs/ # 文档目录 (嵌入代码中)
|
||
│ │ └── logger_guide.md # (重复) 日志记录器使用指南
|
||
│ │
|
||
│ ├── config/ # 应用配置目录
|
||
│ │ └── app_config.dart # 应用配置 (如 API 地址)
|
||
│ │
|
||
│ ├── components/ # 可重用组件目录 (类似 widgets)
|
||
│ │ └── editable_title.dart # 可编辑标题组件
|
||
│ │
|
||
│ └── blocs/ # BLoC 状态管理目录
|
||
│ ├── editor_version_bloc.dart # 编辑器版本 BLoC
|
||
│ ├── editor_version_event.dart # 编辑器版本事件
|
||
│ ├── editor_version_state.dart # 编辑器版本状态
|
||
│ │
|
||
│ ├── prompt/ # 提示词管理 BLoC
|
||
│ │ ├── prompt_bloc.dart # 提示词 BLoC
|
||
│ │ ├── prompt_event.dart # 提示词事件
|
||
│ │ ├── prompt_state.dart # 提示词状态
|
||
│ │ └── prompt_template_events.dart # 提示词模板事件 (可能应合并或重构)
|
||
│ │
|
||
│ ├── plan/ # 小说计划 (Plan) BLoC
|
||
│ │ ├── plan_bloc.dart # Plan BLoC
|
||
│ │ ├── plan_event.dart # Plan 事件
|
||
│ │ └── plan_state.dart # Plan 状态
|
||
│ │
|
||
│ ├── novel_list/ # 小说列表 BLoC
|
||
│ │ ├── novel_list_bloc.dart # 小说列表 BLoC
|
||
│ │ └── novel_list_event.dart # 小说列表事件
|
||
│ │ # novel_list_state.dart missing? (可能在 novel_list_bloc.dart 中定义)
|
||
│ │
|
||
│ ├── novel_import/ # 小说导入 BLoC
|
||
│ │ ├── novel_import_bloc.dart # 小说导入 BLoC
|
||
│ │ ├── novel_import_event.dart # 小说导入事件
|
||
│ │ └── novel_import_state.dart # 小说导入状态
|
||
│ │
|
||
│ ├── next_outline/ # 剧情推演 BLoC
|
||
│ │ ├── next_outline_bloc.dart # 剧情推演 BLoC
|
||
│ │ ├── next_outline_event.dart # 剧情推演事件
|
||
│ │ └── next_outline_state.dart # 剧情推演状态
|
||
│ │
|
||
│ ├── editor/ # 编辑器 BLoC
|
||
│ │ ├── editor_bloc.dart # 编辑器 BLoC
|
||
│ │ ├── editor_event.dart # 编辑器事件
|
||
│ │ └── editor_state.dart # 编辑器状态
|
||
│ │
|
||
│ ├── chat/ # AI 聊天 BLoC
|
||
│ │ ├── chat_bloc.dart # 聊天 BLoC
|
||
│ │ ├── chat_event.dart # 聊天事件
|
||
│ │ └── chat_state.dart # 聊天状态
|
||
│ │
|
||
│ ├── auth/ # 认证 BLoC
|
||
│ │ └── auth_bloc.dart # 认证 BLoC
|
||
│ │ # auth_event.dart, auth_state.dart missing?
|
||
│ │
|
||
│ └── ai_config/ # AI 配置 BLoC
|
||
│ ├── ai_config_bloc.dart # AI 配置 BLoC
|
||
│ ├── ai_config_event.dart # AI 配置事件
|
||
│ └── ai_config_state.dart # AI 配置状态
|
||
│
|
||
├── fix_dollar_e/ # 一个独立的 Dart 包/工具 (修复 $e 问题?)
|
||
│ └── bin/ # 可执行脚本目录
|
||
│ └── fix_dollar_e.dart # 主要执行脚本
|
||
│
|
||
└── build/ # Flutter 构建输出目录
|
||
├── flutter_assets/ # Flutter 资源文件
|
||
│ ├── AssetManifest.bin.json # 二进制资源清单
|
||
│ ├── AssetManifest.json # JSON 资源清单
|
||
│ ├── FontManifest.json # 字体清单
|
||
│ └── packages/ # 包资源
|
||
│ └── fluttertoast/ # fluttertoast 包资源
|
||
│ └── assets/ # fluttertoast 资源
|
||
│ ├── toastify.css # toastify CSS
|
||
│ └── toastify.js # toastify JS
|
||
│
|
||
└── ce49e7d90cd902197f9a9cbc84219d23/ # (内部构建目录)
|
||
└── outputs.json # 构建输出信息
|
||
|
||
```
|
||
|
||
## 技术架构
|
||
|
||
### 前端技术栈
|
||
|
||
- **框架**: Flutter
|
||
- **状态管理**: Bloc模式
|
||
- **网络请求**: 服务层与仓库模式
|
||
- **国际化**: l10n支持
|
||
|
||
### 后端技术栈
|
||
|
||
- **框架**: Spring Boot
|
||
- **安全**: Spring Security
|
||
- **数据访问**: Spring Data
|
||
- **API文档**: Swagger/OpenAPI
|
||
- **测试**: JUnit, Postman
|
||
|
||
|
||
|
||
## 开发流程
|
||
|
||
项目采用敏捷开发方法,通过迭代方式进行开发。前端和后端团队协作,使用Git进行版本控制,通过Postman进行API测试。
|
||
|
||
## 文档资源
|
||
|
||
- 需求文档: 详细的功能需求说明
|
||
- 原型图: UI/UX设计原型
|
||
- 测试计划与文档: 测试策略和测试用例
|
||
- 后端开发文档: API设计和实现说明
|
||
- 前端产品敏捷迭代计划: 前端开发计划和里程碑 |