# 短篇小说创建模块 uml编写

# 一、Scheema范式设计
## 短篇小说创建模块
- 模块描述
  - 用户可以创建短篇小说项目,创建短篇小说项目时,可以选择小说风格,添加人物词条。  
  - 根据小说风格和人物词条,可以生成小说大纲,通过大纲可以生成小说。


### 1. 表及字段说明:
### 1.1 短篇小说项目表(ShortProject)
- objectId: String (自动生成的唯一标识符)
- createdAt: Date (创建时间)
- title: String (小说标题)
- style: String (小说风格)
- short_characters: Array<Pointer> (人物列表,指向人物表)
- outline: Pointer (关联到小说大纲)
- content: String (小说内容)
### 1.2 短篇小说人物表(ShortCharacter)
- objectId: String (自动生成的唯一标识符)
- createdAt: Date (创建时间)
- name: String (人物名字)
- role: String (人物角色)
- description: String (人物描述)
- project: Pointer (所属项目,指向短篇小说项目表)

### 1.3 大纲表(Outline)

objectId: String (自动生成的唯一标识符)
createdAt: Date (创建时间)
shortProject: Pointer (关联到小说项目)
content: String (大纲内容)

### 2. PlantUML 类图表示

```plantuml
@startuml
class ShortProject {
    +objectId: String
    +createdAt: Date
    +title: String
    +style: String
    +characters: Array>
    +outline: Pointer
    +content: String
}

class ShortCharacter {
    +objectId: String
    +createdAt: Date
    +name: String
    +role: String
    +description: String
}

class Outline {
    +objectId: String
    +createdAt: Date
    +shortProject: Pointer
    +content: String
}

ShortProject "1" -- "*" ShortCharacter : contains >
ShortProject "1" -- "1" Outline : has >
@enduml
```

# 二、业务逻辑描述
# 短篇小说创建的完整逻辑
## 创建逻辑

- 用户在APP内,通过填写短篇小说名称,小说风格,添加人物词条,点击提交按钮,触发创建短篇小说项目的逻辑。
  - 数据来源
    - 用户输入短篇小说名称,风格,人物词条等数据。
  - 文本生成
    - 提示词: 风格生成提示词,人物生成提示词
  - 结果储存
    - ShortProject
      - 项目标题title
      - 项目风格style
    - ShortCharacter
      - 人物名称name
      - 人物角色role角色在小说中的定位
      - 人物描述description完整人物描述
- 根据风格和人物词条,生成短篇小说大纲
  - 数据来源
    - LongCharacter
    - style
  - 文本生成
    - 提示词: 小说大纲生成提示词
  - 生成结果
    - 小说大纲(Outline表)content(生成的小说大纲可以手动修改)
- 根据小说大纲生成小说内容
  - 数据来源
    - 小说大纲content
  - 文本生成
    - 提示词: 小说内容生成提示词
  - 生成结果
    - 小说内容(ShortProject表)content(生成的小说内容可以手动修改)

通过以上步骤,用户能够在APP内顺利创建短篇小说,系统将自动处理数据采集、文本生成和结果存储的逻辑。

# 智能体创建业务逻辑图例
>提示词:{业务逻辑},您是一名专业的产品经理,请您将上述逻辑的每个过程,用plantuml的时序图表示出来。 
以下是根据短篇小说创建逻辑生成的 PlantUML 时序图,展示了每个过程的交互和顺序。

```plantuml
@startuml
actor User
participant "App" as App
participant "ShortProject" as SP
participant "ShortCharacter" as SC
participant "Outline" as O
participant "NovelGenerator" as NG

== 创建短篇小说项目 ==
User -> App: 输入短篇小说名称、风格、人物词条
User -> App: 点击提交按钮
App-> SP: 创建短篇小说项目
SP -> SP: 保存项目标题(title)和风格(style)
SP -> SC: 添加人物词条(name, role, description)
SP -> App: 项目创建成功
== 生成小说大纲 ==
SC -> O: 生成小说大纲(content)
O -> O: 手动修改大纲内容

== 生成小说内容 ==
O -> NG: 生成小说内容(content)
NG -> User: 显示小说内容\n(content可手动修改)

@enduml
```

### 图示说明:
- 用户在应用程序内填写短篇小说的名称、风格和人物词条,并点击提交按钮。
- APP接收到输入后,调用ShortProject创建项目,并返回创建成功的消息。
- 应用程序根据输入的风格和人物生成小说大纲,并返回生成的小说
- 应用程序根据大纲内容,生成小说内容。
- 应用程序将生成的小说内容展示给用户。