Init
This commit is contained in:
@@ -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]
|
||||
}
|
||||
@@ -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]
|
||||
}
|
||||
@@ -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]
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
)
|
||||
@@ -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]
|
||||
}
|
||||
@@ -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]
|
||||
}
|
||||
@@ -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"
|
||||
)
|
||||
@@ -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"
|
||||
)
|
||||
Reference in New Issue
Block a user