page-inquiry.component.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { Component, OnInit } from '@angular/core';
  2. import { IonHeader, IonToolbar, IonTitle, IonContent, IonButton, IonTextarea, IonInput } from '@ionic/angular/standalone';
  3. /** 引用:从fmode-ng库引用FmodeChatCompletion类 */
  4. import { FmodeChatCompletion } from 'fmode-ng';
  5. @Component({
  6. selector: 'app-page-inquiry',
  7. templateUrl: './page-inquiry.component.html',
  8. styleUrls: ['./page-inquiry.component.scss'],
  9. standalone: true,
  10. imports: [IonHeader, IonToolbar, IonTitle, IonContent, IonButton,IonTextarea,IonInput],
  11. })
  12. export class PageInquiryComponent implements OnInit {
  13. constructor() {}
  14. ngOnInit(){}
  15. // 用户输入提示词
  16. keshi:string = "门诊"
  17. keshiInput(ev:any){
  18. this.keshi = ev.detail.value;
  19. }
  20. // 用户输入提示词
  21. userPrompt:string = "请描述您的症状"
  22. promptInput(ev:any){
  23. this.userPrompt = ev.detail.value;
  24. }
  25. // 属性:组件内用于展示消息内容的变量
  26. responseMsg:any = ""
  27. // 方法:实例化completion对象,传入消息数组,并订阅生成的可观察对象。
  28. sendMessage(){
  29. console.log("create")
  30. let PromptTemplate = `
  31. 您作为一名专业的${this.keshi}医生,请您根据用户描述的症状,给出初步的诊断,并给出一些建议。
  32. 以下是用户的口述:${this.userPrompt}
  33. `
  34. let completion = new FmodeChatCompletion([
  35. {role:"system",content:""},
  36. {role:"user",content:PromptTemplate}
  37. ])
  38. completion.sendCompletion().subscribe((message:any)=>{
  39. // 打印消息体
  40. console.log(message.content)
  41. // 赋值消息内容给组件内属性
  42. this.responseMsg = message.content
  43. })
  44. }
  45. }