ai_scheduler/internal/entitys/advicer.go

388 lines
15 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package entitys
type AdviceData interface {
Example() string
Copy() AdviceData
Role() AdviceRole
Desc() string
}
type AdviceRole string
const (
RoleAdvicer AdviceRole = "advicer"
RoleProject AdviceRole = "project"
RoleSkill AdviceRole = "skill"
RoleClient AdviceRole = "client"
)
var RoleDesc = map[AdviceRole]string{
RoleAdvicer: "顾问",
RoleProject: "项目",
RoleSkill: "沟通技巧",
RoleClient: "客户",
}
// -------顾问
// DialectFeatures 方言特征
type DialectFeatures struct {
Region string `json:"region"` //方言使用程度
Intensity float64 `json:"intensity"` // 方言使用强度0-1
KeyWords []string `json:"KeyWords"`
}
func (e *DialectFeatures) Example() string {
return `{"region":"四川成都话","intensity":0.4,"key_words":["噻","要得","没得","不晓得","是不是"]}`
}
func (e *DialectFeatures) Copy() AdviceData {
return new(DialectFeatures)
}
func (e *DialectFeatures) Role() AdviceRole {
return RoleAdvicer
}
func (e *DialectFeatures) Desc() string {
return "方言特征"
}
// SentencePatterns 句子模式
type SentencePatterns struct {
OpeningMode []string `json:"openingMode"` //开场模式
ExplanationMode []string `json:"explanationMode"` //解释模式
ConfirmationMode []string `json:"confirmationMode"` //确认模式
SummaryMode []string `json:"summaryMode"` //总结模式
TransitionMode []string `json:"transitionMode"` //过渡模式
}
func (e *SentencePatterns) Example() string {
return `{"openingMode":["我给你介绍一下","我们先来看一下"],"explanationMode":["是这样的","我跟你讲","你发现没得"],"confirmationMode":["对吧?","是不是嘛?","你晓得不?","明白了噻?"],"summaryMode":["所以说","简单说就是"],"transitionMode":["然后的话","再其次","还有一点"]}`
}
func (e *SentencePatterns) Copy() AdviceData {
return new(SentencePatterns)
}
func (e *SentencePatterns) Role() AdviceRole {
return RoleAdvicer
}
func (e *SentencePatterns) Desc() string {
return "句子模式"
}
// PersonalityTags 个性标签
type PersonalityTags []string
func (e *PersonalityTags) Example() string {
return `["耐心细致","细节控"]`
}
func (e *PersonalityTags) Copy() AdviceData {
return new(PersonalityTags)
}
func (e *PersonalityTags) Role() AdviceRole {
return RoleAdvicer
}
func (e *PersonalityTags) Desc() string {
return "个性标签"
}
// ToneTags 语气标签
type ToneTags struct {
Enthusiasm float64 `json:"enthusiasm"`
Patience float64 `json:"patience"`
Confidence float64 `json:"confidence"`
Friendliness float64 `json:"friendliness"`
Persuasion float64 `json:"persuasion"`
}
func (e *ToneTags) Example() string {
return `{"enthusiasm":0.8,"patience":0.9,"confidence":0.85,"friendliness":0.75,"persuasion":0.7}`
}
func (e *ToneTags) Copy() AdviceData {
return new(ToneTags)
}
func (e *ToneTags) Role() AdviceRole {
return RoleAdvicer
}
func (e *ToneTags) Desc() string {
return "语气标签"
}
// SignatureDialogues 代表性对话示例
type SignatureDialogues []struct {
Context string `json:"context"`
Dialogue string `json:"dialogue"` //解释
}
func (e *SignatureDialogues) Example() string {
return `[{"context":"客户质疑地块大小","dialogue":"哥14亩确实不大但你要在成都是2.5环内城买房这种是个普遍存在的一个现象。你看万景和绿城都是13亩中铁建只有8.8亩339那个帮泰只有11亩。我们虽然地小但楼间距开阔啊看过去都是200多米"},{"context":"客户担心物业费高","dialogue":"姐我懂你意思我们也觉得物业费是有点贵。但招商物业是铂金服务有管家送外卖、免费宠物喂养这些增值服务。你算一下就算贵一块钱十年也就多14000但好物业让房子增值不止这点"},{"context":"客户犹豫价格","dialogue":"说实话这个地段的地价都比28板块贵5000多但我们单价只贵3000。你看龙湖滨江云河颂套内单价都36000了我们才33000真的性价比高现在不买以后这个板块可能就买不起了。"}]`
}
func (e *SignatureDialogues) Copy() AdviceData {
return new(SignatureDialogues)
}
func (e *SignatureDialogues) Role() AdviceRole {
return RoleAdvicer
}
func (e *SignatureDialogues) Desc() string {
return "代表性对话示例"
}
// -------项目
// RegionValue 区域价值话术库
type RegionValue map[string][]string
func (e *RegionValue) Example() string {
return `{"区位层级":["成华区2.5环内侧,这个位置真的稀缺","槐树店板块现在是成华区的number one板块","北接三板桥商圈,西靠万象城,东临火车东站","属于淮舜板块,万象城东的核心位置"],"地价论证":["我们地价19500华晨府20400棕榈也是2万+","2.5环内现在地价没有低于19000的","面粉贵了,面包不可能便宜"],"板块热度":["从21年新希望锦麟一品开始这边全是高端盘","龙湖最高端的滨江系列在这里,新希望的锦麟系列也在这里","各大品牌开发商争相恐后都在这边拿地"],"发展规划":["槐树店板块是棋盘成钢之后第二个富人区","整个板块都是300万到900万的总价段","未来全是改善型住宅,没有刚需盘"]}`
}
func (e *RegionValue) Copy() AdviceData {
return new(RegionValue)
}
func (e *RegionValue) Role() AdviceRole {
return RoleProject
}
func (e *RegionValue) Desc() string {
return "区域价值话术"
}
// CompetitionComparison 竞品对比话术
type CompetitionComparison map[string]map[string]string
func (e *CompetitionComparison) Example() string {
return `{"龙湖滨江云河颂":{"优点承认":"龙湖位置确实好,看沙河公园","价格对比":"他们单价32000-35000但得房率只有95%套内算下来36000+","优势突出":"我们得房率118平实得132平套内单价才33000"},"邦泰云锦":{"定位相似":"邦泰也是首个项目,要打造口碑","价格参考":"他们当时12800拿地现在卖34000","品质对比":"我们外立面全玻璃幕墙比他们成本高30%"}}`
}
func (e *CompetitionComparison) Copy() AdviceData {
return new(CompetitionComparison)
}
func (e *CompetitionComparison) Role() AdviceRole {
return RoleProject
}
func (e *CompetitionComparison) Desc() string {
return "竞品对比话术"
}
// CoreSellingPoints 核心卖点
type CoreSellingPoints map[string]string
func (e *CoreSellingPoints) Example() string {
return `{"产品配置高端":"全玻璃幕墙+铝单板外立面三层中空氩气玻璃3.2米层高方太Y9烟机灶具高仪卫浴","地段稀缺性":"成华区2.5环内侧核心地段槐树店板块是成华区number one板块被三板桥、万象城、火车东站包围","得房率高":"118平实得132平套内单价33000比龙湖滨江云河颂套内单价低3000"}`
}
func (e *CoreSellingPoints) Copy() AdviceData {
return new(CoreSellingPoints)
}
func (e *CoreSellingPoints) Role() AdviceRole {
return RoleProject
}
func (e *CoreSellingPoints) Desc() string {
return "核心卖点"
}
// SupportingFacilities 配套体系
type SupportingFacilities map[string]map[string]string
func (e *SupportingFacilities) Example() string {
return `{"交通配套":{"地铁":"双店路站350米7号线槐树店站550米4号线未来12号线","道路":"中环路、成洛大道到春熙路5个站","通达性":"到火车东站2个站到华西30分钟内"},"教育配套":{"幼儿园":"楼下公立幼儿园","小学":"城市附小锦汇东城(成华区生源最好的学校)","生源优势":"周边新盘都是300万+,生源纯粹"},"医疗配套":{"三甲医院":"市六医院、市二医院3公里内","顶尖医疗":"华西医院锦江院区30分钟车程","便利性":"到华西本部也是30分钟内"}}`
}
func (e *SupportingFacilities) Copy() AdviceData {
return new(SupportingFacilities)
}
func (e *SupportingFacilities) Role() AdviceRole {
return RoleProject
}
func (e *SupportingFacilities) Desc() string {
return "配套体系"
}
// DeveloperBacking 开发商背书
type DeveloperBacking map[string]string
func (e *DeveloperBacking) Example() string {
return `{"公司实力":"中信资产,多元化民营企业","资金安全":"在河南渑池有铝土矿每年稳定收入10亿","开发经验":"宜宾有5个项目贵州2个成都是首个项目","合作方":"招商铂金物业,首次与外部企业合作"}`
}
func (e *DeveloperBacking) Copy() AdviceData {
return new(DeveloperBacking)
}
func (e *DeveloperBacking) Role() AdviceRole {
return RoleProject
}
func (e *DeveloperBacking) Desc() string {
return "开发商背书"
}
// -------销售话术
// NeedsMining 需求挖掘话术
type NeedsMining map[string][]string
func (e *NeedsMining) Example() string {
return `{"预算需求":["你们总价想控制在多少以内?","是考虑按揭还是一次性?","月供能接受多少范围?"],"居住需求":["几个人住?有老人小孩吗?","主要是自住还是考虑投资?","现在住哪里?想改善哪些方面?"],"通勤需求":["在哪个位置上班?","主要开车还是坐地铁?","对地铁距离有要求吗?"]}`
}
func (e *NeedsMining) Copy() AdviceData {
return new(NeedsMining)
}
func (e *NeedsMining) Role() AdviceRole {
return RoleSkill
}
func (e *NeedsMining) Desc() string {
return "需求挖掘话术"
}
// PainPointResponse 痛点应对策略
type PainPointResponse map[string]map[string]string
func (e *PainPointResponse) Example() string {
return `{"地块太小":{"承认事实":"14亩确实不大","普遍现象":"2.5环内都是小地块万景13亩中铁建8.8亩","转化优势":"但人少安静,楼间距反而更开阔","对比竞品":"339的邦泰才11亩人家上千万豪宅"},"物业费高":{"理解感受":"我懂你,我们也觉得有点贵","价值分析":"但6块里3块是增值服务保洁、送外卖","价格补贴":"前三年补贴到5块跟其他盘差不多"}}`
}
func (e *PainPointResponse) Copy() AdviceData {
return new(PainPointResponse)
}
func (e *PainPointResponse) Role() AdviceRole {
return RoleSkill
}
func (e *PainPointResponse) Desc() string {
return "痛点应对策略"
}
// ValueBuilding 价值塑造技巧
type ValueBuilding map[string][]string
func (e *ValueBuilding) Example() string {
return `{"地段价值塑造":["买房最重要的是地段、地段、还是地段","核心地段的核心资产才保值增值","2.5环内的地卖一块少一块,不可再生"],"产品价值塑造":["我们是用改善的价格,买豪宅的标准","很多细节都是3000万豪宅才有的配置","外立面成本比竞品高30%,但单价差不多"]}`
}
func (e *ValueBuilding) Copy() AdviceData {
return new(ValueBuilding)
}
func (e *ValueBuilding) Role() AdviceRole {
return RoleSkill
}
func (e *ValueBuilding) Desc() string {
return "价值塑造技巧"
}
// ClosingTechniques 促单话术
type ClosingTechniques map[string]map[string][]string
func (e *ClosingTechniques) Example() string {
return `{"紧迫感营造":{"时间紧迫":["今天是月底最后一天,领导有压力价格可谈","我们刚刚开盘,还有额外优惠","月底冲业绩,价格最有弹性"],"房源稀缺":["118只剩20多套了好楼层不多","这栋楼就60户卖一套少一套","特价房只有这几套,今天不定可能就没了"]},"优惠策略":{"价格优惠":["今天定的话,我可以跟领导申请额外折扣","买车位的话,总价多给两个点优惠","一次性付款再优惠一个点"],"附加价值":["送一年物业费","送品牌家电礼包","优先选车位"]},"决策推动":{"小步推进":["要不先交个小定保留房源?","可以先排个号,有优惠优先通知你","今天不定的话,我帮你留意好楼层"]}}`
}
func (e *ClosingTechniques) Copy() AdviceData {
return new(ClosingTechniques)
}
func (e *ClosingTechniques) Role() AdviceRole {
return RoleSkill
}
func (e *ClosingTechniques) Desc() string {
return "促单话术"
}
// CommunicationRhythm 沟通节奏控制
type CommunicationRhythm map[string]map[string]string
func (e *CommunicationRhythm) Example() string {
return `{"开场阶段":{"时间占比":"5%","目标":"建立关系,了解需求","关键动作":"亲切称呼,简单寒暄,确认看房重点"},"沙盘讲解":{"时间占比":"30%","目标":"建立价值认知","关键动作":"板块价值→周边配套→项目亮点→开发商介绍"}}`
}
func (e *CommunicationRhythm) Copy() AdviceData {
return new(CommunicationRhythm)
}
func (e *CommunicationRhythm) Role() AdviceRole {
return RoleSkill
}
func (e *CommunicationRhythm) Desc() string {
return "沟通节奏控制"
}
//----------客户
// Customer 客户信息
type Customer []ClientInfo
type ClientInfo struct {
// 个人信息
PersonalInfo PersonalInfo `json:"personalInfo"`
// 购房目的
PurchasePurpose PurchasePurpose `json:"purchasePurpose"`
// 核心需求
CoreDemands CoreDemands `json:"coreDemands"`
// 关注点与顾虑
Concerns []string `json:"concerns"`
// 决策建议
DecisionProfile []string `json:"decisionProfile"`
}
type PersonalInfo struct {
Name string `json:"name"` // 姓氏
Gender string `json:"gender"` // 性别
Location string `json:"location"` // 来源地/当前居住地
IsFirstHome bool `json:"isFirstHome"` // 是否首套房
FamilyOrganize string `json:"familyOrganize"` // 家庭人数
}
type PurchasePurpose struct {
PrimaryPurpose string `json:"primaryPurpose"` // 主要目的
SecondaryPurpose string `json:"secondaryPurpose"` // 次要目的
DecisionMakers string `json:"decisionMakers"` // 决策人
}
type CoreDemands struct {
TotalBudget string `json:"totalBudget"` // 预算范围
PreferredLayout string `json:"preferredLayout"` // 偏好户型
CoreAppeal string `json:"coreAppeal"` // 核心述求
}
func (e *Customer) Example() string {
return `[{"personalInfo":{"name":"唐","gender":"男","location":"成都北门","isFirstHome":true,"familyOrganize":"夫妻+1孩+父母同住"},"purchasePurpose":{"primaryPurpose":"首次置业,解决自住","secondaryPurpose":"资产保值,未来可出租","decisionMakers":"夫妻双方"},"coreDemands":{"totalBudget":"350-400"","preferredLayout":"118㎡四房三卫双套房","coreAppeal":"在有限预算内满足家庭居住功能,确保房产保值"},"concerns":["总价超预算风险","板块保值能力","未来租金回报率","开发商资金实力"],"decisionProfile":["预算导向,严格控制总价","重点关注户型功能性和实用性","需要对比板块发展潜力","对开发商交付能力有顾虑"]},{"personalInfo":{"name":"冯女士","gender":"女","location":"","isFirstHome":false,"familyOrganize":"夫妻+1孩+父母同住"},"purchasePurpose":{"primaryPurpose":"改善居住条件","secondaryPurpose":"子女教育质量提升","decisionMakers":"夫妻双方需家庭共同商议]},"coreDemands":{"totalBudget":"400-500","preferredLayout":"118㎡四房三卫非全景户型","coreAppeal":"安静舒适、学区有保障的改善型住房"},"concerns":["临路噪音影响老人休息","学区质量和稳定性","社区小,绿化空间有限","得房率是否足够","二八板块学区对比"],"decisionProfile":["对噪音敏感,需要安静环境","重视教育资源配置","关注社区品质和舒适度","需要详细对比不同板块学区优势"]}]`
}
func (e *Customer) Copy() AdviceData {
return new(Customer)
}
func (e *Customer) Role() AdviceRole {
return RoleClient
}
func (e *Customer) Desc() string {
return "客户信息"
}