page-consult.component.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { Component, OnInit } from '@angular/core';
  2. import {IonHeader, IonToolbar, IonTitle, IonContent, IonButton,
  3. IonTextarea,IonInput} from '@ionic/angular/standalone';
  4. /** 引用:从fmode-ng库引用FmodeChatCompletion类 */
  5. import { FmodeChatCompletion,MarkdownPreviewModule } from 'fmode-ng';
  6. @Component({
  7. selector: 'app-page-consult',
  8. templateUrl: './page-consult.component.html',
  9. styleUrls: ['./page-consult.component.scss'],
  10. standalone: true,
  11. imports: [IonHeader, IonToolbar, IonTitle, IonContent, IonButton,
  12. IonTextarea,IonInput,
  13. MarkdownPreviewModule
  14. ],
  15. })
  16. export class PageConsultComponent implements OnInit {
  17. constructor() {}
  18. ngOnInit(): void {
  19. }
  20. // 用户输入提示词
  21. leixing:string = " 心理问题类型:"
  22. leixingInput(ev:any){
  23. this.leixing = ev.detail.value;
  24. }
  25. // 用户输入提示词
  26. userPrompt:string = "请详细描述你的情况:"
  27. promptInput(ev:any){
  28. this.userPrompt = ev.detail.value;
  29. }
  30. // 属性:组件内用于展示消息内容的变量
  31. responseMsg:any = ""
  32. // 方法:实例化completion对象,传入消息数组,并订阅生成的可观察对象。
  33. isComplete:boolean = false; // 定义完成状态属性,用来标记是否补全完成
  34. sendMessage(){
  35. console.log("create")
  36. let PromptTemplate = `
  37. 您作为一名专业的${this.leixing}智能心理咨询师,请您根据用户描述的情况,给出初步的判断,并给出一些详细的建议。'
  38. 以下是用户的口述:${this.userPrompt}
  39. `
  40. let completion = new FmodeChatCompletion([
  41. {role:"system",content:""},
  42. {role:"user",content:this.userPrompt}
  43. ])
  44. completion.sendCompletion().subscribe((message:any)=>{
  45. // 打印消息体
  46. console.log(message.content)
  47. // 赋值消息内容给组件内属性
  48. this.responseMsg = message.content
  49. if(message?.complete){ // 判断message为完成状态,则设置isComplete为完成
  50. this.isComplete = true
  51. }
  52. })
  53. }
  54. }