一、目的
为了构建一个可用于香氛领域推荐和问答的bot,我们首先进行数据收集工作。收集的数据分为2个部分,1是香氛的基础知识。2是香氛的产品知识。基础知识可以用于微调LLM模型,产品知识可以用于RAG数据增强问答。
二、产品知识的数据收集工作
为了收集香氛的产品知识数据,我们选择从京东,天猫,香水世代获取数据。
京东,天猫,由于防范能力太强,我们选择半自动获取。我们需要将所需的商品页面保存为html文件,然后通过上传到我们开发的标注工具中,自动解析html文件,获取需要的字段,然后保存到数据库中。界面如下:
表结构如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| CREATE TABLE `Product` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品id', `name` varchar(255) DEFAULT NULL COMMENT '商品名称', `english` varchar(255) DEFAULT NULL COMMENT '商品英文名称', `brand` varchar(255) DEFAULT NULL COMMENT '品牌', `alias` varchar(255) DEFAULT NULL COMMENT '别名', `specs` varchar(255) DEFAULT NULL COMMENT '规格', `category` varchar(255) DEFAULT NULL COMMENT '类别', `price` float DEFAULT NULL COMMENT '价格', `fragrance_degree` varchar(255) DEFAULT NULL COMMENT '香味浓烈', `gender` varchar(255) DEFAULT NULL COMMENT '适用性别', `tone` varchar(255) DEFAULT NULL COMMENT '香调', `btone` varchar(255) DEFAULT NULL COMMENT '前调', `mtone` varchar(255) DEFAULT NULL COMMENT '中调', `atone` varchar(255) DEFAULT NULL COMMENT '后调', `fragrance` varchar(255) DEFAULT NULL COMMENT '香味', `scene` varchar(255) DEFAULT NULL COMMENT '场景', `distinct_smell` varchar(500) DEFAULT NULL COMMENT '明显的气味', `url` varchar(255) DEFAULT NULL COMMENT '网页url', `features` varchar(255) DEFAULT NULL COMMENT '特点', `introduce` text DEFAULT NULL COMMENT '简介', `image` varchar(255) DEFAULT NULL COMMENT '商品图片路径', `mht` varchar(255) DEFAULT NULL COMMENT 'mhtml文件路径', `create_time` datetime DEFAULT current_timestamp() COMMENT '创建时间', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8mb4 COMMENT='香氛商品';
|
香水世代我们选择全自动获取。
- 使用playwright获取数据。
- 根据品牌和品牌页的链接获取品牌下的上面,一页是10个商品,逐个自动点开获取每个商品的详情和图片信息。
- 自动点击下一页获取的10个商品,直至最后。
- 使用微信或微博关联账号缓存cookie信息。
- mongo临时存储爬取数据,同时方便实时检索爬取进度,当发现已爬取过的商品时,不在进行打开商品页面。
数据收集效果展示
接下来进行香氛的知识类数据收集和数据的整理
三、 LLM prompt和数据维度
Prompt:
你的名字是BeautyChat2.0,被xx科技有限公司开发,你是一个香氛领域的专家,能够深思熟虑并且专业的解答任何关于香氛的问 题,包括香氛知识和香氛产品推荐等,你的回答风格是有趣的,已经为你提供了一个关于香氛商品的文档,根据用户的问题选择合适的时机可以查看香氛商品库,香氛商品库的主要包括不同品牌的商品,每个商品包括了产品名称,规格,价格,适用性别,香调, 前中后调,香味,用户闻到香水时的香味感受,同时感受到的香味情绪,想象到的香味画面,合适的香味使用场景和香味特点以及商品的店铺链接。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| { "产品名称": "观夏三重茶", "英文名": "To summer Triple Tea", "别名": "观夏三重茶", "品牌": "观夏", "规格": "30ml", "价格": "498.0元", "浓度": "浓香水EDP", "适用性别": "中性香", "香调": "茶香木质调", "前调": "马黛茶 绿茶", "中调": "红茶 紫罗兰 茉莉花", "后调": "岩茶", "香味": "柑橘 清新辛辣 芳香植物 绿叶", "香味感受": "深沉,甜润,百搭,甜蜜,茶叶,龙井茶香,清凉,皮革,苦,干净,苦涩,柠檬,温柔,晚香玉露香,回甘,薄荷,茉莉花香,闻多了腻和晕,茉莉绿茶,微苦,好闻,木质,清冷绿意,清新自然,烟草,绿茶,淡雅香醇,茶味,茉莉花,甜美,清甜,醇厚,柑 橘,干净清爽", "香味情绪": "自然又纯粹,倦拥,治愈,有雅韵的气质,轻盈不沉闷,儒雅,感动,安稳又上头,舒展,混合着大自然清香,干净阳光,优雅", "香味画面": "情侣茶会,Miller Harris 莓果缪斯,电影画面,温暖,带有露水的阳光,远离城市喧嚣,帕尔玛之水 藏红拂晓,波斯 城堡,LE LABO 13,享受茶园纯天然香气,茶园,草木间闲庭信步,一片秘境,抚慰", "香味场景": "茶馆,炎热的夏天,外出,雨后树林,温和春日,夏季,摇篮,下雨潮湿的夜晚,庭院,休闲,绿叶系,路上闻到,没有城市喧嚣的地方,湿润的草地", "特点": "东方茶香,从茶山飘落到锁骨,呼吸之间,与茶同在。", "链接": "https://detail.tmall.com/item.htm?abbucket=11&id=676012504457&rn=760fb2aa967606ede8027516fab139b9&spm=a1z10.3-b-s.w4011-24426768373.139.5a6435d7t1Pawn&sku_properties=1626520:364672102;1626521:437624087" },
|
猜你想问的prompt
1 2 3 4 5 6 7 8 9 10 11 12
| 你是一个可以根据给定内容生成问题的机器人,下面是一对用户提问和回答内容,请根据用户提问和回答,请写出用户可能还想问的3个相关问题。返回的格式类似这样,每个问题是1行,开头用Q加上序号表示。Q1:xxx\nQ2:yyyy\Q3:zzzz。现在开始: 用户提问:你知道哪款香水的味道是橘子味吗 回答:噢,橘子的香味,那真是晴朗又可口哦!有款香水叫做“观夏昆仑煮雪”,它具有一丝丝的柑橘香味,在其他木质和芳香 植物调性的映衬下,给你的嗅觉带来一种清新辛辣的体验。想象这样一个场景:微风中带来凉爽的橘香,就像一个炎炎夏日的 避风港。使用这款香水,无疑会带来一股清新潇洒的气氛【13†source】。\n如果你想了解更多或者购买这款产品,可以点击这 个链接进行探寻:[观夏昆仑煮雪香水](https: 606ede8027516fab139b9&skuId=4859629692517&spm=a1z10.3-b-s.w4011-24426768373.74.5a6435d7t1Pawn)。开启橘子香氛之> 旅,你准备好了吗? 🍊✨ 输出示例: Q1: 这款香水的价格是多少? Q2: 除了橘子味道,还有哪些香调? Q3: 这款香水适合哪些场合佩戴
|
1 2 3 4 5
| 意图判断prompt const messages = [ { role: 'system', content: '根据用户的提问判断用户的聊天意图,如果涉及到了商品或香水,请返回是,否则返>回否。只返回是或否即可。' }, { role: 'user', content: `用户的提问: ${question}` } ]
|
四、测试问答效果
五、问答界面设计
- 当商品推荐时,支持返回的答案中涉及的商品信息,返回3个商品信息,非商品推荐时,不返回任何商品信息。
- 当给用户回答完商品相关问题的时候,返回猜你想问。
代码: https://github.com/johnson7788/openai-assistants-api-multi-user-sample
六、基于用户给定的图片进行问答