This commit is contained in:
mlogclub
2026-04-09 10:01:23 +08:00
commit efe801b8bf
707 changed files with 110595 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
package enums
type ServiceStatus int
const (
ServiceStatusIdle ServiceStatus = 0
ServiceStatusBusy ServiceStatus = 1
)
var ServiceStatusValues = []ServiceStatus{
ServiceStatusIdle,
ServiceStatusBusy,
}
var serviceStatusLabelMap = map[ServiceStatus]string{
ServiceStatusIdle: "空闲",
ServiceStatusBusy: "忙碌",
}
func IsValidServiceStatus(status ServiceStatus) bool {
for _, item := range ServiceStatusValues {
if item == status {
return true
}
}
return false
}
func GetServiceStatusLabel(status ServiceStatus) string {
return serviceStatusLabelMap[status]
}
+33
View File
@@ -0,0 +1,33 @@
package enums
type AIProvider string
const (
AIProviderOpenAI AIProvider = "openai"
)
var aiProviderLabelMap = map[AIProvider]string{
AIProviderOpenAI: "OpenAI",
}
func GetAIProviderLabel(provider AIProvider) string {
return aiProviderLabelMap[provider]
}
type AIModelType string
const (
AIModelTypeLLM AIModelType = "llm"
AIModelTypeEmbedding AIModelType = "embedding"
AIModelTypeRerank AIModelType = "rerank"
)
var aiModelTypeLabelMap = map[AIModelType]string{
AIModelTypeLLM: "大语言模型",
AIModelTypeEmbedding: "向量模型",
AIModelTypeRerank: "重排序模型",
}
func GetAIModelTypeLabel(modelType AIModelType) string {
return aiModelTypeLabelMap[modelType]
}
+37
View File
@@ -0,0 +1,37 @@
package enums
type AssetStatus int
const (
AssetStatusPending AssetStatus = 1
AssetStatusSuccess AssetStatus = 2
AssetStatusFailed AssetStatus = 3
AssetStatusDeleted AssetStatus = 4
)
var assetStatusLabelMap = map[AssetStatus]string{
AssetStatusPending: "处理中",
AssetStatusSuccess: "成功",
AssetStatusFailed: "失败",
AssetStatusDeleted: "已删除",
}
func GetAssetStatusLabel(status AssetStatus) string {
return assetStatusLabelMap[status]
}
type AssetProvider string
const (
AssetProviderLocal AssetProvider = "local"
AssetProviderOSS AssetProvider = "oss"
)
var assetProviderLabelMap = map[AssetProvider]string{
AssetProviderLocal: "本地存储",
AssetProviderOSS: "对象存储",
}
func GetAssetProviderLabel(provider AssetProvider) string {
return assetProviderLabelMap[provider]
}
+40
View File
@@ -0,0 +1,40 @@
package enums
// CustomerSourceType 已合并为 ExternalIdentitySource,保留类型别名以兼容旧代码。
type CustomerSourceType = ExternalSource
const CustomerSourceTypeWebChat = ExternalSourceWebChat
func GetCustomerSourceTypeLabel(sourceType CustomerSourceType) string {
return GetExternalSourceLabel(ExternalSource(sourceType))
}
// 联系方式类型
type ContactType string
const (
ContactTypeMobile ContactType = "mobile"
ContactTypeEmail ContactType = "email"
ContactTypeWeChat ContactType = "wechat"
ContactTypeOther ContactType = "other"
)
var contactTypeLabelMap = map[ContactType]string{
ContactTypeMobile: "手机号",
ContactTypeEmail: "邮箱",
ContactTypeOther: "其他",
}
func GetContactTypeLabel(contactType ContactType) string {
return contactTypeLabelMap[contactType]
}
// IsValidContactType 判断字符串是否为合法联系方式类型。
func IsValidContactType(v string) bool {
switch ContactType(v) {
case ContactTypeMobile, ContactTypeEmail, ContactTypeWeChat, ContactTypeOther:
return true
default:
return false
}
}
+86
View File
@@ -0,0 +1,86 @@
package enums
type Status int
const (
StatusOk Status = 0
StatusDisabled Status = 1
StatusDeleted Status = 2
)
var StatusValues = []Status{StatusOk, StatusDisabled, StatusDeleted}
var statusLabelMap = map[Status]string{
StatusOk: "启用",
StatusDisabled: "禁用",
StatusDeleted: "已删除",
}
func GetStatusLabel(status Status) string {
return statusLabelMap[status]
}
func IsValidStatus(status int) bool {
for _, s := range StatusValues {
if int(s) == status {
return true
}
}
return false
}
type Gender int
const (
GenderUnknown Gender = 0
GenderMale Gender = 1
GenderFemale Gender = 2
)
var GenderValues = []Gender{GenderUnknown, GenderMale, GenderFemale}
var genderLabelMap = map[Gender]string{
GenderUnknown: "未知",
GenderMale: "男",
GenderFemale: "女",
}
func GetGenderLabel(gender Gender) string {
return genderLabelMap[gender]
}
func IsValidGender(gender int) bool {
for _, g := range GenderValues {
if int(g) == gender {
return true
}
}
return false
}
type ThirdProvider string
const (
ThirdProviderWxWork ThirdProvider = "wxwork"
ThirdProviderDingtalk ThirdProvider = "dingtalk"
)
var ThirdProviderValues = []ThirdProvider{ThirdProviderWxWork, ThirdProviderDingtalk}
var thirdProviderLabelMap = map[ThirdProvider]string{
ThirdProviderWxWork: "企业微信",
ThirdProviderDingtalk: "钉钉",
}
func GetThirdProviderLabel(provider ThirdProvider) string {
return thirdProviderLabelMap[provider]
}
func IsValidThirdProvider(provider string) bool {
for _, p := range ThirdProviderValues {
if string(p) == provider {
return true
}
}
return false
}
+33
View File
@@ -0,0 +1,33 @@
package enums
// ExternalSource 外部身份来源。
//
// 与 ExternalID 组合即可唯一标识某渠道下的访客身份。
type ExternalSource string
const (
ExternalSourceWebChat ExternalSource = "web_chat"
ExternalSourceWxWorkKF ExternalSource = "wxwork_kf"
)
var externalSourceLabelMap = map[ExternalSource]string{
ExternalSourceWebChat: "网页客服",
ExternalSourceWxWorkKF: "企业微信客服",
}
func GetExternalSourceLabel(v ExternalSource) string {
if s, ok := externalSourceLabelMap[v]; ok {
return s
}
return string(v)
}
// IsAllowedOpenImExternalSource 开放 IM 入口允许的外部来源(闭集校验)。
func IsAllowedOpenImExternalSource(s ExternalSource) bool {
switch s {
case ExternalSourceWebChat:
return true
default:
return false
}
}
+266
View File
@@ -0,0 +1,266 @@
package enums
type IMConversationStatus int
const (
IMConversationStatusPending IMConversationStatus = 1
IMConversationStatusActive IMConversationStatus = 2
IMConversationStatusClosed IMConversationStatus = 3
)
var imConversationStatusLabelMap = map[IMConversationStatus]string{
IMConversationStatusPending: "待接入",
IMConversationStatusActive: "处理中",
IMConversationStatusClosed: "已关闭",
}
var IMConversationStatusValues = []IMConversationStatus{
IMConversationStatusPending,
IMConversationStatusActive,
IMConversationStatusClosed,
}
func GetIMConversationStatusLabel(status IMConversationStatus) string {
return imConversationStatusLabelMap[status]
}
type IMConversationServiceMode int
const (
IMConversationServiceModeAIOnly IMConversationServiceMode = 1
IMConversationServiceModeHumanOnly IMConversationServiceMode = 2
IMConversationServiceModeAIFirst IMConversationServiceMode = 3
)
var IMConversationServiceModeValues = []IMConversationServiceMode{
IMConversationServiceModeAIOnly,
IMConversationServiceModeHumanOnly,
IMConversationServiceModeAIFirst,
}
var imConversationServiceModeLabelMap = map[IMConversationServiceMode]string{
IMConversationServiceModeAIOnly: "仅AI",
IMConversationServiceModeHumanOnly: "仅人工",
IMConversationServiceModeAIFirst: "AI优先",
}
func GetIMConversationServiceModeLabel(mode IMConversationServiceMode) string {
return imConversationServiceModeLabelMap[mode]
}
type IMSenderType string
const (
IMSenderTypeAgent IMSenderType = "agent"
IMSenderTypeCustomer IMSenderType = "customer"
IMSenderTypeAI IMSenderType = "ai"
IMSenderTypeSystem IMSenderType = "system"
)
var imSenderTypeLabelMap = map[IMSenderType]string{
IMSenderTypeAgent: "客服",
IMSenderTypeCustomer: "客户",
IMSenderTypeAI: "AI",
IMSenderTypeSystem: "系统",
}
func GetIMSenderTypeLabel(senderType IMSenderType) string {
return imSenderTypeLabelMap[senderType]
}
type IMParticipantType string
const (
IMParticipantTypeCustomer IMParticipantType = "customer"
IMParticipantTypeAgent IMParticipantType = "agent"
IMParticipantTypeAI IMParticipantType = "ai"
IMParticipantTypeSystem IMParticipantType = "system"
)
var imParticipantTypeLabelMap = map[IMParticipantType]string{
IMParticipantTypeCustomer: "客户",
IMParticipantTypeAgent: "客服",
IMParticipantTypeAI: "AI",
IMParticipantTypeSystem: "系统",
}
func GetIMParticipantTypeLabel(participantType IMParticipantType) string {
return imParticipantTypeLabelMap[participantType]
}
type IMAssignmentType string
const (
IMAssignmentTypeAssign IMAssignmentType = "assign"
IMAssignmentTypeTransfer IMAssignmentType = "transfer"
)
var imAssignmentTypeLabelMap = map[IMAssignmentType]string{
IMAssignmentTypeAssign: "分配",
IMAssignmentTypeTransfer: "转接",
}
func GetIMAssignmentTypeLabel(assignType IMAssignmentType) string {
return imAssignmentTypeLabelMap[assignType]
}
type IMAssignmentStatus int
const (
IMAssignmentStatusActive IMAssignmentStatus = 0
IMAssignmentStatusInactive IMAssignmentStatus = 1
)
var imAssignmentStatusLabelMap = map[IMAssignmentStatus]string{
IMAssignmentStatusActive: "进行中",
IMAssignmentStatusInactive: "已结束",
}
func GetIMAssignmentStatusLabel(status IMAssignmentStatus) string {
return imAssignmentStatusLabelMap[status]
}
type IMMessageType string
const (
IMMessageTypeText IMMessageType = "text"
IMMessageTypeImage IMMessageType = "image"
IMMessageTypeAttachment IMMessageType = "attachment"
IMMessageTypeHTML IMMessageType = "html"
)
var imMessageTypeLabelMap = map[IMMessageType]string{
IMMessageTypeText: "文本",
IMMessageTypeImage: "图片",
IMMessageTypeAttachment: "附件",
IMMessageTypeHTML: "富文本",
}
func GetIMMessageTypeLabel(messageType IMMessageType) string {
return imMessageTypeLabelMap[messageType]
}
type IMMessageStatus int
const (
IMMessageStatusSending IMMessageStatus = 1
IMMessageStatusSent IMMessageStatus = 2
IMMessageStatusDelivered IMMessageStatus = 3
IMMessageStatusRead IMMessageStatus = 4
IMMessageStatusFailed IMMessageStatus = 5
IMMessageStatusRecalled IMMessageStatus = 6
)
var imMessageStatusLabelMap = map[IMMessageStatus]string{
IMMessageStatusSending: "发送中",
IMMessageStatusSent: "已发送",
IMMessageStatusDelivered: "已送达",
IMMessageStatusRead: "已读",
IMMessageStatusFailed: "发送失败",
IMMessageStatusRecalled: "已撤回",
}
func GetIMMessageStatusLabel(status IMMessageStatus) string {
return imMessageStatusLabelMap[status]
}
type IMEventType string
const (
IMEventTypeCreate IMEventType = "create"
IMEventTypeAssign IMEventType = "assign"
IMEventTypeTransfer IMEventType = "transfer"
IMEventTypeClose IMEventType = "close"
IMEventTypeMessageSend IMEventType = "message_send"
IMEventTypeMessageRecall IMEventType = "message_recall"
)
var imEventTypeLabelMap = map[IMEventType]string{
IMEventTypeCreate: "创建会话",
IMEventTypeAssign: "分配会话",
IMEventTypeTransfer: "转接会话",
IMEventTypeClose: "关闭会话",
IMEventTypeMessageSend: "发送消息",
IMEventTypeMessageRecall: "撤回消息",
}
func GetIMEventTypeLabel(eventType IMEventType) string {
return imEventTypeLabelMap[eventType]
}
type AIAgentHandoffMode int
const (
AIAgentHandoffModeWaitPool AIAgentHandoffMode = 1
AIAgentHandoffModeDefaultTeamPool AIAgentHandoffMode = 2
AIAgentHandoffModeAIHoldAndNotify AIAgentHandoffMode = 3
)
var AIAgentHandoffModeValues = []AIAgentHandoffMode{
AIAgentHandoffModeWaitPool,
AIAgentHandoffModeDefaultTeamPool,
AIAgentHandoffModeAIHoldAndNotify,
}
var aiAgentHandoffModeLabelMap = map[AIAgentHandoffMode]string{
AIAgentHandoffModeWaitPool: "进入待接入池",
AIAgentHandoffModeDefaultTeamPool: "进入默认客服组待接入池",
AIAgentHandoffModeAIHoldAndNotify: "AI托底并提醒人工",
}
func GetAIAgentHandoffModeLabel(mode AIAgentHandoffMode) string {
return aiAgentHandoffModeLabelMap[mode]
}
type AIAgentFallbackMode int
const (
AIAgentFallbackModeNoAnswer AIAgentFallbackMode = 1
AIAgentFallbackModeGuideRephrase AIAgentFallbackMode = 2
AIAgentFallbackModeHandoff AIAgentFallbackMode = 3
)
var AIAgentFallbackModeValues = []AIAgentFallbackMode{
AIAgentFallbackModeNoAnswer,
AIAgentFallbackModeGuideRephrase,
AIAgentFallbackModeHandoff,
}
var aiAgentFallbackModeLabelMap = map[AIAgentFallbackMode]string{
AIAgentFallbackModeNoAnswer: "直接声明无答案",
AIAgentFallbackModeGuideRephrase: "引导补充信息或换个问法",
AIAgentFallbackModeHandoff: "直接转人工",
}
func GetAIAgentFallbackModeLabel(mode AIAgentFallbackMode) string {
return aiAgentFallbackModeLabelMap[mode]
}
const (
IMRealtimeEventConnected = "connected"
IMRealtimeEventPong = "pong"
IMRealtimeEventSubscribed = "subscribed"
IMRealtimeEventUnsubscribed = "unsubscribed"
IMRealtimeEventResyncRequired = "resyncRequired"
IMRealtimeEventMessageCreated = "message.created"
IMRealtimeEventMessageRecalled = "message.recalled"
IMRealtimeEventConversationCreated = "conversation.created"
IMRealtimeEventConversationUpdated = "conversation.updated"
IMRealtimeEventConversationAssigned = "conversation.assigned"
IMRealtimeEventConversationTransferred = "conversation.transferred"
IMRealtimeEventConversationClosed = "conversation.closed"
IMRealtimeEventConversationRead = "conversation.read"
)
const (
IMRealtimeClientTypePing = "ping"
IMRealtimeClientTypeSubscribe = "subscribe"
IMRealtimeClientTypeUnsubscribe = "unsubscribe"
IMRealtimeClientTypeAck = "ack"
)
const (
IMRealtimeResyncReasonInvalidPayload = "invalid_payload"
IMRealtimeResyncReasonUnsupportedMessageType = "unsupported_message_type"
IMRealtimeResyncReasonManual = "manual"
)
+234
View File
@@ -0,0 +1,234 @@
package enums
type VectorDBType string
const (
VectorDBTypeQdrant VectorDBType = "qdrant"
)
var vectorDBTypeLabelMap = map[VectorDBType]string{
VectorDBTypeQdrant: "Qdrant",
}
func GetVectorDBTypeLabel(dbType VectorDBType) string {
return vectorDBTypeLabelMap[dbType]
}
type KnowledgeDocumentContentType string
const (
KnowledgeDocumentContentTypeHTML KnowledgeDocumentContentType = "html"
KnowledgeDocumentContentTypeMarkdown KnowledgeDocumentContentType = "markdown"
)
type KnowledgeBaseType string
const (
KnowledgeBaseTypeDocument KnowledgeBaseType = "document"
KnowledgeBaseTypeFAQ KnowledgeBaseType = "faq"
)
var knowledgeBaseTypeLabelMap = map[KnowledgeBaseType]string{
KnowledgeBaseTypeDocument: "文档知识库",
KnowledgeBaseTypeFAQ: "FAQ知识库",
}
func GetKnowledgeBaseTypeLabel(knowledgeType KnowledgeBaseType) string {
return knowledgeBaseTypeLabelMap[knowledgeType]
}
var knowledgeDocumentContentTypeLabelMap = map[KnowledgeDocumentContentType]string{
KnowledgeDocumentContentTypeHTML: "HTML",
KnowledgeDocumentContentTypeMarkdown: "Markdown",
}
func GetKnowledgeDocumentContentTypeLabel(contentType KnowledgeDocumentContentType) string {
return knowledgeDocumentContentTypeLabelMap[contentType]
}
type KnowledgeDocumentIndexStatus string
const (
KnowledgeDocumentIndexStatusPending KnowledgeDocumentIndexStatus = "pending"
KnowledgeDocumentIndexStatusIndexed KnowledgeDocumentIndexStatus = "indexed"
KnowledgeDocumentIndexStatusFailed KnowledgeDocumentIndexStatus = "failed"
)
var KnowledgeDocumentIndexStatusValues = []KnowledgeDocumentIndexStatus{
KnowledgeDocumentIndexStatusPending,
KnowledgeDocumentIndexStatusIndexed,
KnowledgeDocumentIndexStatusFailed,
}
var knowledgeDocumentIndexStatusLabelMap = map[KnowledgeDocumentIndexStatus]string{
KnowledgeDocumentIndexStatusPending: "待索引",
KnowledgeDocumentIndexStatusIndexed: "已索引",
KnowledgeDocumentIndexStatusFailed: "索引失败",
}
func GetKnowledgeDocumentIndexStatusLabel(status KnowledgeDocumentIndexStatus) string {
return knowledgeDocumentIndexStatusLabelMap[status]
}
func IsValidKnowledgeDocumentIndexStatus(status string) bool {
for _, item := range KnowledgeDocumentIndexStatusValues {
if string(item) == status {
return true
}
}
return false
}
type KnowledgeChunkType string
const (
KnowledgeChunkTypeText KnowledgeChunkType = "text"
KnowledgeChunkTypeFAQ KnowledgeChunkType = "faq"
KnowledgeChunkTypeTable KnowledgeChunkType = "table"
KnowledgeChunkTypeCode KnowledgeChunkType = "code"
)
var knowledgeChunkTypeLabelMap = map[KnowledgeChunkType]string{
KnowledgeChunkTypeText: "文本",
KnowledgeChunkTypeFAQ: "问答",
KnowledgeChunkTypeTable: "表格",
KnowledgeChunkTypeCode: "代码",
}
func GetKnowledgeChunkTypeLabel(chunkType KnowledgeChunkType) string {
return knowledgeChunkTypeLabelMap[chunkType]
}
type KnowledgeChunkProvider string
const (
KnowledgeChunkProviderFixed KnowledgeChunkProvider = "fixed"
KnowledgeChunkProviderStructured KnowledgeChunkProvider = "structured"
KnowledgeChunkProviderFAQ KnowledgeChunkProvider = "faq"
KnowledgeChunkProviderSemantic KnowledgeChunkProvider = "semantic"
)
var knowledgeChunkProviderLabelMap = map[KnowledgeChunkProvider]string{
KnowledgeChunkProviderFixed: "固定长度",
KnowledgeChunkProviderStructured: "结构化分块",
KnowledgeChunkProviderFAQ: "问答式分块",
KnowledgeChunkProviderSemantic: "语义分块",
}
func GetKnowledgeChunkProviderLabel(provider KnowledgeChunkProvider) string {
return knowledgeChunkProviderLabelMap[provider]
}
type KnowledgeRetrieveChannel string
const (
KnowledgeRetrieveChannelIM KnowledgeRetrieveChannel = "im"
KnowledgeRetrieveChannelAgentAssist KnowledgeRetrieveChannel = "agent_assist"
KnowledgeRetrieveChannelAPI KnowledgeRetrieveChannel = "api"
KnowledgeRetrieveChannelDebug KnowledgeRetrieveChannel = "debug"
)
var knowledgeRetrieveChannelLabelMap = map[KnowledgeRetrieveChannel]string{
KnowledgeRetrieveChannelIM: "客服会话",
KnowledgeRetrieveChannelAgentAssist: "客服助手",
KnowledgeRetrieveChannelAPI: "API接口",
KnowledgeRetrieveChannelDebug: "调试",
}
func GetKnowledgeRetrieveChannelLabel(channel KnowledgeRetrieveChannel) string {
return knowledgeRetrieveChannelLabelMap[channel]
}
type KnowledgeRetrieveScene string
const (
KnowledgeRetrieveSceneFirstResponse KnowledgeRetrieveScene = "first_response"
KnowledgeRetrieveSceneAssist KnowledgeRetrieveScene = "assist"
KnowledgeRetrieveSceneQA KnowledgeRetrieveScene = "qa"
)
var knowledgeRetrieveSceneLabelMap = map[KnowledgeRetrieveScene]string{
KnowledgeRetrieveSceneFirstResponse: "首次回复",
KnowledgeRetrieveSceneAssist: "辅助回复",
KnowledgeRetrieveSceneQA: "问答",
}
func GetKnowledgeRetrieveSceneLabel(scene KnowledgeRetrieveScene) string {
return knowledgeRetrieveSceneLabelMap[scene]
}
type KnowledgeAnswerStatus int
const (
KnowledgeAnswerStatusNormal KnowledgeAnswerStatus = 1
KnowledgeAnswerStatusNoAnswer KnowledgeAnswerStatus = 2
KnowledgeAnswerStatusFallback KnowledgeAnswerStatus = 3
KnowledgeAnswerStatusBlocked KnowledgeAnswerStatus = 4
)
var knowledgeAnswerStatusLabelMap = map[KnowledgeAnswerStatus]string{
KnowledgeAnswerStatusNormal: "正常",
KnowledgeAnswerStatusNoAnswer: "无答案",
KnowledgeAnswerStatusFallback: "兜底回复",
KnowledgeAnswerStatusBlocked: "已屏蔽",
}
func GetKnowledgeAnswerStatusLabel(status KnowledgeAnswerStatus) string {
return knowledgeAnswerStatusLabelMap[status]
}
type KnowledgeFeedbackType int
const (
KnowledgeFeedbackTypeLike KnowledgeFeedbackType = 1
KnowledgeFeedbackTypeDislike KnowledgeFeedbackType = 2
KnowledgeFeedbackTypeNotHelpful KnowledgeFeedbackType = 3
KnowledgeFeedbackTypeWrongCitation KnowledgeFeedbackType = 4
KnowledgeFeedbackTypeOther KnowledgeFeedbackType = 5
)
var knowledgeFeedbackTypeLabelMap = map[KnowledgeFeedbackType]string{
KnowledgeFeedbackTypeLike: "点赞",
KnowledgeFeedbackTypeDislike: "点踩",
KnowledgeFeedbackTypeNotHelpful: "无帮助",
KnowledgeFeedbackTypeWrongCitation: "引用错误",
KnowledgeFeedbackTypeOther: "其他",
}
func GetKnowledgeFeedbackTypeLabel(feedbackType KnowledgeFeedbackType) string {
return knowledgeFeedbackTypeLabelMap[feedbackType]
}
type KnowledgeAnswerMode int
const (
KnowledgeAnswerModeStrict KnowledgeAnswerMode = 1
KnowledgeAnswerModeAssist KnowledgeAnswerMode = 2
)
var knowledgeAnswerModeLabelMap = map[KnowledgeAnswerMode]string{
KnowledgeAnswerModeStrict: "严格模式",
KnowledgeAnswerModeAssist: "辅助模式",
}
func GetKnowledgeAnswerModeLabel(mode KnowledgeAnswerMode) string {
return knowledgeAnswerModeLabelMap[mode]
}
type KnowledgeFallbackMode int
const (
KnowledgeFallbackModeNoAnswer KnowledgeFallbackMode = 1
KnowledgeFallbackModeSuggestRetry KnowledgeFallbackMode = 2
KnowledgeFallbackModeTransferHuman KnowledgeFallbackMode = 3
)
var knowledgeFallbackModeLabelMap = map[KnowledgeFallbackMode]string{
KnowledgeFallbackModeNoAnswer: "直接声明无答案",
KnowledgeFallbackModeSuggestRetry: "建议重试",
KnowledgeFallbackModeTransferHuman: "转人工",
}
func GetKnowledgeFallbackModeLabel(mode KnowledgeFallbackMode) string {
return knowledgeFallbackModeLabelMap[mode]
}
+17
View File
@@ -0,0 +1,17 @@
package enums
type SkillExecutionMode string
const (
SkillExecutionModePromptOnly SkillExecutionMode = "prompt_only"
SkillExecutionModeMCPTool SkillExecutionMode = "mcp_tool"
)
var skillExecutionModeLabelMap = map[SkillExecutionMode]string{
SkillExecutionModePromptOnly: "Prompt直出",
SkillExecutionModeMCPTool: "MCP工具",
}
func GetSkillExecutionModeLabel(mode SkillExecutionMode) string {
return skillExecutionModeLabelMap[mode]
}
+156
View File
@@ -0,0 +1,156 @@
package enums
type TicketStatus string
const (
TicketStatusNew TicketStatus = "new"
TicketStatusOpen TicketStatus = "open"
TicketStatusPendingCustomer TicketStatus = "pending_customer"
TicketStatusPendingInternal TicketStatus = "pending_internal"
TicketStatusResolved TicketStatus = "resolved"
TicketStatusClosed TicketStatus = "closed"
TicketStatusCancelled TicketStatus = "cancelled"
)
var TicketStatusValues = []TicketStatus{
TicketStatusNew,
TicketStatusOpen,
TicketStatusPendingCustomer,
TicketStatusPendingInternal,
TicketStatusResolved,
TicketStatusClosed,
TicketStatusCancelled,
}
var ticketStatusLabelMap = map[TicketStatus]string{
TicketStatusNew: "新建",
TicketStatusOpen: "处理中",
TicketStatusPendingCustomer: "待客户反馈",
TicketStatusPendingInternal: "待内部处理",
TicketStatusResolved: "已解决",
TicketStatusClosed: "已关闭",
TicketStatusCancelled: "已取消",
}
func GetTicketStatusLabel(status TicketStatus) string {
return ticketStatusLabelMap[status]
}
func IsValidTicketStatus(status string) bool {
for _, item := range TicketStatusValues {
if string(item) == status {
return true
}
}
return false
}
type TicketSeverity int
const (
TicketSeverityMinor TicketSeverity = 1
TicketSeverityMajor TicketSeverity = 2
TicketSeverityCritical TicketSeverity = 3
)
var TicketSeverityValues = []TicketSeverity{
TicketSeverityMinor,
TicketSeverityMajor,
TicketSeverityCritical,
}
var ticketSeverityLabelMap = map[TicketSeverity]string{
TicketSeverityMinor: "轻微",
TicketSeverityMajor: "严重",
TicketSeverityCritical: "致命",
}
func GetTicketSeverityLabel(severity TicketSeverity) string {
return ticketSeverityLabelMap[severity]
}
func IsValidTicketSeverity(severity int) bool {
for _, item := range TicketSeverityValues {
if int(item) == severity {
return true
}
}
return false
}
type TicketSource string
const (
TicketSourceManual TicketSource = "manual"
TicketSourceConversation TicketSource = "conversation"
TicketSourcePortal TicketSource = "portal"
TicketSourceAPI TicketSource = "api"
TicketSourceRule TicketSource = "rule"
)
var TicketSourceValues = []TicketSource{
TicketSourceManual,
TicketSourceConversation,
TicketSourcePortal,
TicketSourceAPI,
TicketSourceRule,
}
func IsValidTicketSource(source string) bool {
for _, item := range TicketSourceValues {
if string(item) == source {
return true
}
}
return false
}
type TicketCommentType string
const (
TicketCommentTypePublicReply TicketCommentType = "public_reply"
TicketCommentTypeInternalNote TicketCommentType = "internal_note"
TicketCommentTypeSystemLog TicketCommentType = "system_log"
)
type TicketEventType string
const (
TicketEventTypeCreated TicketEventType = "created"
TicketEventTypeUpdated TicketEventType = "updated"
TicketEventTypeAssigned TicketEventType = "assigned"
TicketEventTypeTransferred TicketEventType = "transferred"
TicketEventTypeStatusChanged TicketEventType = "status_changed"
TicketEventTypeReplied TicketEventType = "replied"
TicketEventTypeInternalNoted TicketEventType = "internal_noted"
TicketEventTypeClosed TicketEventType = "closed"
TicketEventTypeReopened TicketEventType = "reopened"
TicketEventTypeSLABreached TicketEventType = "sla_breached"
TicketEventTypeLinkedConversation TicketEventType = "linked_conversation"
TicketEventTypeMentioned TicketEventType = "mentioned"
)
type TicketSLAType string
const (
TicketSLATypeFirstResponse TicketSLAType = "first_response"
TicketSLATypeResolution TicketSLAType = "resolution"
)
type TicketSLAStatus string
const (
TicketSLAStatusRunning TicketSLAStatus = "running"
TicketSLAStatusPaused TicketSLAStatus = "paused"
TicketSLAStatusCompleted TicketSLAStatus = "completed"
TicketSLAStatusBreached TicketSLAStatus = "breached"
)
type TicketRelationType string
const (
TicketRelationTypeDuplicate TicketRelationType = "duplicate"
TicketRelationTypeRelated TicketRelationType = "related"
TicketRelationTypeParent TicketRelationType = "parent"
TicketRelationTypeChild TicketRelationType = "child"
)
+50
View File
@@ -0,0 +1,50 @@
package enums
type WxWorkKFMessageDirection string
const (
WxWorkKFMessageDirectionIn WxWorkKFMessageDirection = "in"
WxWorkKFMessageDirectionOut WxWorkKFMessageDirection = "out"
)
type ChannelMessageOutboxStatus string
const (
ChannelMessageOutboxStatusPending ChannelMessageOutboxStatus = "pending"
ChannelMessageOutboxStatusSending ChannelMessageOutboxStatus = "sending"
ChannelMessageOutboxStatusSent ChannelMessageOutboxStatus = "sent"
ChannelMessageOutboxStatusFailed ChannelMessageOutboxStatus = "failed"
)
const (
ChannelTypeWeb = "web"
ChannelTypeWxWorkKF = "wxwork_kf"
)
type WxWorkKFMessageSendStatus string
const (
WxWorkKFMessageSendStatusReceived WxWorkKFMessageSendStatus = "received"
WxWorkKFMessageSendStatusSent WxWorkKFMessageSendStatus = "sent"
WxWorkKFMessageSendStatusFailed WxWorkKFMessageSendStatus = "failed"
)
type WxWorkKFSessionStatus string
const (
WxWorkKFSessionStatusActive WxWorkKFSessionStatus = "active"
WxWorkKFSessionStatusTransfer WxWorkKFSessionStatus = "transfer"
WxWorkKFSessionStatusClosed WxWorkKFSessionStatus = "closed"
)
const (
WxWorkKFEventTypeEnterSession = "enter_session"
WxWorkKFEventTypeSessionStatusChange = "session_status_change"
WxWorkKFEventTypeMsgSendFail = "msg_send_fail"
)
const (
IMEventTypeWxWorkKFSync IMEventType = "wxwork_kf_sync"
IMEventTypeWxWorkKFEvent IMEventType = "wxwork_kf_event"
IMEventTypeWxWorkKFOutbound IMEventType = "wxwork_kf_outbound"
)