import { Component, OnInit } from '@angular/core';
import { IonHeader, IonToolbar, IonTitle, IonContent, IonButton, IonTextarea, IonInput } from '@ionic/angular/standalone';
/** 引用：从fmode-ng库引用FmodeChatCompletion类 */
import { FmodeChatCompletion,MarkdownPreviewModule } from 'fmode-ng';

@Component({
  selector: 'app-page-AIimagery',
  templateUrl: './page-AIimagery.component.html',
  styleUrls: ['./page-AIimagery.component.scss'],
  standalone: true,
  imports: [IonHeader, IonToolbar, IonTitle, IonContent, IonButton,IonTextarea,IonInput,
    // 引入fm-markdown-preview组件模块
    MarkdownPreviewModule
  ],
})
export class PageAIimageryComponent  implements OnInit {

  constructor() { }

  ngOnInit() {}

  // 用户输入提示词
  type:string = "电视剧"
  typeInput(ev:any){
    this.type = ev.detail.value;
  }
   // 用户输入提示词
   style:string = "古装/悬疑等"
   styleInput(ev:any){
     this.style = ev.detail.value;
   }
   // 用户输入提示词
   last:string = " "
   lastInput(ev:any){
     this.last = ev.detail.value;
   }
   // 用户输入提示词
   like:string = " "
   likeInput(ev:any){
     this.like = ev.detail.value;
   }
  // 用户输入提示词
  detail:string = "请描述您期望的故事情节"
  detailInput(ev:any){
    this.detail = ev.detail.value;
  }
  // 属性：组件内用于展示消息内容的变量
  responseMsg:any = ""
  // 方法：实例化completion对象，传入消息数组，并订阅生成的可观察对象。
  isComplete:boolean = false; // 定义完成状态属性，用来标记是否补全完成
  sendMessage(){
    console.log("create")

    let PromptTemplate = `
    请根据以下的用户描述生成该用户的用户画像。

    1. 用户喜欢的影视类型（如：电影、电视剧）：${this.type}
    2. 用户喜欢的影视风格（如：动作、喜剧、爱情、科幻、悬疑等）：${this.style}
    3. 用户喜欢的演员：${this.like}
    4. 用户对故事情节的偏好（如：喜欢紧张刺激的情节，或者温馨感人的故事）：${this.detail}
    5. 用户的观看历史（例如：最近观看过的影视剧）：${this.last}

    
    请根据以上信息，生成一份该用户的用户画像。每个特征之间以顿号隔开。
    `
    
    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
      }
    })
  }
}
