Agent问答
Agent项目
目的
我们要实现Agent的问答,回答至少包含一下几种情感。
- 找到所有药监局备案信息里标注视黄醇为主要备案成分的面霜产品(主要成分定义:含量>0.1%)
- 筛选出官宣营销文案中讲到“全天可用或早晚可用”的所有产品
- 按照消费者受欢迎程度排名(声量热度)
- 按照电商销量排名
- 根据消费者对这些面霜产品的相关社媒讨论,总结出消费者提及声量最高的使用场景
- 同样找到消费者提及量最高的功效点并排序
设计知识图谱结构
节点,关系,属性
节点类型和关系,以及属性类型, 产品和成分都有声量,即提及的次数
产品(Product)
- 属性:产品名称(name)、声量热度(volume_heat)、销量(sales_volume)
成分(Ingredient)
- 属性:成分名称(name)、声量热度(volume_heat)
使用场景(UsageScenario)
- 属性:使用场景描述(name)
功效点(Efficacy)
- 属性:功效点描述(name)
使用体验(Experience)
属性:功效点描述(name)
营销文案(MarketingCopy)
- 属性:营销文案内容(name)
社交媒体讨论(SocialMediaDiscussion)
- 属性:社交媒体讨论内容(name)
关系类型:
- 含有(CONTAINS):产品含有成分
- 属性:含量(concentration)
- 适用于(APPLIES_TO):产品适用于特定使用场景
- 讨论于(DISCUSSED_IN):产品、成分、功效、场景的数据来源的帖子
- 具有功效(HAS_EFFECT):产品具有特定功效点
- 具有体验(HAS_EXPERIENCE):产品具有何种体验
数据处理步骤
- 读取数据库中的评论,我们把ugc作为社媒讨论,kol作为营销文案
- 调用LLM进行预测
- 创建CONSTRAINT, 例如CREATE CONSTRAINT ON (c:Product) ASSERT c.name IS UNIQUE
- 插入数据库
为简化起见,针对UGC和KOL我们使用同样的抽取模型,Prompt:
你是一个信息抽取模型,抽取美妆产品的相关信息。根据下面评论,抽取产品名称,包含成分词,产品功效词,使用场景词,使用体验,输出格式如下:
产品名称: 只写1个产品就行
包含成分: 针对上面产品的成分词,可以有多个,用逗号隔开,如果不存在写无
产品功效: 针对上面产品的功效词,和成分的要求一样,可以有多个,用逗号隔开,如果不存在写无
使用场景: 和成分的要求一样
体验: 和成分的要求一样
评论是: {question}
开始输出:
处理完成的数据格式:
1 |
|
一条完整的处理过的数据示例:
1 |
|
插入数据库的示例代码
// 创建或合并产品节点
MERGE (p:Product {name: “产品名称”, volume_heat: 0, sales_volume: 0})
// 创建或合并成分节点
MERGE (i:Ingredient {name: “成分名称”, volume_heat: 0})
// 创建或合并营销文案节点
MERGE (m:MarketingCopy {content: “营销文案内容”})
// 创建或合并社交媒体讨论节点
MERGE (s:SocialMediaDiscussion {content: “社交媒体讨论内容”})
// 创建或合并使用场景节点
MERGE (u:UsageScenario {description: “使用场景描述”})
// 创建或合并功效点节点
MERGE (e:Efficacy {description: “功效点描述”})
// 创建产品与成分之间的关系, 属性是含量
MATCH (p:Product {name: “产品名称”})
MATCH (i:Ingredient {name: “成分名称”})
MERGE (p)-[:CONTAINS {concentration: 0.0}]->(i)
// 创建产品与使用场景之间的关系
MATCH (p:Product {name: “产品名称”})
MATCH (u:UsageScenario {description: “使用场景描述”})
MERGE (p)-[:APPLIES_TO]->(u)
// 创建营销文案与产品之间的关系
MATCH (p:Product {name: “产品名称”})
MATCH (m:MarketingCopy {content: “营销文案内容”})
MERGE (m)-[:DISCUSSED_IN]->(p)
// 创建社交媒体讨论与产品之间的关系
MATCH (p:Product {name: “产品名称”})
MATCH (s:SocialMediaDiscussion {content: “社交媒体讨论内容”})
MERGE (s)-[:DISCUSSED_IN]->(p)
// 创建产品与功效点之间的关系
MATCH (p:Product {name: “产品名称”})
MATCH (e:Efficacy {description: “功效点描述”})
MERGE (p)-[:HAS_EFFECT]->(e)
构建的知识图谱介绍
1 |
|
美妆知识图谱: 主要包括产品、成分、使用场景、功效点、使用体验、营销文案和社交媒体讨论。
节点类型及其属性如下:
- Product:
- 产品名称(name)
- 声量热度(volume_heat)
- 销量(sales_volume)
- Ingredient:
- 成分名称(name)
- 声量热度(volume_heat)
- UsageScenario:
- 使用场景描述(name)
- Efficacy:
- 功效点描述(name)
- Experience:
- 功效点描述(name)
- MarketingCopy:
- 营销文案内容(name)
- SocialMediaDiscussion:
- 社交媒体讨论内容(name)
关系类型如下:
- CONTAINS: 产品含有成分
- APPLIES_TO: 产品适用于特定使用场景
- DISCUSSED_IN: 产品、成分、功效、场景的数据来源的帖子
- HAS_EFFECT: 产品具有特定功效点
- HAS_EXPERIENCE: 产品具有何种体验
知识图谱的插入
1 |
|
根据问题设定CQL查询和工具
包含玻色因的化妆品有哪些?
1 |
|