content-generator.page.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { Component, OnInit } from '@angular/core';
  2. import { CommonModule } from '@angular/common';
  3. import { FormsModule } from '@angular/forms';
  4. import { IonContent, IonHeader, IonTitle, IonToolbar, IonBackButton, IonButtons } from '@ionic/angular/standalone';
  5. import { ActivatedRoute } from '@angular/router';
  6. import { IonicModule } from '@ionic/angular';
  7. import { Router } from '@angular/router';
  8. import { FmodeChatCompletion, MarkdownPreviewModule } from 'fmode-ng';
  9. @Component({
  10. selector: 'app-content-generator',
  11. templateUrl: './content-generator.page.html',
  12. styleUrls: ['./content-generator.page.scss'],
  13. standalone: true,
  14. imports: [IonContent, IonHeader, IonTitle, IonToolbar, IonBackButton, IonButtons, CommonModule, FormsModule]
  15. })
  16. export class ContentGeneratorPage implements OnInit {
  17. generatedOutline: string = "";
  18. generatedContent: string = "";
  19. responseMsg: any;
  20. isComplete: boolean | undefined;
  21. constructor(private route: ActivatedRoute) { }
  22. ngOnInit() {
  23. this.route.queryParams.subscribe(params => {
  24. this.generatedOutline = params['outline'];
  25. this.generateNovelContent();
  26. });
  27. }
  28. generateNovelContent() {
  29. // 假设这里有一个服务可以生成小说内容
  30. // 这里只是一个示例,你需要根据实际情况调用你的服务
  31. let novelContentTemplate = `
  32. 根据大纲生成的小说内容:
  33. 大纲:${this.generatedOutline}
  34. `;
  35. let completion = new FmodeChatCompletion([
  36. { role: "generatedOutline", content: "" },
  37. ]);
  38. completion.sendCompletion().subscribe((message: any) => {
  39. // 打印消息体
  40. console.log(message.content);
  41. // 赋值消息内容给组件内属性
  42. this.responseMsg = message.content;
  43. if (message?.complete) { // 判断message为完成状态,则设置isComplete为完成
  44. this.isComplete = true;
  45. this.generatedContent = novelContentTemplate; // 将生成的小说内容显示在文本框中
  46. }
  47. }
  48. );
  49. }
  50. }