ai_scheduler/internal/data/mongo_model/advicer_version.go

156 lines
5.4 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 mongo_model
import (
"time"
)
type AdvicerVersionMongo struct {
AdvicerId int32 `json:"advicerId" bson:"advicerId"`
VersionDesc string `json:"versionDesc" bson:"versionDesc"`
DialectFeatures DialectFeatures `json:"dialectFeatures" bson:"DialectFeatures"`
SentencePatterns SentencePatterns `json:"sentencePatterns" bson:"sentencePatterns"`
ToneTags ToneTags `json:"toneTags" bson:"toneTags"`
PersonalityTags PersonalityTags `json:"personalityTags" bson:"personalityTags"`
SignatureDialogues SignatureDialogues `json:"signatureDialogues" bson:"signatureDialogues"`
LastUpdateTime time.Time `json:"lastUpdateTime" bson:"lastUpdateTime"`
}
func NewAdvicerVersionMongo() *AdvicerVersionMongo {
return &AdvicerVersionMongo{}
}
func (a *AdvicerVersionMongo) MongoTableName() string {
return "advicer_version"
}
type AdvicerVersionMongoEntity struct {
DialectFeatures DialectFeatures `json:"dialectFeatures"`
SentencePatterns SentencePatterns `json:"sentencePatterns"`
ToneTags ToneTags `json:"toneTags"`
PersonalityTags PersonalityTags `json:"personalityTags"`
SignatureDialogues SignatureDialogues `json:"signatureDialogues"`
}
func (a *AdvicerVersionMongo) Entity() *AdvicerVersionMongoEntity {
return &AdvicerVersionMongoEntity{
DialectFeatures: a.DialectFeatures,
SentencePatterns: a.SentencePatterns,
ToneTags: a.ToneTags,
PersonalityTags: a.PersonalityTags,
SignatureDialogues: a.SignatureDialogues,
}
}
// 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,"keyWords":["噻","要得","没得","不晓得","是不是"]}`
}
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 "代表性对话示例"
}