Build lightweight AI agent admin

This commit is contained in:
Codex
2026-06-08 18:14:59 +08:00
commit e164840f43
2530 changed files with 435693 additions and 0 deletions
@@ -0,0 +1,131 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Redis管理Schema
"""
from datetime import datetime
from typing import Optional, List, Any, Dict
from pydantic import BaseModel, Field
from app.base_schema import CSTDatetime
class RedisKeySchema(BaseModel):
"""Redis键Schema"""
key: str
type: str # string, list, set, zset, hash
ttl: int # -1表示永不过期,-2表示已过期
size: Optional[int] = None # 键的大小(字节)
length: Optional[int] = None # 集合/列表的元素数量
encoding: Optional[str] = None # 编码方式
class RedisKeyDetailSchema(BaseModel):
"""Redis键详情Schema"""
key: str
type: str
ttl: int
value: Any # 根据类型不同,值的格式也不同
size: Optional[int] = None
encoding: Optional[str] = None
created_at: Optional[CSTDatetime] = None
class RedisKeyCreateSchema(BaseModel):
"""创建Redis键Schema"""
key: str = Field(..., description="键名")
type: str = Field(..., description="数据类型: string, list, set, zset, hash")
value: Any = Field(..., description="")
ttl: Optional[int] = Field(None, description="过期时间(秒),-1表示永不过期")
class RedisKeyUpdateSchema(BaseModel):
"""更新Redis键Schema"""
value: Any = Field(..., description="新值")
ttl: Optional[int] = Field(None, description="过期时间(秒)")
class RedisStringValueSchema(BaseModel):
"""String类型值Schema"""
value: str
class RedisListValueSchema(BaseModel):
"""List类型值Schema"""
values: List[str]
class RedisSetValueSchema(BaseModel):
"""Set类型值Schema"""
members: List[str]
class RedisZSetValueSchema(BaseModel):
"""ZSet类型值Schema"""
members: List[Dict[str, Any]] # [{"member": "xxx", "score": 1.0}]
class RedisHashValueSchema(BaseModel):
"""Hash类型值Schema"""
fields: Dict[str, str]
class RedisKeySearchSchema(BaseModel):
"""Redis键搜索Schema"""
pattern: str = Field(default="*", description="搜索模式,支持通配符")
key_type: Optional[str] = Field(None, description="键类型过滤")
page: int = Field(default=1, ge=1, description="页码")
page_size: int = Field(default=20, ge=1, le=100, description="每页数量")
class RedisKeyListResponse(BaseModel):
"""Redis键列表响应Schema"""
total: int
keys: List[RedisKeySchema]
page: int
page_size: int
class RedisDatabaseSchema(BaseModel):
"""Redis数据库Schema"""
db_index: int
keys_count: int
expires_count: int
avg_ttl: int
class RedisDatabaseListResponse(BaseModel):
"""Redis数据库列表响应Schema"""
databases: List[RedisDatabaseSchema]
total_keys: int
class RedisKeyRenameSchema(BaseModel):
"""重命名键Schema"""
old_key: str
new_key: str
class RedisKeyExpireSchema(BaseModel):
"""设置过期时间Schema"""
key: str
ttl: int # 秒
class RedisBatchDeleteSchema(BaseModel):
"""批量删除Schema"""
keys: List[str]
class RedisFlushDBSchema(BaseModel):
"""清空数据库Schema"""
db_index: int
confirm: bool = Field(..., description="确认清空")
class RedisOperationResponse(BaseModel):
"""操作响应Schema"""
success: bool
message: str
data: Optional[Any] = None