123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import { ModalController } from "@ionic/angular";
- import { FmodeChatCompletion } from "fmode-ng";
- import { extactAndParseJsonFromString } from "src/agent/agent.json";
- import { AgentTaskStep } from "src/agent/agent.task";
- export function TaskGeneratePrompt(options: {
- modalCtrl: ModalController
- shareData: any
- }
- ): AgentTaskStep {
- let task2 = new AgentTaskStep({ title: "穿搭思路生成", shareData: options.shareData.userProfile })
- task2.handle = () => {
- console.log("任务2:穿搭思路生成(Prompt)执行中...");
- return new Promise(async (resolve, reject) => {
- //获取当前任务集共享数据:userProfile
- const userProfileJson = options.shareData.userProfileJson;
- let PromptTemplate = `您是一名专业的服装搭配师,根据客户的身高、体重等数据,为客户推荐适合TA的穿搭方案。
- 客户的要求如下:${userProfileJson}
- 结果以JSON格式表示:(以下是JSON格式的参考方案)
- {
- "方案名":"方案名(例如:夏日小清新)",
- "性别":"性别",
- "年龄":"年龄",
- ......
- (传入的json中有什么属性就翻译一下,补上什么)
- "schemeList":{
- "上衣":["name":"上衣特征描述(简洁,例如:轻薄短袖衬衫)","desc":"穿搭思路描述(具体,例如:选择一款轻薄透气的短袖衬衫,颜色可以是浅蓝色或淡灰色,搭配细条纹或小格纹图案,以增加层次感。衬衫的剪裁要稍微宽松,以便于活动,适合办公室环境。)"],
- "下装":["name":"下装特征描述","desc":"穿搭思路描述"],
- ......
- }
- }
- 1.设计思路一定要有理有逻辑,并且要详细。
- 2.身上所有的衣服从里到外全部写出来加入schemeList中,例如冬季穿衣较多,从里到外有内衬衣、毛衣、夹克、棉袄、外套等。
- 这部分你能想得到的都要写出来。但是不要完全不符合逻辑。例如又穿了外套,外套里面又穿了外套,这种不符合逻辑的就不要写。
- 3.不要写笼统的“上衣”“下装”“配饰”等这种广泛的分类词条,要写例如“裤子”“棉毛衫”“项链”“围巾”等具体的服装类型的词条。
- 4.一定要注重用户的customDesc自定义描述,他们的意见极度重要,一定要体现出来。
- `;
- let completion = new FmodeChatCompletion([
- { role: "system", content: "" },
- { role: "user", content: PromptTemplate }
- ])
- completion.sendCompletion().subscribe((message: any) => {
- if (task2.progress < 0.3) {
- task2.progress += 0.003
- }
- if (task2.progress >= 0.3 && task2.progress <= 0.8) {
- task2.progress += 0.002
- }
- if (task2.progress >= 0.8) {
- task2.progress += 0.001
- }
- // 打印消息
- console.log(message.content)
- // 赋值消息内容给任务集共享数据
- if(message.complete){ // 判断message为完成状态,则设置isComplete为完成
- options.shareData.designPrompt=extactAndParseJsonFromString(message.content)
- task2.progress = 1;
- console.log(options.shareData);
- resolve(true);
- }
- })
- })
- }
- return task2;
- }
|