inquiry.component.ts 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { CommonModule } from '@angular/common';
  2. import { Component, OnInit } from '@angular/core';
  3. import { IonCard, IonCardHeader, IonCardTitle, IonCardContent } from '@ionic/angular/standalone';
  4. import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone';
  5. import { IonTextarea, IonButton,IonInput } from "@ionic/angular/standalone";
  6. import { DalleOptions, ImagineWork, FmodeChatCompletion } from 'fmode-ng';
  7. @Component({
  8. selector: 'app-inquiry',
  9. templateUrl: './inquiry.component.html',
  10. styleUrls: ['./inquiry.component.scss'],
  11. standalone: true,
  12. imports: [
  13. IonHeader, IonToolbar, IonTitle, IonContent,
  14. IonButton,
  15. IonInput,
  16. IonTextarea,
  17. IonCard,
  18. IonCardHeader,
  19. IonCardTitle,
  20. IonCardContent,
  21. CommonModule
  22. ],
  23. })
  24. export class InquiryComponent implements OnInit {
  25. userPrompt:string = ""
  26. promptInput(ev:any){
  27. this.userPrompt = ev.detail.value;
  28. }
  29. imagineWork:ImagineWork|undefined
  30. images:Array<string> = []
  31. constructor(
  32. ){
  33. // 示例任务,自己生成图片后请存储新的ID
  34. this.imagineWork = new ImagineWork("4mPR0IW1i5");
  35. this.imagineWork.fetchTask().then(work=>{
  36. this.images = this.imagineWork?.images || [];
  37. })
  38. }
  39. PictureDescResult:string = `` // 画面描述结果
  40. async createImage(){
  41. this.imagineWork = new ImagineWork();
  42. // 文本生成
  43. let PromptTemplate = `您是一名专业的美术画家,请您根据症状描述,将其描述的症状等用最简短的语言概括,直接画出出该症状的相应图
  44. 症状如下:
  45. ${this.userPrompt}
  46. `
  47. let completion = new FmodeChatCompletion([
  48. {role:"system",content:""},
  49. {role:"user",content:PromptTemplate}
  50. ])
  51. completion.sendCompletion().subscribe((message:any)=>{
  52. // 打印消息体
  53. console.log(message.content)
  54. // 赋值消息内容给组件内属性
  55. this.PictureDescResult = message.content
  56. if(message?.complete){ // 判断message为完成状态,则设置isComplete为完成
  57. // 图片生成
  58. let PicturePrompt = `${this.PictureDescResult}\n`
  59. let options:DalleOptions = {prompt:PicturePrompt}
  60. this.imagineWork?.draw(options).subscribe(work=>{
  61. console.log("imagineWork",work?.toJSON())
  62. console.log("images",work?.get("images"))
  63. if(work?.get("images")?.length){
  64. this.images = work?.get("images");
  65. }
  66. })
  67. }
  68. })
  69. }
  70. trackImage(index: number, imageUrl: string) {
  71. return imageUrl; // 返回图像URL作为跟踪标识
  72. }
  73. ngOnInit() {}
  74. }