Add quick reply, skill definition, and tag seeds for multilingual support
- Implemented QuickReplySeed structure and seeds for both English and Chinese languages. - Created SkillDefinitionSeed structure with detailed instructions and examples for the "After-sales Escalation" skill in both languages. - Added TagSeed structure and corresponding seeds for categorizing inquiries in English and Chinese. - Refactored skill and tag initialization to utilize the new seed structures, ensuring proper data handling and multilingual support. - Updated tests to verify that English seeds do not contain Chinese text, ensuring data integrity.
This commit is contained in:
Vendored
+5
-56
@@ -2,6 +2,7 @@ package agentteam
|
||||
|
||||
import (
|
||||
"agent-desk/cmd/testdata/seedlang"
|
||||
"agent-desk/cmd/testdata/seeds"
|
||||
"agent-desk/internal/models"
|
||||
"agent-desk/internal/pkg/constants"
|
||||
"agent-desk/internal/pkg/enums"
|
||||
@@ -50,7 +51,7 @@ func Init(lang seedlang.Language) (*InitResult, error) {
|
||||
}
|
||||
|
||||
func initTeamAndUsers(ctx *sqls.TxContext, leaderUser *models.User, result *InitResult, lang seedlang.Language) error {
|
||||
teamName := localizedTeamName(lang)
|
||||
teamName := seeds.AgentTeamName(lang)
|
||||
now := time.Now()
|
||||
|
||||
team := repositories.AgentTeamRepository.Take(ctx.Tx, "name = ?", teamName)
|
||||
@@ -84,9 +85,9 @@ func initTeamAndUsers(ctx *sqls.TxContext, leaderUser *models.User, result *Init
|
||||
result.TeamCreated = true
|
||||
}
|
||||
|
||||
agentUsers := localizedAgentUsers(lang, leaderUser.Username)
|
||||
agentUsers := seeds.AgentUsers(lang, leaderUser.Username)
|
||||
for _, agentUser := range agentUsers {
|
||||
userID, userCreated, err := createOrGetUser(ctx, agentUser.username, agentUser.nickname)
|
||||
userID, userCreated, err := createOrGetUser(ctx, agentUser.Username, agentUser.Nickname)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -95,7 +96,7 @@ func initTeamAndUsers(ctx *sqls.TxContext, leaderUser *models.User, result *Init
|
||||
}
|
||||
|
||||
// 创建或更新客服档案
|
||||
profileCreated, err := createOrUpdateProfile(ctx, userID, team.ID, agentUser.code, agentUser.nickname)
|
||||
profileCreated, err := createOrUpdateProfile(ctx, userID, team.ID, agentUser.Code, agentUser.Nickname)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -109,58 +110,6 @@ func initTeamAndUsers(ctx *sqls.TxContext, leaderUser *models.User, result *Init
|
||||
return nil
|
||||
}
|
||||
|
||||
type agentUserSeed struct {
|
||||
username string
|
||||
nickname string
|
||||
code string
|
||||
}
|
||||
|
||||
func localizedTeamName(lang seedlang.Language) string {
|
||||
if lang == seedlang.English {
|
||||
return "Default Support Team"
|
||||
}
|
||||
return "默认客服组"
|
||||
}
|
||||
|
||||
func localizedAgentUsers(lang seedlang.Language, leaderUsername string) []agentUserSeed {
|
||||
if lang == seedlang.English {
|
||||
return []agentUserSeed{
|
||||
{
|
||||
username: leaderUsername,
|
||||
nickname: "Support Lead",
|
||||
code: "AGENT_LEADER_A",
|
||||
},
|
||||
{
|
||||
username: "agent_a",
|
||||
nickname: "Agent A",
|
||||
code: "AGENT_A",
|
||||
},
|
||||
{
|
||||
username: "agent_b",
|
||||
nickname: "Agent B",
|
||||
code: "AGENT_B",
|
||||
},
|
||||
}
|
||||
}
|
||||
return []agentUserSeed{
|
||||
{
|
||||
username: leaderUsername,
|
||||
nickname: "客服组长",
|
||||
code: "AGENT_LEADER_A",
|
||||
},
|
||||
{
|
||||
username: "agent_a",
|
||||
nickname: "客服A",
|
||||
code: "AGENT_A",
|
||||
},
|
||||
{
|
||||
username: "agent_b",
|
||||
nickname: "客服B",
|
||||
code: "AGENT_B",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func createOrGetUser(ctx *sqls.TxContext, username, nickname string) (int64, bool, error) {
|
||||
user := repositories.UserRepository.Take(
|
||||
ctx.Tx,
|
||||
|
||||
Vendored
+4
-3
@@ -2,6 +2,7 @@ package agentteam
|
||||
|
||||
import (
|
||||
"agent-desk/cmd/testdata/seedlang"
|
||||
"agent-desk/cmd/testdata/seeds"
|
||||
"regexp"
|
||||
"testing"
|
||||
)
|
||||
@@ -9,9 +10,9 @@ import (
|
||||
var hanTextPattern = regexp.MustCompile(`\p{Han}`)
|
||||
|
||||
func TestEnglishAgentTeamTextDoesNotContainChineseText(t *testing.T) {
|
||||
values := []string{localizedTeamName(seedlang.English)}
|
||||
for _, user := range localizedAgentUsers(seedlang.English, "admin") {
|
||||
values = append(values, user.nickname)
|
||||
values := []string{seeds.AgentTeamName(seedlang.English)}
|
||||
for _, user := range seeds.AgentUsers(seedlang.English, "admin") {
|
||||
values = append(values, user.Nickname)
|
||||
}
|
||||
|
||||
for _, value := range values {
|
||||
|
||||
Reference in New Issue
Block a user