Jelajahi Sumber

refactor(novel-app): 优化小说创作工具的提示模板

18460000105 3 bulan lalu
induk
melakukan
3ca8110bc4

+ 1 - 4
novel-app/src/app/chapter-generator/chapter-generator.page.ts

@@ -14,7 +14,6 @@ import { OnInit } from '@angular/core';
 import { ActivatedRoute } from '@angular/router';
 import { CloudObject, CloudQuery,CloudUser } from '../lib/ncloud';
 addIcons({ chevronForward });
-
 @Component({
   selector: 'app-chapter-generator',
   templateUrl: './chapter-generator.page.html',
@@ -40,7 +39,7 @@ export class ChapterGeneratorPage implements OnInit {
   title: string = '';
   description: string = '';
 
-  constructor(private modalCtrl: ModalController, private route: ActivatedRoute) {  
+  constructor(private modalCtrl: ModalController, private route: ActivatedRoute){  
     addIcons({ add });
     this.currentUser = new CloudUser();
   }
@@ -55,10 +54,8 @@ export class ChapterGeneratorPage implements OnInit {
       this.story.set({
         user: this.currentUser.toPointer(),
         username: this.currentUser.data["username"],
-
         title:this.title,
         desc:this.description,
-        
       })
     }
     console.log(this.story)

+ 1 - 1
novel-app/src/app/comp-uploader-hwobs/comp-uploader-hwobs.component.html

@@ -2,4 +2,4 @@
   <h1 class="upload-title">人物形象上传:</h1>
   <input type="file" multiple (change)="onFileChange($event)" class="file-input"/>
   <button (click)="upload()" class="upload-button">上传</button>
-</div>
+</div>

+ 1 - 1
novel-app/src/app/home/home.page.html

@@ -68,7 +68,7 @@
     <ion-card>
       <ion-card-header>
         <div class="card-header-content">
-          <ion-card-title>我的作品</ion-card-title>
+          <ion-card-title>作品</ion-card-title>
           <ion-button fill="clear" size="small" (click)="presentCreateOptions($event)">
             <ion-icon slot="start" name="add-outline"></ion-icon>
             新建作品

+ 35 - 3
novel-app/src/app/short-generator/short-generator.page.ts

@@ -65,7 +65,7 @@ export class ShortGeneratorPage implements OnInit {
     this.titlel = ev.detail.value;
   }
 
-  style: string = "玄幻";
+  style: string = "";
   styleInput(ev: any) {
     this.style = ev.detail.value;
   }
@@ -106,7 +106,25 @@ export class ShortGeneratorPage implements OnInit {
     this.entry = JSON.stringify(this.entryList); // 将 entryList 转换为字符串并存储在 entry 中
     console.log(this.entry)
     let PromptTemplate = `
-    您作为一名专业的${this.style}作者,请您根据用户提供的标题${this.titlel},根据这个词条${JSON.stringify(this.entryList)}的内容,添加文章信息,并给出短篇小说大纲。
+    请你作为一名专业的小说创作者,请您根据用户提供的标题${this.titlel},用户的要求要求${this.style},根据这个词条${JSON.stringify(this.entryList)}的内容,给出短篇小说大纲,大纲需要清晰的主题:大纲应明确小说的主题和中心思想,能够引导整个故事的发展。
+
+    完整的情节结构:大纲需要包含故事的主要情节,包括开端、发展、高潮和结局,确保情节的连贯性和逻辑性。
+    
+    角色发展:大纲中应明确主要角色的性格特点、动机和成长轨迹,展示他们在故事中的变化和发展。
+    
+    冲突与张力:描述主要冲突和障碍,这些冲突是推动情节发展的关键因素,能够增加故事的紧张感和吸引力。
+    
+    场景设置:大纲应包括主要场景和背景信息,帮助读者理解故事发生的环境和氛围。
+    
+    时间线:提供一个清晰的时间线,说明故事的时间进程,包括重要事件的发生顺序。
+    
+    关键事件:标出故事中的关键事件和转折点,这些事件通常是推动情节发展的重要节点。
+    
+    叙述视角:确定故事的叙述视角(第一人称、第三人称等),并在大纲中保持一致性。
+    
+    节奏与结构:考虑故事的节奏,安排好各个部分的长度和强度,使整体结构合理平衡。
+    
+    开放性与灵活性:虽然大纲需要有一定的框架,但也应留有空间以便在创作过程中进行调整和修改,保持灵活性。
     
     `;
     console.log(PromptTemplate);
@@ -132,7 +150,21 @@ export class ShortGeneratorPage implements OnInit {
     console.log("create");
 
     let PromptTemplate = `
-    根据短篇小说大纲${this.generatedOutline},生成一个短篇小说。
+    根据短篇小说大纲${this.generatedOutline},生成一个短篇小说。要求做到引人入胜的情节:情节要紧凑、有吸引力,能够吸引读者的注意力并保持他们的兴趣。高潮和冲突的设计尤为重要。
+
+    深刻的人物塑造:角色要有鲜明的个性和发展,读者能够与他们产生共鸣。复杂的人物关系和内心冲突能够增加故事的深度。
+    
+    生动的描写:通过细腻的描写,营造出丰富的场景和氛围,使读者能够身临其境,感受到故事的情感和张力。
+    
+    主题与思想:小说应有深刻的主题和思想,能够引发读者的思考,传达某种价值观或人生哲理。
+    
+    流畅的语言:语言要优美流畅,适合故事的风格和情境,能够增强阅读体验。
+    
+    独特的视角:采用独特的叙述视角或创新的结构,使作品在众多小说中脱颖而出,给读者带来新鲜感。
+    
+    情感共鸣:能够引发读者的情感共鸣,使他们在阅读过程中产生共情,感受到角色的喜怒哀乐。
+    
+    合理的逻辑性:情节发展和人物行为要合乎逻辑,避免出现不合理的情节反转或角色行为。
     `;
 
     let completion = new FmodeChatCompletion([

+ 1 - 1
novel-app/src/app/tab1/tab1.page.html

@@ -24,7 +24,7 @@
                 <img [src]="doctor.get('avatar')" [alt]="doctor.get('name')" />
               </ion-thumbnail>
               <div class="doctor-info" (click)="openInquiry(doctor)">
-                <p>{{doctor.get("username")}}</p>
+                <p>作者:{{doctor.get("username")}}</p>
                 <h3>{{ doctor.get('name') }}</h3>
                 <p>{{ doctor.get('desc') }}</p>
                 

+ 6 - 19
novel-app/src/app/tab1/tab1.page.ts

@@ -104,31 +104,18 @@ export class Tab1Page {
         console.log("onChatInit");
               console.log("预设角色",chat.role);
               chat.role.set("name",doctor?.get("name"));
-              chat.role.set("title",doctor?.get("title"));
+              // chat.role.set("title",doctor?.get("title"));
               chat.role.set("desc",doctor?.get("desc"));
-              chat.role.set("tags",doctor?.get("qualifications"));
-              chat.role.set("avatar",doctor?.get("avatar") || "../../assets/image/doctor5.png")
+              // chat.role.set("tags",doctor?.get("qualifications"));
+              chat.role.set("avatar",doctor?.get("avatar") || "../../assets/images/opinion.png")
               chat.role.set("prompt",`
 # 角色设定
-您是${doctor?.get("desc")},${doctor?.get("name")},年龄${doctor?.get("age")}岁,需要完成一次完整的门诊服务。
 
-# 对话环节
-0.导诊(根据用户基本情况,引导挂号合适的科室)
-1.预设的问询方式(根据不同症状来问询具体的情况)
-- 打招呼,以用户自述为主
-- 当信息充足时候,确认用户症状对应的科室,并进入下一个环节
-2.拓展的问询细节
-例如:用户反映呼吸不畅,拓展出:是否咳嗽;是否感觉痛或者痒等其他需要的问题。
-- 当问询细节补充完成后进入下一个环节
-3.初步的诊断结果,并且同时列出检查检验项目
-初步诊断:确定需要有哪些进一步检查
-检查检验:获取医学客观数据
-- 等待用户提交客观数据,进入下一阶段
-4.给出诊断方案并给出处方
-- 完成处方时,请在消息结尾附带: [处方完成]
+请以${doctor?.get("name")}的身份进行服务。你需要做到${doctor?.get("desc")},对${doctor?.get("name")}进行检索,在不违反要求的情况下,智能匹配角色性格,
+成为这个角色应该做到什么要求,你需要做到这个要求,并时刻认清自己的角色
 
 # 开始话语
-当您准备好了,可以以一个医生的身份,向来访的用户打招呼。`);
+当您准备好了,可以以角色的身份,向来访的用户打招呼。`);
       },
       onMessage:(chat:FmodeChat,message:FmodeChatMessage)=>{
         console.log("onMessage",message)

+ 19 - 1
novel-app/src/app/tool1/tool1.page.ts

@@ -79,7 +79,25 @@ export class Tool1Page implements OnInit {
   sendMessage() {
     console.log("create");
     let PromptTemplate = `
-    您作为一名专业的小说作者,请您根据用户提供的要求${this.style},添加文章信息,并给出短篇小说大纲。
+    您作为一名专业的小说作者,请您根据用户提供的要求${this.style},给出短篇小说大纲,要求清晰的主题:大纲应明确小说的主题和中心思想,能够引导整个故事的发展。
+
+    完整的情节结构:大纲需要包含故事的主要情节,包括开端、发展、高潮和结局,确保情节的连贯性和逻辑性。
+    
+    角色发展:大纲中应明确主要角色的性格特点、动机和成长轨迹,展示他们在故事中的变化和发展。
+    
+    冲突与张力:描述主要冲突和障碍,这些冲突是推动情节发展的关键因素,能够增加故事的紧张感和吸引力。
+    
+    场景设置:大纲应包括主要场景和背景信息,帮助读者理解故事发生的环境和氛围。
+    
+    时间线:提供一个清晰的时间线,说明故事的时间进程,包括重要事件的发生顺序。
+    
+    关键事件:标出故事中的关键事件和转折点,这些事件通常是推动情节发展的重要节点。
+    
+    叙述视角:确定故事的叙述视角(第一人称、第三人称等),并在大纲中保持一致性。
+    
+    节奏与结构:考虑故事的节奏,安排好各个部分的长度和强度,使整体结构合理平衡。
+    
+    开放性与灵活性:虽然大纲需要有一定的框架,但也应留有空间以便在创作过程中进行调整和修改,保持灵活性。但是你不用对于特点进行详细介绍
     `;
     console.log(PromptTemplate);
     let completion = new FmodeChatCompletion([

+ 19 - 1
novel-app/src/app/tool3/tool3.page.ts

@@ -79,7 +79,25 @@ export class Tool3Page implements OnInit {
   sendMessage() {
     console.log("create");
     let PromptTemplate = `
-    您作为一名专业的小说作者,请您根据用户提供的要求${this.style},给出人物特点。
+    您作为一名专业的小说作者,请您根据用户提供的要求${this.style},给出人物特点,要求做到鲜明的个性:角色应有独特的性格特征,包括优点和缺点,使他们在故事中显得真实而立体。
+
+    动机与目标:角色需要有明确的动机和目标,这些动机驱动他们的行为,并推动情节的发展。
+    
+    成长与变化:角色在故事中应经历一定的成长或变化,能够反映出他们的内心挣扎和发展过程。
+    
+    复杂性:人物应具备多面性,既有光辉的一面,也有阴暗的一面,这样可以增加角色的深度和真实感。
+    
+    背景与经历:角色的背景故事和经历能够为他们的行为和决策提供动机,使角色更加可信。
+    
+    人际关系:角色与其他角色之间的关系能够反映其性格,展现他们在不同情境下的表现。
+    
+    情感共鸣:角色应能够引发读者的情感共鸣,使读者能够与他们的经历和感受产生联系。
+    
+    一致性:角色的行为和决策应与其性格特征和背景相一致,避免出现不合理的行为。
+    
+    独特的语言和行为方式:角色的对话和行为应具有独特性,能够体现其个性,使他们在故事中更具辨识度。
+    
+    道德与价值观:角色的道德观和价值观能够反映他们的内心世界,影响他们的决策和行为。但是你不用对于特点进行详细介绍
     `;
     console.log(PromptTemplate);
     let completion = new FmodeChatCompletion([

+ 19 - 1
novel-app/src/app/tool4/tool4.page.ts

@@ -79,7 +79,25 @@ export class Tool4Page implements OnInit {
   sendMessage() {
     console.log("create");
     let PromptTemplate = `
-    您作为一名专业的小说作者,请您根据用户提供的要求${this.style},给出小说名称。
+    您作为一名专业的小说作者,请您根据用户提供的要求${this.style},给出多个小说名称,要求做到引人注目:名称应具有吸引力,能够引起读者的兴趣,使他们愿意进一步了解故事内容。
+
+    主题相关:名称应与小说的主题或核心思想相关,能够传达出故事的主要内容或情感。
+    
+    简洁明了:名称应简洁易懂,避免过于复杂或冗长,使读者能够迅速记住。
+    
+    富有意象:好的小说名称通常带有一定的意象或象征意义,能够激发读者的想象力,传达更深层的含义。
+    
+    情感共鸣:名称可以传达出情感色彩,与故事的情感基调相呼应,增强读者的情感共鸣。
+    
+    独特性:名称应具备独特性,避免与其他作品重复,使其在众多书籍中脱颖而出。
+    
+    适合目标读者:考虑目标读者群体的兴趣和偏好,选择能够引起他们共鸣的名称。
+    
+    暗示性:名称可以暗示故事中的关键元素、冲突或角色,给读者留下悬念。
+    
+    音韵美:好的名称往往具有一定的音韵美,读起来顺口,易于记忆。
+    
+    文化背景:如果小说涉及特定的文化或历史背景,名称可以反映这一点,增加作品的深度。但是你不用对于特点进行详细介绍
     `;
     console.log(PromptTemplate);
     let completion = new FmodeChatCompletion([

+ 10 - 1
novel-app/src/app/tool5/tool5.page.ts

@@ -79,7 +79,16 @@ export class Tool5Page implements OnInit {
   sendMessage() {
     console.log("create");
     let PromptTemplate = `
-    您作为一名专业的小说作者,请您根据用户提供的要求${this.style},给出人物名称。
+    您作为一名专业的小说作者,请您根据用户提供的要求${this.style},给出人物名称,要求做到易于记忆:名称应简洁明了,容易发音和记忆,能够让读者在阅读过程中迅速记住角色。
+    个性化:名称应反映角色的个性、特征或背景,使其与众不同,具有辨识度。
+    文化适应性:名称应符合故事的文化背景和时代设定,能够增强角色的真实性和代入感。
+    象征意义:一些角色名称可以蕴含象征意义,暗示角色的性格、命运或故事中的重要主题。
+    情感共鸣:名称能够引发读者的情感共鸣,传达角色的情感状态或内心冲突。
+    与情节相关:角色名称可以与故事情节或角色的经历相关联,增加故事的层次感。
+    音韵美:名称的音韵和节奏感应和谐,读起来顺口,能够增强角色的魅力
+    适合角色的定位:名称应与角色在故事中的定位相符,例如,主角、反派、配角等,能够反映其在故事中的重要性。
+    时代感:名称应符合角色所处的时代背景,避免使用不合时宜的名字,增强故事的真实性。
+    多样性:在角色名称的设计上,可以考虑多样性,避免同类角色之间的名称过于相似,以免造成混淆。但是你不用对于特点进行详细介绍
     `;
     console.log(PromptTemplate);
     let completion = new FmodeChatCompletion([

+ 19 - 1
novel-app/src/app/tool6/tool6.page.ts

@@ -79,7 +79,25 @@ export class Tool6Page implements OnInit {
   sendMessage() {
     console.log("create");
     let PromptTemplate = `
-    您作为一名专业的小说作者,请您根据用户提供的要求${this.style},给出小说世界架构。
+    您作为一名专业的小说作者,请您根据用户提供的要求${this.style},给出小说世界架构,要求做到系统性:世界架构应具备完整的系统性,包括政治、经济、文化、社会结构、宗教信仰等各个方面,形成一个相互关联的整体。
+
+    逻辑性:世界的规则和设定应具有内在逻辑,确保各种元素之间的关系合理,避免出现不合常理的情况。
+    
+    丰富性:世界应具有丰富的细节,包括地理环境、历史背景、种族文化等,能够让读者感受到一个生动而多元的世界。
+    
+    可探索性:好的世界架构应允许角色和读者探索不同的地域、文化和历史,激发好奇心和冒险精神。
+    
+    一致性:世界设定应在整个故事中保持一致,确保角色的行为和情节的发展符合世界的规则和背景。
+    
+    动态性:世界应具有动态变化的特性,包括历史的演变、政治的变迁和文化的交融,使故事充满活力。
+    
+    冲突与张力:世界架构中应包含各种冲突和张力,包括种族之间、国家之间或文化之间的对立,推动情节的发展。
+    
+    多样性:好的世界架构应包含多种文化、种族和社会形态,反映出人类社会的多样性和复杂性。
+    
+    角色的影响:角色在世界中的地位和影响力应得到合理体现,角色的行动能够对世界产生实质性的影响。
+    
+    情感共鸣:世界架构应能够引发读者的情感共鸣,使他们能够与故事中的角色和事件产生联系,增强代入感。但是你不用对于特点进行详细介绍
     `;
     console.log(PromptTemplate);
     let completion = new FmodeChatCompletion([

+ 2 - 2
novel-app/src/app/toolbox/toolbox.page.html

@@ -20,14 +20,14 @@
   </ion-card>
 
   <!-- 人物设定生成按钮 -->
-  <ion-card>
+  <!-- <ion-card>
     <ion-card-header>
       <ion-card-title>小说标题生成</ion-card-title>
     </ion-card-header>
     <ion-card-content>
       <ion-button (click)="navigateTo('/tool2')">生成标题</ion-button>
     </ion-card-content>
-  </ion-card>
+  </ion-card> -->
 
   <!-- 世界架构设定按钮 -->
   <ion-card>