feat: 重构 memory 系统,支持 user memory 和 work memory 分离
This commit is contained in:
@@ -2,10 +2,19 @@ from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from enum import Enum
|
||||
from typing import Any, ClassVar, Literal
|
||||
from typing import ClassVar, Literal
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
from schemas.memories.memory_content import (
|
||||
TeamMember,
|
||||
UserMemoryContent,
|
||||
UserPreferences,
|
||||
WorkHabit,
|
||||
WorkProfileContent,
|
||||
WorkProject,
|
||||
)
|
||||
|
||||
|
||||
class MemoryType(str, Enum):
|
||||
@@ -13,12 +22,6 @@ class MemoryType(str, Enum):
|
||||
WORK = "work"
|
||||
|
||||
|
||||
class MemorySource(str, Enum):
|
||||
MANUAL = "manual"
|
||||
AGENT = "agent"
|
||||
IMPORTED = "imported"
|
||||
|
||||
|
||||
class MemoryStatus(str, Enum):
|
||||
ACTIVE = "active"
|
||||
DISABLED = "disabled"
|
||||
@@ -33,38 +36,20 @@ class MemoryModel(BaseModel):
|
||||
owner_id: UUID
|
||||
agent_id: UUID | None = None
|
||||
memory_type: Literal["user", "work"]
|
||||
title: str | None = None
|
||||
content: dict[str, Any]
|
||||
source: MemorySource
|
||||
content: UserMemoryContent | WorkProfileContent
|
||||
status: MemoryStatus
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class MemoryContext(BaseModel):
|
||||
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
|
||||
|
||||
memory_type: MemoryType
|
||||
source: MemorySource
|
||||
title: str | None = None
|
||||
content: dict[str, Any]
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class MemoryListResponse(BaseModel):
|
||||
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
|
||||
|
||||
owner_id: UUID
|
||||
memories: list[MemoryContext] = Field(default_factory=list)
|
||||
total: int
|
||||
|
||||
|
||||
__all__ = [
|
||||
"MemoryContext",
|
||||
"MemoryListResponse",
|
||||
"MemoryModel",
|
||||
"MemorySource",
|
||||
"MemoryStatus",
|
||||
"MemoryType",
|
||||
"TeamMember",
|
||||
"UserMemoryContent",
|
||||
"UserPreferences",
|
||||
"WorkHabit",
|
||||
"WorkProfileContent",
|
||||
"WorkProject",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user