提交5个文件, 修改了mongo方法, 如果token获取错误, 然后获取完租户id后, 把错误清除

This commit is contained in:
Cold
2025-12-24 18:33:11 +08:00
committed by 张斌
parent 3dc3ebc9ad
commit ecf3c29759
5 changed files with 88 additions and 41 deletions

View File

@@ -487,9 +487,10 @@ const (
// UserState 用户会话状态(阶段+对话计数+咨询方向,统一5分钟过期
type UserState struct {
Stage int `json:"stage"` // 用户阶段5=未选择方向 0=AI模型 1=打招呼 2=业务 3=发卡片
Count int64 `json:"count"` // 对话计数
Direction string `json:"direction"` // 用户选择的咨询方向(如:产品咨询、售后服务
Stage int `json:"stage"` // 当前阶段
Direction string `json:"direction"` // 咨询方向
Count int64 `json:"count"` // 对话计数v5.2卡片触发
CustomerServiceId string `json:"customerServiceId"` // 用户选择的方向对应的客服账号ID
}
// GetUserState 获取用户状态(阶段+计数)
@@ -528,6 +529,17 @@ func SetUserStage(ctx context.Context, userId, platform string, stage int) error
return err
}
// SetUserCustomerServiceId 设置用户对应的客服账号ID并刷新过期时间
func SetUserCustomerServiceId(ctx context.Context, userId, platform, customerServiceId string) error {
key := UserStateKeyPrefix + userId + "_" + platform
_, err := redisClient.Do(ctx, "HSET", key, "customerServiceId", customerServiceId)
if err != nil {
return err
}
_, err = redisClient.Do(ctx, "EXPIRE", key, UserStateExpireSeconds)
return err
}
// SetUserDirection 设置用户选择的咨询方向,并刷新过期时间
func SetUserDirection(ctx context.Context, userId, platform, direction string) error {
key := UserStateKeyPrefix + userId + "_" + platform

View File

@@ -10,15 +10,17 @@ type HistoryMessage struct {
// SendStreamMessage 发送到 Redis Stream 的消息结构
type SendStreamMessage struct {
UserId string `json:"user_id"` // 用户ID
Content string `json:"content"` // 消息内容
Timestamp int64 `json:"timestamp"` // 时间戳(秒)
MessageId string `json:"message_id"` // 消息唯一ID
Platform string `json:"platform,omitempty"` // 平台标识
AccountId string `json:"account_id,omitempty"` // 账号ID
TenantId string `json:"tenant_id,omitempty"` // 租户ID数据隔离
ReplyQueue string `json:"reply_queue,omitempty"` // 响应队列名称(支持多实例独立队列)
History []HistoryMessage `json:"history,omitempty"` // 历史对话(归档后恢复时携带
UserId string `json:"user_id"` // 用户ID
Content string `json:"content"` // 消息内容
Timestamp int64 `json:"timestamp"` // 时间戳(秒)
MessageId string `json:"message_id"` // 消息唯一ID
Platform string `json:"platform,omitempty"` // 平台标识
AccountId string `json:"account_id,omitempty"` // 账号ID
TenantId string `json:"tenant_id,omitempty"` // 租户ID数据隔离
CustomerServiceId string `json:"customer_service_id,omitempty"` // 客服账号ID
ChatId string `json:"chat_id,omitempty"` // RAGFlow Chat ID从ragflow_config查询
ReplyQueue string `json:"reply_queue,omitempty"` // 响应队列名称(支持多实例独立队列)
History []HistoryMessage `json:"history,omitempty"` // 历史对话(归档后恢复时携带)
}
// BatchStreamMessage 批量消息结构