diff --git a/clothes_chatbot/real_estate_sales_data.txt b/clothes_chatbot/real_estate_sales_data.txt new file mode 100644 index 00000000..cc90a393 --- /dev/null +++ b/clothes_chatbot/real_estate_sales_data.txt @@ -0,0 +1,299 @@ +1. [客户问题] “这件衬衫看起来不错,但我不确定适不适合我。” + [销售回答] “我完全理解您的担忧。我们提供免费试穿服务,您可以试试这款衬衫,确保它与您的体型和风格完美匹配。” + +2. [客户问题] “这条裤子的价格有点高,你们能不能给个折扣?” + [销售回答] “我明白您关注价格的考量。但是考虑到我们的产品质量和设计,这个价格实际上是非常合理的。不过,如果您对其他款式感兴趣,我可以帮您找到一些更优惠的选择。” + +3. [客户问题] “我担心这件外套的质量不够好。” + [销售回答] “我们的外套采用了优质的材料,经过严格的质量控制。此外,我们还提供了一年的质量保证,如果您在使用过程中有任何问题,我们都会为您提供全额退款或换货。” + +4. [客户问题] “我对这款服装不是很了解,你能帮我介绍一下吗?” + [销售回答] “当然!这款服装是我们最畅销的产品之一。它采用了流行的设计和舒适的面料,非常适合各种场合穿着。让我向您详细介绍一下它的特点和穿着方式。” + +5. [客户问题] “我想要一套适合商务场合穿着的西装。” + [销售回答] “绝对没问题!我们有各种款式和颜色的西装供您选择。您想要传统的款式还是更时尚的设计?您的身形和偏好是什么?让我们一起找到最适合您的那一款。” + +6. [客户问题] “我对您们的退换货政策有些疑问。” + [销售回答] “我们有非常灵活的退换货政策,您可以放心购买。如果您对商品不满意或尺码不合适,我们接受无条件退货并提供全额退款。如果您更换其他商品,我们也会尽力满足您的需求。” + +7. [客户问题] “我对这款衣服的尺码是否准确有所疑问。” + [销售回答] “我们的尺码通常很准确,但每个品牌的尺码标准可能略有不同。为了确保您选择的尺码合适,我建议您测量一下自己的身体尺寸,或者您也可以在试穿时请我们的专业顾问为您提供帮助。” + +8. [客户问题] “我在其他地方看到了类似的产品价格更低,你们能否匹价?” + [销售回答] “我们真诚地感谢您对我们产品的关注,并理解您对价格的考量。尽管我们竭尽所能确保提供最具竞争力的价格,但我们也重视产品质量和服务。我们会尽最大努力为您提供更好的购物体验,包括提供专业的服务和优质的售后支持。” + +9. [客户问题] “我不太确定这件衣服的颜色是否适合我。” + [销售回答] “颜色是非常个人化的选择,我完全理解您的顾虑。如果您愿意,我可以为您提供一些搭配建议,或者您也可以试穿这件衣服,看看它在不同光线下的效果如何。” + +10. [客户问题] “我希望购买一套适合夏季运动的运动服。” + [销售回答] “夏季运动服需要轻薄透气,同时具备良好的排汗性能。我们有多种款式和材质的运动服可供选择,您可以根据您的喜好和运动类型来挑选。此外,我们的运动服还有防紫外线和快干功能,确保您在运动中保持舒适。” + +11. [客户问题] “我对这个品牌不太了解,它的品质如何?” + [销售回答] “我们的品牌在行业内拥有良好的声誉,产品质量得到了广泛认可。我们注重细节和工艺,采用优质的材料,确保每件产品都能满足客户的需求。此外,我们还提供了长期的质量保证,您可以放心购买。” + +12. [客户问题] “我对这种款式的服装不太确定,它适合我的年龄段吗?” + [销售回答] “我们的服装款式通常设计灵活,适合各个年龄段的顾客。无论您是年轻时尚的消费者还是成熟稳重的顾客,我们都有适合您的款式。让我为您推荐一些适合您年龄段的服装。” + +13. [客户问题] “我有点担心这款鞋子的舒适度。” + [销售回答] “舒适度是我们产品设计的重要考量因素之一。这款鞋子采用了柔软舒适的内衬和符合人体工学的设计,确保您在长时间穿着时感到舒适。另外,我们也提供了换货服务,如果您在购买后觉得不舒适,可以随时来换一双合适的。” + +14. [客户问题] “我需要一套适合特殊场合穿着的礼服。” + [销售回答] “特殊场合需要特殊的服装。我们有多款精致的礼服供您选择,无论是参加婚礼、晚宴还是其他重要场合,我们都能为您找到完美的礼服。让我们一起挑选出适合您风格和身形的款式。” + +15. [客户问题] “我希望购买一些时尚的配饰来搭配我的服装。” + [销售回答] “配饰是提升整体造型的重要元素。我们有各种风格的配饰,从经典款到潮流款,从项链、手镯到手包,应有尽有。让我们一起搭配出一个独特的个性造型。” + +16. [客户问题] “我是个穿衣比较保守的人,不太敢尝试新款式。” + [销售回答] “了解您的想法,但尝试新款式也是发现自己风格的一个机会。我们的专业顾问会根据您的喜好和身形为您推荐适合的款式,您可以试试看,也许会有惊喜呢。” + +17. [客户问题] “我需要一些适合在家休闲穿着的服装。” + [销售回答] “在家休闲也可以时尚。我们有多款舒适又时尚的休闲服装,适合您在家休闲、运动或者和朋友聚会。让我们一起挑选出适合您的家居时尚。” + +18. [客户问题] “我对这件外套的款式不太确定,你有没有其他推荐?” + [销售回答] “当然,我们有各种不同款式的外套供您选择。如果您对这件外套不太确定,我可以为您推荐一些类似但又有所不同的款式,也许您会找到更适合您的那一款。” + +19. [客户问题] “我需要购买一些适合办公室穿着的职业装。” + [销售回答] “办公室穿着需要既时尚又专业。我们有多种款式的职业装,包括西装、衬衫、裙子等,适合不同的职业环境和个人风格。让我为您推荐一些适合的职业装。” + +20. [客户问题] “我是个初学者,不太懂得如何搭配服装。” + [销售回答] “搭配服装需要一些技巧,但并不难掌握。我们的专业顾问可以为您提供搭配建议,帮助您挑选出合适的服装和配饰。您也可以参考我们的搭配样式或者时尚杂志,了解一些流行的搭配技巧。” + +21. [客户问题] “我想购买一些适合运动健身穿着的服装。” + [销售回答] “运动健身需要舒适透气的服装,同时具备良好的伸缩性和吸汗排湿功能。我们有各种款式的运动服装,包括运动T恤、运动裤、运动文胸等,保证您在运动中保持舒适和自信。” + +22. [客户问题] “我在找一些适合季节交替穿着的过渡服装。” + [销售回答] “季节交替时穿着确实需要一些特别的考虑。我们有一些适合过渡季节穿着的服装,既能保暖又不会过于厚重,确保您在季节转换时依然保持时尚和舒适。” + +23. [客户问题] “我需要一些适合正式场合穿着的礼服。” + [销售回答] “正式场合需要着装得体且庄重。我们有多款精致的礼服供您选择,适合各种正式场合,如婚礼、晚宴、庆典等。让我们一起挑选出适合您的那一款。” + +24. [客户问题] “我对这款服装的面料有些担心,是否容易皱?” + [销售回答] “这款服装采用了特殊的面料,具有抗皱功能,即使长时间穿着或者折叠放置,也不容易出现皱纹。您可以放心选择,无需担心服装的整洁度。” + +25. [客户问题] “我想购买一些适合旅行穿着的服装,舒适又方便携带。” + [销售回答] “旅行需要舒适便捷的服装,我们有多款适合旅行穿着的服装,面料柔软舒适,同时设计考虑了便捷性和多功能性,让您在旅途中保持时尚又不失舒适。” + +26. [客户问题] “我是个对时尚比较敏感的人,有没有一些最新款式的推荐?” + [销售回答] “我们的产品团队时刻关注最新的时尚趋势,为您提供最新款式的服装和配饰。您可以向我们的专业顾问咨询最新款式,或者浏览我们的时尚资讯,了解最新的时尚潮流。” + +27. [客户问题] “我对这个颜色不太确定,有没有其他选择?” + [销售回答] “我们有多种颜色可供选择,如果您对这个颜色不太确定,我可以为您推荐其他颜色的款式,让您有更多选择的余地。您可以根据自己的喜好和场合来挑选合适的颜色。” + +28. [客户问题] “我是个大号尺码,能不能给我推荐一些适合我的款式?” + [销售回答] “我们有多款大号尺码的服装,设计考虑了舒适性和美观性。您可以选择适合自己身形的款式,我们也可以根据您的需求为您提供专业的搭配建议,确保您穿着得体且自信。” + +29. [客户问题] “我想要购买一些适合休闲周末穿着的服装。” + [销售回答] “周末休闲需要舒适随意的服装,我们有多款适合休闲周末穿着的服装,无论是T恤、牛仔裤还是运动裤,都能让您在周末放松自在地享受时光。” + +30. [客户问题] “我是个经常参加社交活动的人,需要一些适合社交场合穿着的服装。” + [销售回答] “社交场合需要着装得体且引人注目,我们有多款适合社交场合穿着的服装,无论是晚礼服、派对装还是优雅连衣裙,都能让您在社交活动中脱颖而出。” + +31. [客户问题] “我对这种款式的裤子不太了解,能不能给我介绍一下?” + [销售回答] “当然,这款裤子是我们的热卖款式之一。它采用优质面料制成,舒适透气,同时设计简约时尚。无论是日常穿着还是正式场合,都非常合适。让我为您详细介绍一下它的特点和穿着方式。” + +32. [客户问题] “我是个对环保比较关注的人,你们的产品是否符合环保标准?” + [销售回答] “我们非常重视环保问题,我们的产品制造过程中采用环保材料和工艺,符合相关的环保标准和认证。我们也在不断努力优化生产过程,减少对环境的影响,保护地球家园。” + +33. [客户问题] “我对这个品牌的信誉不太了解,能不能介绍一下?” + [销售回答] “我们的品牌拥有多年的历史,以其优质的产品和良好的服务享誉业内。我们注重产品质量和客户体验,始终站在客户的角度考虑问题,赢得了广大客户的信赖和支持。” + +34. [客户问题] “我对穿衣风格不太确定,你能给我一些建议吗?” + [销售回答] “当然,我们的专业顾问可以根据您的个人喜好和身形为您提供搭配建议。您也可以参考我们的时尚资讯和搭配样式,了解一些流行的穿衣技巧和搭配方法。” + +35. [客户问题] “我想要购买一些适合夏季穿着的清凉服装。” + [销售回答] “夏季需要清凉透气的服装,我们有多款适合夏季穿着的清凉服装,如轻薄透气的衬衫、连衣裙、短裤等,让您在炎热的夏季依然保持舒适和时尚。” + +36. [客户问题] “我需要一些适合参加婚礼穿着的礼服。” + [销售回答] “参加婚礼需要着装得体且庄重,我们有多款精致的礼服供您选择,无论是晚礼服、长裙还是短裙,都能让您在婚礼上独领风骚。” + +37. [客户问题] “我对这种款式的衬衫不太了解,能不能给我介绍一下?” + [销售回答] “当然,这款衬衫是我们的新品推荐。它采用了优质的面料和精湛的工艺,舒适透气,同时设计简约时尚。无论是商务场合还是休闲时尚,都非常合适。让我为您详细介绍一下它的特点和穿着方式。” + +38. [客户问题] “我对这种款式的鞋子的耐穿程度有些疑问。” + [销售回答] “我们的鞋子采用了耐磨耐用的材料和结实的工艺,经过严格的质量检验,确保了其耐穿程度。此外,我们还提供了一定期限的质保服务,让您购买放心,使用更放心。” + +39. [客户问题] “我是个对服装品质要求比较高的人,你们的产品质量如何?” + [销售回答] “我们以提供高品质的产品为宗旨,严格把关产品的每一个环节,从原材料的选择到生产工艺的控制,都力求做到最好。我们的产品经过多道工序的精细加工,确保了品质可靠,让您放心购买。” + +40. [客户问题] “我想要购买一些适合冬季穿着的保暖服装。” + [销售回答] “冬季需要保暖舒适的服装,我们有多款适合冬季穿着的保暖服装,如羽绒服、羊毛大衣、毛衣等,保证您在寒冷的冬季依然感到温暖和舒适。” + +41. [客户问题] “我对这个款式的衣服的设计有些疑问,能不能给我一些建议?” + [销售回答] “当然,我们的专业顾问可以为您提供针对性的搭配建议,帮助您了解这个款式的设计特点以及适合的搭配方式。您也可以试穿一下,亲身感受这款衣服的设计美感。” + +42. [客户问题] “我希望购买一些适合在办公室穿着的职业套装。” + [销售回答] “办公室穿着需要既专业又时尚,我们有多款适合办公室穿着的职业套装,包括西装套装、裙套装等,保证您在办公室中穿着得体且自信。” + +43. [客户问题] “我对这个品牌的服装尺码是否偏小?” + [销售回答] “我们的服装尺码通常符合标准尺码,但每个人的身形有所不同,可能会有些许差异。如果您对尺码有疑问,我们建议您参考尺码表进行选择,或者试穿一下,确保选购到合适的尺码。” + +44. [客户问题] “我需要一些适合商务旅行穿着的服装。” + [销售回答] “商务旅行需要舒适实用的服装,我们有多款适合商务旅行穿着的服装,如轻便防皱的衬衫、多口袋设计的外套、舒适伸缩的裤子等,让您在商务旅行中轻松自如。” + +45. [客户问题] “我对这个款式的颜色有些犹豫,能不能给我一些建议?” + [销售回答] “颜色选择是个人品味的体现,但也可以根据个人肤色、场合和搭配需要来进行选择。我们的专业顾问可以根据您的需求为您提供适合的颜色建议,帮助您挑选出最适合您的颜色。” + +46. [客户问题] “我对这个款式的衣服的款式感兴趣,但我不确定它是否适合我的年龄。” + [销售回答] “我们的款式设计通常是多样化的,适合不同年龄段的顾客。这个款式可能会更注重时尚和个性,但并不代表它只适合特定年龄段的人群。您可以试穿一下,看看它是否符合您的个人风格。” + +47. [客户问题] “我想要一些适合正式活动穿着的服装,但我对礼服的款式不太了解。” + [销售回答] “正式活动需要着装得体且庄重,我们有多款适合正式活动穿着的礼服,包括长款晚礼服、修身连衣裙等,让您在正式场合中光彩照人。” + +48. [客户问题] “我对这件衣服的面料有些敏感,你能介绍一下它的成分吗?” + [销售回答] “当然,请放心。这件衣服的面料采用了优质的天然纤维,如棉、丝、羊毛等,舒适柔软,不易引起过敏。如果您对特定面料有敏感,我们也可以为您推荐其他不含有敏感成分的款式。” + +49. [客户问题] “我是个对服装款式要求比较高的人,有没有一些时尚的新款推荐?” + [销售回答] “我们的产品团队时刻关注时尚潮流,推出了多款时尚新款。您可以向我们的专业顾问咨询最新款式,或者浏览我们的时尚资讯和搭配样式,了解最新的时尚趋势和款式推荐。” + +50. [客户问题] “我是个比较注重细节的人,对服装的做工要求比较高,你们的产品做工如何?” + [销售回答] “我们的产品注重每一个细节,从面料的选择到裁剪的工艺,都力求做到精益求精。我们的制作团队有丰富的经验,对每一件产品都进行严格的质量控制,确保做工精细,品质优良。” + +51. [客户问题] “我希望购买一些适合户外运动穿着的服装。” + [销售回答] “户外运动需要舒适透气且耐穿的服装,我们有多款适合户外运动穿着的服装,如运动T恤、运动裤、软壳外套等,保证您在户外活动中享受乐趣。” + +52. [客户问题] “我对这个款式的裙子不太了解,能不能给我介绍一下?” + [销售回答] “当然,请让我为您介绍一下。这款裙子是我们的新品推荐,设计时尚简约,面料舒适柔软,非常适合各种场合穿着,无论是日常休闲还是正式活动,都能展现出您的优雅气质。” + +53. [客户问题] “我想要购买一些适合春季穿着的服装,你们有什么推荐?” + [销售回答] “春季穿着需要舒适轻盈的服装,我们有多款适合春季穿着的服装,如轻薄外套、清爽衬衫、裙装等,让您在春季时尚又舒适。” + +54. [客户问题] “我对这个品牌的服装款式不太了解,能不能介绍一下?” + [销售回答] “当然,请允许我为您介绍一下我们的品牌。我们的品牌注重时尚与品质的结合,每一款服装都经过精心设计和制作,旨在为客户提供优质的时尚体验。我们有多种款式的服装,满足您不同的需求和喜好。” + +55. [客户问题] “我对这种款式的衣服的穿着效果有些犹豫,你能为我做个展示吗?” + [销售回答] “当然,我可以为您提供一些搭配建议,并为您展示这款衣服的穿着效果。您也可以试穿一下,亲自感受一下这款衣服的质地和舒适度。” + +56. [客户问题] “我希望购买一些适合运动休闲穿着的服装,有什么推荐吗?” + [销售回答] “我们有多款适合运动休闲穿着的服装,如运动T恤、休闲裤、运动套装等,舒适透气,让您在运动和休闲时都能保持时尚和舒适。” + +57. [客户问题] “我对这个品牌的售后服务有些担心,能不能保证售后质量?” + [销售回答] “我们非常重视售后服务,为客户提供满意的购物体验是我们的责任。我们承诺提供完善的售后服务,包括退换货政策、维修保养等,确保客户购买的每一件产品都能得到及时、高效的售后支持。” + +58. [客户问题] “我想要购买一些适合夏季度假穿着的服装,有什么推荐吗?” + [销售回答] “夏季度假需要轻盈清爽的服装,我们有多款适合夏季度假穿着的服装,如沙滩裙、泳衣、遮阳帽等,让您在度假中尽情享受阳光与海风。” + +59. [客户问题] “我对这个款式的鞋子的防滑性有些担心,你能给我介绍一下吗?” + [销售回答] “当然,请放心。这款鞋子采用了防滑设计,鞋底材料具有良好的抓地力,适合各种地面环境穿着,保证您在行走中更加安全和稳定。” + +60. [客户问题] “我是个对时尚趋势比较关注的人,有没有一些潮流款推荐?” + [销售回答] “我们有多款潮流时尚的服装款式,符合您对时尚的追求。您可以向我们的专业顾问咨询最新的潮流款式,或者浏览我们的时尚资讯和搭配样式,了解最新的时尚趋势和潮流推荐。” + +61. [客户问题] “我对这种款式的裤子的修身效果不太确定,你能给我提供一些建议吗?” + [销售回答] “当然,我们的专业顾问可以为您提供针对性的搭配建议,帮助您了解这款裤子的修身效果以及如何搭配出最佳的穿着效果。您也可以试穿一下,亲自感受一下裤子的修身效果。” + +62. [客户问题] “我想要购买一些适合户外活动穿着的功能性服装,有什么推荐吗?” + [销售回答] “户外活动需要具备一定的功能性,我们有多款适合户外活动穿着的功能性服装,如防水外套、透气速干衣、多口袋工装裤等,让您在户外活动中享受自然风光。” + +63. [客户问题] “我是个对品牌口碑比较看重的人,你们的品牌口碑如何?” + [销售回答] “我们的品牌具有良好的口碑和信誉,在行业内拥有广泛的认知度和影响力。我们注重产品质量和客户体验,始终站在客户的角度考虑问题,赢得了广大客户的信赖和支持。” + +64. [客户问题] “我想要购买一些适合家庭聚会穿着的休闲服装,有什么推荐吗?” + [销售回答] “家庭聚会需要舒适休闲的服装,我们有多款适合家庭聚会穿着的休闲服装,如休闲T恤、休闲裤、运动外套等,让您在家庭聚会中轻松自在。” + +65. [客户问题] “我对这个品牌的产品价格有些担心,能不能给我介绍一下价格范围?” + [销售回答] “我们的产品价格根据款式和材质的不同而有所差异,价格范围也比较灵活。我们有适合不同消费水平的产品线,您可以根据自己的需求和预算选择适合的产品。” + +66. [客户问题] “我需要一些适合上班穿着的干练职业装,你们有什么推荐吗?” + [销售回答] “上班穿着需要既干练又得体,我们有多款适合上班穿着的职业装,如西装套装、职业裙装、商务衬衫等,让您在工作中展现出专业的形象。” + +67. [客户问题] “我对这个款式的外套的保暖性有些疑问,你能介绍一下吗?” + [销售回答] “这款外套采用了保暖性能较好的面料,内部可能还有保暖填充物,确保在寒冷的天气中保持温暖。您也可以选择适合的内衬来增加保暖效果,让您在冬季穿着更加舒适。” + +68. [客户问题] “我对这个款式的服装的适合场合有些不清楚,你能给我一些建议吗?” + [销售回答] “当然,请告诉我您打算穿着这件服装的场合,我可以为您提供针对性的搭配建议,帮助您挑选出适合的场合穿着。” + +69. [客户问题] “我对这个款式的衬衫的透气性有些疑问,你能介绍一下吗?” + [销售回答] “这款衬衫采用了透气性较好的面料,能够有效地排汗散热,保持衣服内部的干爽舒适。同时,它的设计也考虑到了通风透气的需求,让您在炎热的天气中依然感到清爽。” + +70. [客户问题] “我是个比较注重舒适度的人,你能给我推荐一些舒适度较高的服装吗?” + [销售回答] “当然,我们有多款舒适度较高的服装,如棉质T恤、羊毛衫、弹力裤等,面料柔软舒适,剪裁合身,让您在穿着时感到舒适自在。” + +71. [客户问题] “我对这个品牌的定位不太清楚,能不能介绍一下?” + [销售回答] “我们的品牌定位于提供高品质、时尚且实用的服装和配饰,满足现代人对时尚生活的追求。我们的产品注重设计与品质的结合,既有时尚感又具有实用性,适合各种场合穿着。” + +72. [客户问题] “我对这种款式的裙子的长度有些疑问,你能介绍一下吗?” + [销售回答] “这款裙子的长度设计通常是根据流行趋势和穿着场合而定的。如果您对长度有特殊需求,我们也可以为您提供定制服务,根据您的要求来定制裙子的长度,确保完美贴合您的需求。” + +73. [客户问题] “我想要购买一些适合约会穿着的服装,你有什么推荐吗?” + [销售回答] “约会穿着需要既有个性又具有魅力,我们有多款适合约会穿着的服装,如性感连衣裙、时尚牛仔裤、迷人裙装等,让您在约会中散发迷人魅力。” + +74. [客户问题] “我对这个款式的外套的防水性能有些疑问,你能介绍一下吗?” + [销售回答] “这款外套采用了防水面料或者防水工艺,能够有效地阻挡雨水的渗透,保持衣服内部的干燥。同时,它的设计也考虑到了透气性,让您在防水的同时依然感到舒适。” + +75. [客户问题] “我希望购买一些适合正式场合穿着的礼服,有什么推荐吗?” + [销售回答] “正式场合需要庄重得体的礼服,我们有多款适合正式场合穿着的礼服,如晚礼服、宴会长裙、高贵连衣裙等,让您在正式场合中尽显风采。” + +76. [客户问题] “我对这个品牌的可持续发展理念感兴趣,你能介绍一下吗?” + [销售回答] “我们的品牌致力于可持续发展,采取了一系列措施来减少对环境的影响,如使用环保材料、倡导循环利用、减少能源消耗等。我们希望通过这些举措为环境保护做出贡献,同时提供优质的产品和服务。” + +77. [客户问题] “我希望购买一些适合运动健身穿着的服装,有什么推荐吗?” + [销售回答] “运动健身需要舒适透气且具有弹性的服装,我们有多款适合运动健身穿着的服装,如运动上衣、运动裤、运动内衣等,让您在运动中保持舒适和自由。” + +78. [客户问题] “我对这个品牌的历史和文化背景感兴趣,你能介绍一下吗?” + [销售回答] “我们的品牌拥有悠久的历史和丰富的文化背景,深受消费者的喜爱和信赖。我们始终秉承着品质至上、服务至上的理念,不断创新和发展,成为了行业的领军品牌。” + +79. [客户问题] “我对这个款式的衣服的耐洗性有些疑问,你能介绍一下吗?” + [销售回答] “这款衣服采用了耐洗的面料和精湛的工艺,经过多次洗涤仍能保持原有的颜色和形状,不易褪色和变形。我们也提供了清洗说明,让您更好地保养衣服。” + +80. [客户问题] “我想要购买一些适合旅行穿着的服装,有什么推荐吗?” + [销售回答] “旅行需要舒适实用的服装,我们有多款适合旅行穿着的服装,如休闲T恤、防晒衬衫、轻便裤装等,让您在旅途中轻松自在。” + +81. [客户问题] “我对这个品牌的社会责任感兴趣,你能介绍一下吗?” + [销售回答] “我们的品牌积极承担社会责任,参与各种公益活动和慈善事业,致力于推动社会的可持续发展和公益事业的进步。我们希望通过自身的努力为社会贡献一份力量。” + +82. [客户问题] “我想要购买一些适合办公室穿着的正装,有什么推荐吗?” + [销售回答] “办公室穿着需要既庄重得体又舒适自在,我们有多款适合办公室穿着的正装,如职业西装、商务裙装、正装衬衫等,让您在工作中展现出专业的形象。” + +83. [客户问题] “我对这种款式的裤子的伸缩性有些疑问,你能介绍一下吗?” + [销售回答] “这款裤子采用了伸缩性较好的面料,具有一定的弹性,穿着舒适自如。它适合各种活动场合穿着,不会束缚您的活动。” + +84. [客户问题] “我对这个品牌的产品质量有些担心,你能保证产品的质量吗?” + [销售回答] “我们对产品质量非常重视,所有产品都经过严格的质量检验和测试,确保符合标准和客户的要求。我们也提供了售后服务,让您购买放心、使用更放心。” + +85. [客户问题] “我对这个款式的衣服的颜色搭配有些犹豫,你有什么建议吗?” + [销售回答] “颜色搭配是个人品味的体现,但也可以根据肤色、场合和个人喜好来选择。我们的专业顾问可以为您提供针对性的颜色搭配建议,帮助您挑选出最适合您的颜色。” + +86. [客户问题] “我希望购买一些适合参加婚礼穿着的礼服,有什么推荐吗?” + [销售回答] “参加婚礼需要庄重得体的礼服,我们有多款适合参加婚礼穿着的礼服,如优雅晚礼服、精致长裙、高贵连衣裙等,让您在婚礼上成为焦点。” + +87. [客户问题] “我对这个品牌的产品创新性有些好奇,你能介绍一下吗?” + [销售回答] “我们的品牌注重产品的创新和设计,不断推出新款和新技术,满足客户不断变化的需求和时尚潮流。我们也鼓励客户提出建议和意见,共同促进产品的创新和发展。” + +88. [客户问题] “我对这种款式的外套的适用季节有些不确定,你能给我介绍一下吗?” + [销售回答] “这款外套通常适合春秋季穿着,具有保暖和防风的功能,适合温度稍微凉爽的季节。如果您对适用季节有特殊要求,我们也可以为您推荐适合的款式。” + +89. [客户问题] “我想要购买一些适合户外运动穿着的鞋子,有什么推荐吗?” + [销售回答] “户外运动需要舒适耐穿的鞋子,我们有多款适合户外运动穿着的鞋子,如徒步鞋、登山鞋、跑步鞋等,保证您在户外活动中脚感舒适,步履稳健。” + +90. [客户问题] “我对这个品牌的服装设计风格有些好奇,你能介绍一下吗?” + [销售回答] “我们的品牌的服装设计风格多样化,涵盖了时尚、休闲、正式、运动等不同风格,以满足不同客户的需求和喜好。我们不断推出新款式,保持与时俱进,让客户体验多样化的时尚魅力。” + +91. [客户问题] “我对这个款式的衣服的质地有些担心,你能介绍一下吗?” + [销售回答] “这款衣服采用了优质的面料,手感柔软舒适,具有良好的透气性和吸湿排汗性能,穿着舒适且质地优良。我们也提供了清洗说明,让您更好地保养衣服。” + +92. [客户问题] “我希望购买一些适合参加晚宴穿着的礼服,你有什么推荐吗?” + [销售回答] “参加晚宴需要优雅华丽的礼服,我们有多款适合参加晚宴穿着的礼服,如迷人晚礼服、精致长裙、高贵连衣裙等,让您在晚宴上成为焦点。” + +93. [客户问题] “我对这个品牌的服装尺码有些担心,你能介绍一下吗?” + [销售回答] “我们的服装尺码通常根据国际标准设计,同时也考虑了亚洲人的体型特点,确保尺码大小合适。您可以参考我们的尺码表来选择适合您的尺码,或者试穿一下以确保合适。” + +94. [客户问题] “我对这种款式的裙子的长度有些疑问,你能给我介绍一下吗?” + [销售回答] “这款裙子的长度设计通常是根据流行趋势和穿着场合而定的。我们提供了不同长度的裙子供客户选择,您可以根据自己的身高和个人喜好来选择合适的长度。” + +95. [客户问题] “我想要购买一些适合工作穿着的便携行李,有什么推荐吗?” + [销售回答] “工作穿着的便携行李需要轻便实用,我们有多款适合工作穿着的便携行李,如商务背包、手提包、公文包等,让您在工作中轻松携带必需品。” + +96. [客户问题] “我对这个款式的衬衫的款式有些疑问,你能介绍一下吗?” + [销售回答] “这款衬衫的款式通常是根据流行趋势和穿着需求设计的。我们提供了多种款式的衬衫,包括修身款、宽松款、直筒款等,您可以根据自己的喜好和穿着场合选择合适的款式。” + +97. [客户问题] “我对这个品牌的产品耐用性有些担心,你能介绍一下吗?” + [销售回答] “我们的产品注重品质和耐用性,采用了优质的材料和精湛的工艺,经过严格的质量检验和测试,确保产品的耐用性和稳定性。我们也提供了售后服务,让您购买放心、使用更放心。” + +98. [客户问题] “我想要购买一些适合商务旅行穿着的服装,有什么推荐吗?” + [销售回答] “商务旅行需要舒适得体的服装,我们有多款适合商务旅行穿着的服装,如商务西装、轻便衬衫、舒适裤装等,让您在商务旅行中展现出专业形象。” + +99. [客户问题] “我对这个款式的鞋子的舒适度有些担心,你能介绍一下吗?” + [销售回答] “这款鞋子通常采用了舒适性较好的材料和设计,具有良好的支撑和缓震效果,穿着舒适自如。您也可以试穿一下,亲自感受一下鞋子的舒适度。” + +100. [客户问题] “我想要购买一些适合冬季穿着的保暖服装,有什么推荐吗?” + [销售回答] “冬季穿着需要保暖舒适的服装,我们有多款适合冬季穿着的保暖服装,如羽绒服、羊毛大衣、保暖内衣等,让您在寒冷的冬天也能保持温暖。” diff --git a/clothes_chatbot/real_estates_sale/index.faiss b/clothes_chatbot/real_estates_sale/index.faiss new file mode 100644 index 00000000..e53e9f9b Binary files /dev/null and b/clothes_chatbot/real_estates_sale/index.faiss differ diff --git a/clothes_chatbot/real_estates_sale/index.pkl b/clothes_chatbot/real_estates_sale/index.pkl new file mode 100644 index 00000000..62a2bdc4 Binary files /dev/null and b/clothes_chatbot/real_estates_sale/index.pkl differ diff --git a/clothes_chatbot/sales.ipynb b/clothes_chatbot/sales.ipynb new file mode 100644 index 00000000..95ed52d7 --- /dev/null +++ b/clothes_chatbot/sales.ipynb @@ -0,0 +1,957 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "69032b4b-b031-4020-beb0-e8dfd22b660e", + "metadata": {}, + "source": [ + "# LangChain 实战:服装销售聊天机器人" + ] + }, + { + "cell_type": "markdown", + "id": "0f3e2d5a-c2ff-4faf-b153-d1751c25fae0", + "metadata": { + "tags": [] + }, + "source": [ + "## 使用 GPT-3.5-turbo 构造销售话术数据\n", + "\n", + "ChatGPT 分享链接:https://chat.openai.com/share/a990d5d9-bad6-4329-b7b7-a90219d39e6c\n", + "\n", + "\n", + "使用 ChatGPT 构造销售数据的 Prompt 示例:\n", + "\n", + "```\n", + "你是中国顶级的服装销售,现在培训职场新人,请给出100条实用的销售话术。\n", + "\n", + "每条销售话术以如下格式给出:\n", + "[客户问题]\n", + "[销售回答]\n", + "\n", + "```\n", + "\n", + "GPT-3.5-turbo 回复结果:\n", + "\n", + "```\n", + "1. [客户问题] “这件衬衫看起来不错,但我不确定适不适合我。”\n", + " [销售回答] “我完全理解您的担忧。我们提供免费试穿服务,您可以试试这款衬衫,确保它与您的体型和风格完美匹配。”\n", + "\n", + "2. [客户问题] “这条裤子的价格有点高,你们能不能给个折扣?”\n", + " [销售回答] “我明白您关注价格的考量。但是考虑到我们的产品质量和设计,这个价格实际上是非常合理的。不过,如果您对其他款式感兴趣,我可以帮您找到一些更优惠的选择。”\n", + "\n", + "3. [客户问题] “我担心这件外套的质量不够好。”\n", + " [销售回答] “我们的外套采用了优质的材料,经过严格的质量控制。此外,我们还提供了一年的质量保证,如果您在使用过程中有任何问题,我们都会为您提供全额退款或换货。”\n", + "\n", + "4. [客户问题] “我对这款服装不是很了解,你能帮我介绍一下吗?”\n", + " [销售回答] “当然!这款服装是我们最畅销的产品之一。它采用了流行的设计和舒适的面料,非常适合各种场合穿着。让我向您详细介绍一下它的特点和穿着方式。”\n", + "\n", + "5. [客户问题] “我想要一套适合商务场合穿着的西装。”\n", + " [销售回答] “绝对没问题!我们有各种款式和颜色的西装供您选择。您想要传统的款式还是更时尚的设计?您的身形和偏好是什么?让我们一起找到最适合您的那一款。”\n", + "\n", + "6. [客户问题] “我对您们的退换货政策有些疑问。”\n", + " [销售回答] “我们有非常灵活的退换货政策,您可以放心购买。如果您对商品不满意或尺码不合适,我们接受无条件退货并提供全额退款。如果您更换其他商品,我们也会尽力满足您的需求。”\n", + "\n", + "7. [客户问题] “我对这款衣服的尺码是否准确有所疑问。”\n", + " [销售回答] “我们的尺码通常很准确,但每个品牌的尺码标准可能略有不同。为了确保您选择的尺码合适,我建议您测量一下自己的身体尺寸,或者您也可以在试穿时请我们的专业顾问为您提供帮助。”\n", + "\n", + "8. [客户问题] “我在其他地方看到了类似的产品价格更低,你们能否匹价?”\n", + " [销售回答] “我们真诚地感谢您对我们产品的关注,并理解您对价格的考量。尽管我们竭尽所能确保提供最具竞争力的价格,但我们也重视产品质量和服务。我们会尽最大努力为您提供更好的购物体验,包括提供专业的服务和优质的售后支持。”\n", + "\n", + "9. [客户问题] “我不太确定这件衣服的颜色是否适合我。”\n", + " [销售回答] “颜色是非常个人化的选择,我完全理解您的顾虑。如果您愿意,我可以为您提供一些搭配建议,或者您也可以试穿这件衣服,看看它在不同光线下的效果如何。”\n", + "\n", + "10. [客户问题] “我希望购买一套适合夏季运动的运动服。”\n", + " [销售回答] “夏季运动服需要轻薄透气,同时具备良好的排汗性能。我们有多种款式和材质的运动服可供选择,您可以根据您的喜好和运动类型来挑选。此外,我们的运动服还有防紫外线和快干功能,确保您在运动中保持舒适。”\n", + "```\n", + "\n", + "\n", + "## 使用 Document Transformers 模块来处理原始数据\n", + "\n", + "\n", + "将 ChatGPT 生成的结果保存到 [real_estate_sales_data.txt](real_estate_sales_data.txt) 文件中" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "efcee928-b9f4-4e4a-b9fb-f6cbee21b642", + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"real_estate_sales_data.txt\",encoding = 'utf-8') as f:\n", + " real_estate_sales = f.read()" + ] + }, + { + "cell_type": "markdown", + "id": "a9119556-d2e3-4edf-be16-15837da156f1", + "metadata": { + "tags": [] + }, + "source": [ + "### 使用 CharacterTextSplitter 来进行文本分割\n", + "\n", + "- 基于单字符来进行文本分割(separator)\n", + "- 基于字符数来决定文本块长度(chunk_size)\n", + "\n", + "参考示例:\n", + "\n", + "```python\n", + "from langchain.text_splitter import CharacterTextSplitter\n", + "text_splitter = CharacterTextSplitter( \n", + " separator = \"\\n\\n\",\n", + " chunk_size = 1000,\n", + " chunk_overlap = 200,\n", + " length_function = len,\n", + " is_separator_regex = False,\n", + ")\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "dbe535b8-2bd8-4c31-91d7-eba8aa61b3ef", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.text_splitter import CharacterTextSplitter" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a4f30d9b-9fc6-4860-a497-0aa8220b9284", + "metadata": {}, + "outputs": [], + "source": [ + "text_splitter = CharacterTextSplitter( \n", + " separator = r'\\d+\\.',\n", + " chunk_size = 200,\n", + " chunk_overlap = 0,\n", + " length_function = len,\n", + " is_separator_regex = True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "530f3172-17a5-4924-ad17-284fbca422ae", + "metadata": {}, + "outputs": [], + "source": [ + "docs = text_splitter.create_documents([real_estate_sales])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "3956ec36-706e-4f43-88fc-d704f2984290", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Document(page_content='[客户问题] “这件衬衫看起来不错,但我不确定适不适合我。”\\n [销售回答] “我完全理解您的担忧。我们提供免费试穿服务,您可以试试这款衬衫,确保它与您的体型和风格完美匹配。”')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "docs[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "73b2d47a-27ae-4cd4-a72a-3809b4c22bff", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "100" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(docs)" + ] + }, + { + "cell_type": "markdown", + "id": "e4617858-ad9c-42eb-a4c3-6bfb7108cdd2", + "metadata": {}, + "source": [ + "### 使用 Faiss 作为向量数据库,持久化存储房产销售 问答对(QA-Pair)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "508c2ab2-e187-424f-a43c-ca3d3b1a0550", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\ckc\\.conda\\envs\\langchain\\Lib\\site-packages\\langchain_core\\_api\\deprecation.py:117: LangChainDeprecationWarning: The class `langchain_community.embeddings.openai.OpenAIEmbeddings` was deprecated in langchain-community 0.0.9 and will be removed in 0.2.0. An updated version of the class exists in the langchain-openai package and should be used instead. To use it run `pip install -U langchain-openai` and import as `from langchain_openai import OpenAIEmbeddings`.\n", + " warn_deprecated(\n" + ] + } + ], + "source": [ + "from langchain.embeddings.openai import OpenAIEmbeddings\n", + "from langchain.text_splitter import CharacterTextSplitter\n", + "from langchain.vectorstores import FAISS\n", + "\n", + "db = FAISS.from_documents(docs, OpenAIEmbeddings())" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "250e0873-95e2-4372-98a5-68c0feb304bb", + "metadata": {}, + "outputs": [], + "source": [ + "query = \"外套质量怎么样\"" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "0d18fcc6-c2be-434b-b8de-9648ac6f83f4", + "metadata": {}, + "outputs": [], + "source": [ + "answer_list = db.similarity_search(query)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e689667e-7a45-40d6-9eae-4e52cbc7daab", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[客户问题] “我担心这件外套的质量不够好。”\n", + " [销售回答] “我们的外套采用了优质的材料,经过严格的质量控制。此外,我们还提供了一年的质量保证,如果您在使用过程中有任何问题,我们都会为您提供全额退款或换货。”\n", + "\n", + "[客户问题] “我对这个款式的外套的保暖性有些疑问,你能介绍一下吗?”\n", + " [销售回答] “这款外套采用了保暖性能较好的面料,内部可能还有保暖填充物,确保在寒冷的天气中保持温暖。您也可以选择适合的内衬来增加保暖效果,让您在冬季穿着更加舒适。”\n", + "\n", + "[客户问题] “我对这个款式的衣服的质地有些担心,你能介绍一下吗?”\n", + " [销售回答] “这款衣服采用了优质的面料,手感柔软舒适,具有良好的透气性和吸湿排汗性能,穿着舒适且质地优良。我们也提供了清洗说明,让您更好地保养衣服。”\n", + "\n", + "[客户问题] “我对这种款式的外套的适用季节有些不确定,你能给我介绍一下吗?”\n", + " [销售回答] “这款外套通常适合春秋季穿着,具有保暖和防风的功能,适合温度稍微凉爽的季节。如果您对适用季节有特殊要求,我们也可以为您推荐适合的款式。”\n", + "\n" + ] + } + ], + "source": [ + "for ans in answer_list:\n", + " print(ans.page_content + \"\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "a6cc47bf-1566-472f-84d2-a46bd634907c", + "metadata": {}, + "outputs": [], + "source": [ + "db.save_local(\"real_estates_sale\")" + ] + }, + { + "cell_type": "markdown", + "id": "0d5323e5-03fa-4c1c-b896-3ccc28af1857", + "metadata": {}, + "source": [ + "### 使用 retriever 从向量数据库中获取结果\n", + "\n", + "#### 使用参数 `k` 指定返回结果数量\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "17f051c9-8676-48d1-a9a4-e69b52630faf", + "metadata": {}, + "outputs": [], + "source": [ + "# 实例化一个 TopK Retriever\n", + "topK_retriever = db.as_retriever(search_kwargs={\"k\": 3})" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "e33024db-ca7b-4d68-9b0e-c31c15ded57d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "VectorStoreRetriever(tags=['FAISS', 'OpenAIEmbeddings'], vectorstore=, search_kwargs={'k': 3})" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "topK_retriever" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "7efb1414-859f-4818-bacd-e1e2edf34b95", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[客户问题] “我担心这件外套的质量不够好。”\n", + " [销售回答] “我们的外套采用了优质的材料,经过严格的质量控制。此外,我们还提供了一年的质量保证,如果您在使用过程中有任何问题,我们都会为您提供全额退款或换货。”\n", + "\n", + "[客户问题] “我对这个款式的外套的保暖性有些疑问,你能介绍一下吗?”\n", + " [销售回答] “这款外套采用了保暖性能较好的面料,内部可能还有保暖填充物,确保在寒冷的天气中保持温暖。您也可以选择适合的内衬来增加保暖效果,让您在冬季穿着更加舒适。”\n", + "\n", + "[客户问题] “我对这个款式的衣服的质地有些担心,你能介绍一下吗?”\n", + " [销售回答] “这款衣服采用了优质的面料,手感柔软舒适,具有良好的透气性和吸湿排汗性能,穿着舒适且质地优良。我们也提供了清洗说明,让您更好地保养衣服。”\n", + "\n" + ] + } + ], + "source": [ + "docs = topK_retriever.get_relevant_documents(query)\n", + "for doc in docs:\n", + " print(doc.page_content + \"\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "a3c4b62d-6f8f-461b-a4fb-41c8a404b831", + "metadata": {}, + "outputs": [], + "source": [ + "docs = topK_retriever.get_relevant_documents(\"有没有适合约会的连衣裙\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "04cca3d7-23d9-491f-8350-faeb19861dec", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[客户问题] “我想要购买一些适合约会穿着的服装,你有什么推荐吗?”\n", + " [销售回答] “约会穿着需要既有个性又具有魅力,我们有多款适合约会穿着的服装,如性感连衣裙、时尚牛仔裤、迷人裙装等,让您在约会中散发迷人魅力。”\n", + "\n", + "[客户问题] “我是个经常参加社交活动的人,需要一些适合社交场合穿着的服装。”\n", + " [销售回答] “社交场合需要着装得体且引人注目,我们有多款适合社交场合穿着的服装,无论是晚礼服、派对装还是优雅连衣裙,都能让您在社交活动中脱颖而出。”\n", + "\n", + "[客户问题] “我希望购买一些适合参加婚礼穿着的礼服,有什么推荐吗?”\n", + " [销售回答] “参加婚礼需要庄重得体的礼服,我们有多款适合参加婚礼穿着的礼服,如优雅晚礼服、精致长裙、高贵连衣裙等,让您在婚礼上成为焦点。”\n", + "\n" + ] + } + ], + "source": [ + "for doc in docs:\n", + " print(doc.page_content + \"\\n\")" + ] + }, + { + "cell_type": "markdown", + "id": "b335c9e5-bc01-4a47-916c-03bec0e7a839", + "metadata": {}, + "source": [ + "#### 使用 similarity_score_threshold 设置阈值,提升结果的相关性质量" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "b1298956-6cf3-4a68-a3c2-a3149f64f156", + "metadata": {}, + "outputs": [], + "source": [ + "# 实例化一个 similarity_score_threshold Retriever\n", + "retriever = db.as_retriever(\n", + " search_type=\"similarity_score_threshold\",\n", + " search_kwargs={\"score_threshold\": 0.8}\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "d61167de-72ed-4618-a2e1-5df04784a3bc", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[客户问题] “我担心这件外套的质量不够好。”\n", + " [销售回答] “我们的外套采用了优质的材料,经过严格的质量控制。此外,我们还提供了一年的质量保证,如果您在使用过程中有任何问题,我们都会为您提供全额退款或换货。”\n", + "\n", + "[客户问题] “我对这个款式的外套的保暖性有些疑问,你能介绍一下吗?”\n", + " [销售回答] “这款外套采用了保暖性能较好的面料,内部可能还有保暖填充物,确保在寒冷的天气中保持温暖。您也可以选择适合的内衬来增加保暖效果,让您在冬季穿着更加舒适。”\n", + "\n" + ] + } + ], + "source": [ + "docs = retriever.get_relevant_documents(query)\n", + "for doc in docs:\n", + " print(doc.page_content + \"\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "548d1b52-6fa2-46d6-9218-908db572f380", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "c31344ce-f952-4604-b700-fdbb34da1e28", + "metadata": {}, + "source": [ + "### 提取向量数据库中的`销售回答`" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "25768463-da65-4762-978d-51c0c3a9c24b", + "metadata": {}, + "outputs": [], + "source": [ + "docs = retriever.get_relevant_documents(query)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "4838d3da-dca3-4c31-80da-cec75760a833", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'[客户问题] “我担心这件外套的质量不够好。”\\n [销售回答] “我们的外套采用了优质的材料,经过严格的质量控制。此外,我们还提供了一年的质量保证,如果您在使用过程中有任何问题,我们都会为您提供全额退款或换货。”'" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "docs[0].page_content" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "1ba30232-f468-4102-b70c-02c8b74da43d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['[客户问题] “我担心这件外套的质量不够好。”\\n ',\n", + " '“我们的外套采用了优质的材料,经过严格的质量控制。此外,我们还提供了一年的质量保证,如果您在使用过程中有任何问题,我们都会为您提供全额退款或换货。”']" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "docs[0].page_content.split(\"[销售回答] \")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "bda8eb0c-eb1f-47b2-91ab-4c94ff71c3db", + "metadata": {}, + "outputs": [], + "source": [ + "ans = docs[0].page_content.split(\"[销售回答] \")[-1]" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "917a3b6c-3149-42e2-b7b6-abebd94b7f72", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'“我们的外套采用了优质的材料,经过严格的质量控制。此外,我们还提供了一年的质量保证,如果您在使用过程中有任何问题,我们都会为您提供全额退款或换货。”'" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ans" + ] + }, + { + "cell_type": "markdown", + "id": "b36b61a5-156d-4546-bbd1-8a983e94676b", + "metadata": {}, + "source": [ + "#### 尝试各种问题" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "c311a656-e571-45d6-8690-88e4be2c2a65", + "metadata": {}, + "outputs": [], + "source": [ + "from typing import List\n", + "\n", + "def sales(query: str, score_threshold: float=0.8) -> List[str]:\n", + " retriever = db.as_retriever(search_type=\"similarity_score_threshold\", search_kwargs={\"score_threshold\": score_threshold}) \n", + " docs = retriever.get_relevant_documents(query)\n", + " ans_list = [doc.page_content.split(\"[销售回答] \")[-1] for doc in docs]\n", + "\n", + " return ans_list" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "2f4c6c08-b97c-4727-9aa1-a474d85a11e4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['“运动健身需要舒适透气且具有弹性的服装,我们有多款适合运动健身穿着的服装,如运动上衣、运动裤、运动内衣等,让您在运动中保持舒适和自由。”', '“运动健身需要舒适透气的服装,同时具备良好的伸缩性和吸汗排湿功能。我们有各种款式的运动服装,包括运动T恤、运动裤、运动文胸等,保证您在运动中保持舒适和自信。”', '“我们有多款适合运动休闲穿着的服装,如运动T恤、休闲裤、运动套装等,舒适透气,让您在运动和休闲时都能保持时尚和舒适。”', '“夏季运动服需要轻薄透气,同时具备良好的排汗性能。我们有多种款式和材质的运动服可供选择,您可以根据您的喜好和运动类型来挑选。此外,我们的运动服还有防紫外线和快干功能,确保您在运动中保持舒适。”']\n" + ] + } + ], + "source": [ + "query = \"我想要运动套装\"\n", + "\n", + "print(sales(query))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "11e3d8b6-839f-4b2f-b519-841e0271f95b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['“运动健身需要舒适透气且具有弹性的服装,我们有多款适合运动健身穿着的服装,如运动上衣、运动裤、运动内衣等,让您在运动中保持舒适和自由。”', '“运动健身需要舒适透气的服装,同时具备良好的伸缩性和吸汗排湿功能。我们有各种款式的运动服装,包括运动T恤、运动裤、运动文胸等,保证您在运动中保持舒适和自信。”', '“我们有多款适合运动休闲穿着的服装,如运动T恤、休闲裤、运动套装等,舒适透气,让您在运动和休闲时都能保持时尚和舒适。”', '“夏季运动服需要轻薄透气,同时具备良好的排汗性能。我们有多种款式和材质的运动服可供选择,您可以根据您的喜好和运动类型来挑选。此外,我们的运动服还有防紫外线和快干功能,确保您在运动中保持舒适。”']\n" + ] + } + ], + "source": [ + "print(sales(query, 0.75))" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "fc5b030a-ae6f-4d42-9577-1420c78aecb1", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\ckc\\.conda\\envs\\langchain\\Lib\\site-packages\\langchain_core\\vectorstores.py:342: UserWarning: No relevant docs were retrieved using the relevance score threshold 0.8\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "score:0.8 ans: []\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\ckc\\.conda\\envs\\langchain\\Lib\\site-packages\\langchain_core\\vectorstores.py:342: UserWarning: No relevant docs were retrieved using the relevance score threshold 0.75\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "score:0.75 ans: []\n", + "\n", + "score:0.5 ans: ['“我们真诚地感谢您对我们产品的关注,并理解您对价格的考量。尽管我们竭尽所能确保提供最具竞争力的价格,但我们也重视产品质量和服务。我们会尽最大努力为您提供更好的购物体验,包括提供专业的服务和优质的售后支持。”', '“我们的产品价格根据款式和材质的不同而有所差异,价格范围也比较灵活。我们有适合不同消费水平的产品线,您可以根据自己的需求和预算选择适合的产品。”', '“我明白您关注价格的考量。但是考虑到我们的产品质量和设计,这个价格实际上是非常合理的。不过,如果您对其他款式感兴趣,我可以帮您找到一些更优惠的选择。”', '“我们的外套采用了优质的材料,经过严格的质量控制。此外,我们还提供了一年的质量保证,如果您在使用过程中有任何问题,我们都会为您提供全额退款或换货。”']\n", + "\n" + ] + } + ], + "source": [ + "query = \"价格200万以内\"\n", + "\n", + "print(f\"score:0.8 ans: {sales(query)}\\n\")\n", + "print(f\"score:0.75 ans: {sales(query, 0.75)}\\n\")\n", + "print(f\"score:0.5 ans: {sales(query, 0.5)}\\n\")" + ] + }, + { + "cell_type": "markdown", + "id": "9e26e6d7-259b-4ecf-9c72-027befba4e3b", + "metadata": {}, + "source": [ + "#### 当向量数据库中没有合适答案时,使用大语言模型能力" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "9142feb4-980a-4142-b367-1401021dceef", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.chains import RetrievalQA\n", + "from langchain_openai import ChatOpenAI\n", + "\n", + "llm = ChatOpenAI(model_name=\"gpt-3.5-turbo\", temperature=0.5)\n", + "qa_chain = RetrievalQA.from_chain_type(llm,\n", + " retriever=db.as_retriever(search_type=\"similarity_score_threshold\",\n", + " search_kwargs={\"score_threshold\": 0.8}))" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "d281b560-54bb-4a25-a1dc-b23874361654", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\ckc\\.conda\\envs\\langchain\\Lib\\site-packages\\langchain_core\\_api\\deprecation.py:117: LangChainDeprecationWarning: The function `__call__` was deprecated in LangChain 0.1.0 and will be removed in 0.2.0. Use invoke instead.\n", + " warn_deprecated(\n" + ] + }, + { + "data": { + "text/plain": [ + "{'query': '你们的衣服舒适吗',\n", + " 'result': '是的,我们有多款舒适度较高的服装,如棉质T恤、羊毛衫、弹力裤等,面料柔软舒适,剪裁合身,让您在穿着时感到舒适自在。'}" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qa_chain({\"query\": \"你们的衣服舒适吗\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "c6a30dcc-fa6b-4282-935c-b07902746e19", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\ckc\\.conda\\envs\\langchain\\Lib\\site-packages\\langchain_core\\vectorstores.py:342: UserWarning: No relevant docs were retrieved using the relevance score threshold 0.8\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "{'query': '你们的西装怎么样', 'result': '很抱歉,我不清楚你在问哪家公司的西装。你可以提供更多细节吗?'}" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qa_chain({\"query\": \"你们的西装怎么样\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "9da44bd6-02ef-4fb6-8e9e-7c99aeba483a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['“我们有非常灵活的退换货政策,您可以放心购买。如果您对商品不满意或尺码不合适,我们接受无条件退货并提供全额退款。如果您更换其他商品,我们也会尽力满足您的需求。”']\n" + ] + } + ], + "source": [ + "print(sales(\"你们的退货服务怎么样\"))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9764bb10-44ed-47c9-a351-a68f4f7d4f44", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "0a0647e8-5b41-4c93-87c2-3240ec558717", + "metadata": {}, + "source": [ + "## 加载 FAISS 向量数据库已有结果" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "913edd04-37ea-4c3f-9346-086aeb0ab447", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_openai import OpenAIEmbeddings\n", + "from langchain.vectorstores import FAISS\n", + "\n", + "db = FAISS.load_local(\"real_estates_sale\", OpenAIEmbeddings(),allow_dangerous_deserialization = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "77d8eee4-6383-4b4a-9737-95ea9fc53b87", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\ckc\\.conda\\envs\\langchain\\Lib\\site-packages\\langchain_core\\_api\\deprecation.py:117: LangChainDeprecationWarning: The class `langchain_community.chat_models.openai.ChatOpenAI` was deprecated in langchain-community 0.0.10 and will be removed in 0.2.0. An updated version of the class exists in the langchain-openai package and should be used instead. To use it run `pip install -U langchain-openai` and import as `from langchain_openai import ChatOpenAI`.\n", + " warn_deprecated(\n" + ] + } + ], + "source": [ + "from langchain.chains import RetrievalQA\n", + "from langchain.chat_models import ChatOpenAI\n", + "\n", + "llm = ChatOpenAI(model_name=\"gpt-3.5-turbo\", temperature=0.5)\n", + "qa_chain = RetrievalQA.from_chain_type(llm,\n", + " retriever=db.as_retriever(search_type=\"similarity_score_threshold\",\n", + " search_kwargs={\"score_threshold\": 0.8}))" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "5dfac197-cadb-47d7-8cbe-1b07a83fc8e1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'query': '你们的运动装舒适吗',\n", + " 'result': '根据提供的信息,我们的运动装设计舒适透气,具有良好的伸缩性和吸汗排湿功能,让您在运动中保持舒适和自由。'}" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qa_chain({\"query\": \"你们的运动装舒适吗\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "fc393afc-06d3-4483-bd24-efe000ef5f2a", + "metadata": {}, + "outputs": [], + "source": [ + "# 输出内部 Chain 的日志\n", + "qa_chain.combine_documents_chain.verbose = True" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "013c313a-5e7c-48d1-8ed4-eee96e50a99c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new StuffDocumentsChain chain...\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "{'query': '你们的运动装舒适吗',\n", + " 'result': '根据提供的上下文,销售员强调他们的运动装舒适透气、具有弹性和吸汗排湿功能,因此可以说他们的运动装应该是舒适的。'}" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qa_chain({\"query\": \"你们的运动装舒适吗\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "e5fb0943-ffe9-4270-8dbe-f5f5314e6042", + "metadata": {}, + "outputs": [], + "source": [ + "# 返回向量数据库的检索结果\n", + "qa_chain.return_source_documents = True" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "fbc1741e-d34f-4df5-874b-02b78e8cd67a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new StuffDocumentsChain chain...\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n" + ] + } + ], + "source": [ + "result = qa_chain({\"query\": \"你们的运动装舒适吗\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "fac8309c-033c-4144-ada0-08e74fa9bf2d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'query': '你们的运动装舒适吗',\n", + " 'result': '根据提供的信息,我们的运动装设计为舒适透气、具有弹性和吸汗排湿功能,以确保您在运动中感到舒适和自由。',\n", + " 'source_documents': [Document(page_content='[客户问题] “我希望购买一些适合运动健身穿着的服装,有什么推荐吗?”\\n [销售回答] “运动健身需要舒适透气且具有弹性的服装,我们有多款适合运动健身穿着的服装,如运动上衣、运动裤、运动内衣等,让您在运动中保持舒适和自由。”'),\n", + " Document(page_content='[客户问题] “我想购买一些适合运动健身穿着的服装。”\\n [销售回答] “运动健身需要舒适透气的服装,同时具备良好的伸缩性和吸汗排湿功能。我们有各种款式的运动服装,包括运动T恤、运动裤、运动文胸等,保证您在运动中保持舒适和自信。”')]}" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37de84df-999f-4469-9bbe-de9c95c6f6b3", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "langchain", + "language": "python", + "name": "langchain" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/clothes_chatbot/sales_chatbot.py b/clothes_chatbot/sales_chatbot.py new file mode 100644 index 00000000..398a23e5 --- /dev/null +++ b/clothes_chatbot/sales_chatbot.py @@ -0,0 +1,56 @@ +import gradio as gr + +from langchain_openai import OpenAIEmbeddings +from langchain.vectorstores import FAISS +from langchain.chains import RetrievalQA +from langchain_openai import ChatOpenAI + + +def initialize_sales_bot(vector_store_dir: str="real_estates_sale"): + db = FAISS.load_local(vector_store_dir, OpenAIEmbeddings(),allow_dangerous_deserialization = True) + llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0) + + global SALES_BOT + SALES_BOT = RetrievalQA.from_chain_type(llm, + retriever=db.as_retriever(search_type="similarity_score_threshold", + search_kwargs={"score_threshold": 0.8})) + # 返回向量数据库的检索结果 + SALES_BOT.return_source_documents = True + + return SALES_BOT + +def sales_chat(message, history,enable_chat): + print(f"[message]{message}") + print(f"[history]{history}") + # TODO: 从命令行参数中获取 + enable_chat = True + + ans = SALES_BOT({"query": message}) + # 如果检索出结果,或者开了大模型聊天模式 + # 返回 RetrievalQA combine_documents_chain 整合的结果 + if ans["source_documents"] or enable_chat: + print(f"[result]{ans['result']}") + print(f"[source_documents]{ans['source_documents']}") + return ans["result"] + # 否则输出套路话术 + else: + return "这个问题我要问问领导" + + +def launch_gradio(): + demo = gr.ChatInterface( + fn=sales_chat, + title="服装销售", + # retry_btn=None, + # undo_btn=None, + chatbot=gr.Chatbot(height=600), + ) + + demo.launch(share=True, server_name="0.0.0.0") + +if __name__ == "__main__": + + # 初始化服装销售机器人 + initialize_sales_bot() + # 启动 Gradio 服务 + launch_gradio() diff --git "a/clothes_chatbot/\350\277\220\350\241\214\346\210\252\345\233\276.md" "b/clothes_chatbot/\350\277\220\350\241\214\346\210\252\345\233\276.md" new file mode 100644 index 00000000..e4875b2d --- /dev/null +++ "b/clothes_chatbot/\350\277\220\350\241\214\346\210\252\345\233\276.md" @@ -0,0 +1,8 @@ +- 运行截图 + + ![image-20240424222456323](C:\Users\ckc\AppData\Roaming\Typora\typora-user-images\image-20240424222456323.png) + +![image-20240424234701453](C:\Users\ckc\AppData\Roaming\Typora\typora-user-images\image-20240424234701453.png) + + +