import { AgentTaskStep } from 'src/agent/agent.task'; import { getUserInput } from 'src/agent/agent.input'; import { ModalController } from '@ionic/angular/standalone'; import { FmodeChatCompletion } from 'fmode-ng'; export function TaskPoemPictureDesc(options:{ modalCtrl:ModalController shareData:any} ):AgentTaskStep{ let task1 = new AgentTaskStep({title:"意境分析",shareData:options.shareData}) task1.handle = ()=>{ return new Promise(async (resolve,reject)=>{ // 获取用户输入的诗词 let userInput = await getUserInput(options.modalCtrl,{fieldsArray:[ {name:"诗文内容",type:"text",desc:"诗文句子或段落"} ]}); console.log("已获取用户输入:",userInput) if(userInput){ console.log("已获取诗文内容:",userInput['诗文内容']) } if(!userInput?.['诗文内容']){ task1.error = "缺少诗文内容,请重新开始" resolve(false); } // 文本生成 let PromptTemplate = `您是一名专业的美术画家,请您根据古诗文的内容,将其描述的画面、场景、人物、物品等用最简短的语言表达,直接写出画面,并且以中国的古风意境为主 诗文如下: ${userInput['诗文内容']} ` let completion = new FmodeChatCompletion([ {role:"system",content:""}, {role:"user",content:PromptTemplate} ]) completion.sendCompletion().subscribe((message:any)=>{ if(task1.progress < 0.5){ task1.progress += 0.1 } if(task1.progress >= 0.5){ task1.progress += 0.01 } // 打印消息体 // console.log(message.content) // 赋值消息内容给组件内属性 options.shareData.PictureDescResult = message.content if(message.complete){ // 判断message为完成状态,则设置isComplete为完成 task1.progress = 1 resolve(true) } }) }) } return task1 }