Files
MaliangAINovalWriter/.cursor/rules/gloalrule.mdc
2025-09-10 00:07:52 +08:00

773 lines
57 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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设计和实现说明
- 前端产品敏捷迭代计划: 前端开发计划和里程碑