Kaynağa Gözat

fix: update short-generator

祝雨婧 3 ay önce
ebeveyn
işleme
57cb5a2e18

+ 10 - 2
novel-app/src/app/short-generator/short-generator.page.html

@@ -25,7 +25,15 @@
   <!-- 实时预览生成的小说大纲 -->
   <ion-textarea [(ngModel)]="generatedOutline" placeholder="生成的小说大纲" autoGrow="true"
     class="generated-outline"></ion-textarea>
-  <!-- 按钮:生成小说 -->
-  <ion-button (click)="navigateToContentGenerator()" expand="block">生成小说</ion-button>
+  <!-- 按钮:执行消息生成函数 -->
+  <ion-button (click)="sendOutline()" expand="block">生成小说</ion-button>
+
+  <!-- 展示:返回消息内容 -->
+  <!-- 实时预览生成的小说 -->
+  <ion-textarea [(ngModel)]="generatedContent" placeholder="生成的小说" autoGrow="true"
+    class="generated-content"></ion-textarea>
+
+  <!-- 保存按钮 -->
+  <ion-button (click)="saveNovel()" expand="block" color="success">保存小说</ion-button>
 
 </ion-content>

+ 52 - 2
novel-app/src/app/short-generator/short-generator.page.ts

@@ -19,21 +19,24 @@ export class ShortGeneratorPage implements OnInit {
   constructor(private router: Router) { }
 
   ngOnInit() { }
+
   navigateToContentGenerator() {
     this.router.navigate(['/content-generator'], { queryParams: { outline: this.generatedOutline } });
   }
+
   // 用户输入提示词
   title: string = "时空之旅";
   titleInput(ev: any) {
     this.title = ev.detail.value;
   }
+
   style: string = "玄幻";
   styleInput(ev: any) {
-    this.style = ev.detail.value; // 修正这里应该是修改style而不是title
+    this.style = ev.detail.value;
   }
 
   // 用户输入提示词
-  userPrompt: string = "人物名字:林浅夏;  人物角色:女主角;人物描述:林浅夏是一名来自中国的少女,她的爱好是画画,她的梦想是成为一名优秀的画家。";
+  userPrompt: string = "人物名字:紫霄月;  人物角色:女主角;人物描述:一位来自古老时空的神秘女子。她自幼便拥有穿梭时空的奇异能力,能够自由穿梭于不同的历史与未来之间。这种能力不仅赋予了她非凡的见识与智慧,也让她背负上了沉重的使命——寻找失落的时空碎片,以维护时空的平衡与稳定。";
   promptInput(ev: any) {
     this.userPrompt = ev.detail.value;
   }
@@ -41,6 +44,9 @@ export class ShortGeneratorPage implements OnInit {
   // 生成的小说大纲
   generatedOutline: string = "";
 
+  // 生成的小说内容
+  generatedContent: string = "";
+
   // 属性:组件内用于展示消息内容的变量
   responseMsg: any = "";
 
@@ -71,6 +77,50 @@ export class ShortGeneratorPage implements OnInit {
         this.generatedOutline = this.responseMsg;
       }
     });
+  }
+
+  sendOutline() {
+    console.log("create");
+
+    let PromptTemplate = `
+    根据短篇小说大纲${this.generatedOutline},生成一个短篇小说。
+    `;
+
+    let completion = new FmodeChatCompletion([
+      { role: "system", content: "" },
+      { role: "user", content: PromptTemplate }
+    ]);
+
+    completion.sendCompletion().subscribe((message: any) => {
+      // 打印消息体
+      console.log(message.content);
+      // 赋值消息内容给组件内属性
+      this.responseMsg = message.content;
+      if (message?.complete) { // 判断message为完成状态,则设置isComplete为完成
+        this.isComplete = true;
+        // 将生成的小说内容放入文本框中
+        this.generatedContent = this.responseMsg;
+      }
+    });
+  }
+
+  saveNovel() {
+    if (this.generatedContent) {
+      const novelData = {
+        title: this.title,
+        style: this.style,
+        userPrompt: this.userPrompt,
+        generatedOutline: this.generatedOutline,
+        generatedContent: this.generatedContent
+      };
+
+      // 保存到本地存储
+      localStorage.setItem('novel', JSON.stringify(novelData));
+      console.log('小说已保存到本地存储');
 
+      // 可以在这里添加其他保存逻辑,例如发送到服务器
+    } else {
+      console.log('没有生成小说内容,无法保存');
+    }
   }
 }