import { Component, OnInit } from '@angular/core'; import {IonHeader, IonToolbar, IonTitle,IonInput, IonContent,IonButton, IonIcon } from '@ionic/angular/standalone'; import { addIcons } from 'ionicons'; import { chevronBack,heart } from 'ionicons/icons'; import { Router } from '@angular/router'; import { FmodeChatCompletion,MarkdownPreviewModule } from 'fmode-ng'; import { CommonModule } from '@angular/common'; // 添加 CommonModule import { FormsModule } from '@angular/forms'; // 添加 FormsModule @Component({ selector: 'app-page-companion', templateUrl: './page-companion.component.html', styleUrls: ['./page-companion.component.scss'], standalone: true, imports:[IonHeader, CommonModule, FormsModule, IonToolbar, IonTitle, IonContent,IonButton,IonInput, IonIcon,MarkdownPreviewModule] }) export class PageCompanionComponent implements OnInit { userInput: string = ''; // 用户输入内容 messages: { role: string, content: string }[] = []; // 消息列表 // 用户输入变化 promptInput(ev: any) { this.userInput = ev.detail.value; } // 方法:实例化completion对象,传入消息数组,并订阅生成的可观察对象。 isComplete:boolean = false; // 定义完成状态属性,用来标记是否补全完成 // 发送消息 sendMessage() { if (!this.userInput.trim()) return; // 确保输入不为空 this.messages.push({ role: 'user', content: this.userInput }); console.log("create") // 调用 AI 接口 let promptTemplate = ` 请你先分析用户的口述,如果是明显需要心理咨询帮助的意思,那么请你作为专业的心理咨询师,根据用户的描述提供情感疏导和建议;如果用户只是简单的日常聊天,比如吐槽、唠嗑,那么请你作为一个朋友的形象,根据的用户的消息提供友好并有情绪价值的回复。 以下是用户的口述:${this.userInput} `; let completion = new FmodeChatCompletion([ { role: 'system', content: '' }, { role: 'user', content: promptTemplate } ]); completion.sendCompletion().subscribe((message: any) => { console.log(message.content) // 赋值消息内容给组件内属性 this.messages = message.content this.messages.push({ role: 'ai', content: message.content }); if(message?.complete){ // 判断message为完成状态,则设置isComplete为完成 this.isComplete = true this.userInput = ''; } })} constructor(private router: Router) { addIcons({chevronBack,heart}); } goTab1(){ this.router.navigate(['tabs/tab1']); } ngOnInit() {} }