Files
t 18c9354095 refactor: 将客服后端重构为宿主可嵌入模块
- 注入数据库、运行时配置、统一响应、文件存储和平台 AI 能力,补充业务读写工具与客户快捷操作契约。

- 移除模块内重复的组织、客户、工单、标签、技能、旧工作流、MCP 和迁移实现,将身份权限与业务主体交由宿主管理。

- 使用 libSQL 重构向量存储,并完善图片消息、访客身份、排队调度、企业微信和支持聊天页面。

- 统一 HTTP、DTO 与 WebSocket 的 snake_case 协议,补齐模块初始化、业务动作和公共载荷等回归测试。
2026-08-28 22:23:13 +08:00

68 lines
2.1 KiB
Go
Raw Permalink 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 aiagent
import (
"code.tczkiot.com/wlw/ai-agent/cmd/testdata/seedlang"
"code.tczkiot.com/wlw/ai-agent/cmd/testdata/seeds"
"regexp"
"strings"
"testing"
)
var hanTextPattern = regexp.MustCompile(`\p{Han}`)
func TestEnglishAIAgentSeedDoesNotContainChineseText(t *testing.T) {
for _, item := range seeds.AIAgentSeeds(seedlang.English) {
values := []string{item.Name, item.Description, item.SystemPrompt, item.WelcomeMessage, item.FallbackMessage}
values = append(values, item.LegacyNames...)
for _, value := range values {
if hanTextPattern.MatchString(value) {
t.Fatalf("english AI agent seed contains Chinese text: %q", value)
}
}
}
}
func TestChineseAIAgentSeedUsesPresalesConfiguration(t *testing.T) {
items := seeds.AIAgentSeeds(seedlang.Chinese)
if len(items) != 1 {
t.Fatalf("expected one Chinese AI agent seed, got %d", len(items))
}
item := items[0]
if item.Name != "贝壳AI售前客服" {
t.Fatalf("unexpected Chinese AI agent name: %q", item.Name)
}
for _, expected := range []string{
"你是贝壳AIAgentDesk)的售前客服",
"# 售前对话策略",
"# 事实与工具边界",
"不得编造价格、折扣、合同条款、商业 SLA",
} {
if !strings.Contains(item.SystemPrompt, expected) {
t.Fatalf("Chinese AI agent system prompt missing %q", expected)
}
}
if !strings.Contains(item.WelcomeMessage, "贝壳AI售前客服") {
t.Fatalf("unexpected welcome message: %q", item.WelcomeMessage)
}
if !strings.Contains(item.FallbackMessage, "方案评估") {
t.Fatalf("unexpected fallback message: %q", item.FallbackMessage)
}
}
func TestBuildModelsUsesSupportedBindings(t *testing.T) {
items := buildModels(seedlang.Chinese, 7, []int64{11}, "13")
if len(items) != 1 {
t.Fatalf("expected one AI agent model, got %d", len(items))
}
item := items[0]
if item.AIConfigID != 7 || item.KnowledgeIDs != "11" || item.TeamIDs != "13" {
t.Fatalf("unexpected AI agent bindings: %+v", item)
}
columns := seedUpdateColumns(item)
if value, ok := columns["knowledge_ids"]; !ok || value != "11" {
t.Fatalf("seed update must keep knowledge bindings, got %#v", value)
}
}