| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- from __future__ import annotations
- from datetime import datetime
- from typing import Any, Literal
- from pydantic import BaseModel, Field
- SystemName = Literal["text2mem", "mem0", "letta", "reme", "memu"]
- class MemoryItem(BaseModel):
- """不同记忆系统对外展示的统一数据结构。"""
- id: str
- system: str
- workspace_id: str
- content: str
- memory_type: str = "semantic"
- scope: str = "workspace"
- source: str = "user_direct"
- confidence: float = 1.0
- valid_from: datetime | None = None
- valid_to: datetime | None = None
- created_at: datetime
- updated_at: datetime
- metadata: dict[str, Any] = Field(default_factory=dict)
- class AuditEvent(BaseModel):
- """记录一次记忆操作及其执行结果。"""
- id: str
- system: str
- workspace_id: str
- operation: str
- target: str | None = None
- status: str = "ok"
- details: dict[str, Any] = Field(default_factory=dict)
- created_at: datetime
- class SystemDescriptor(BaseModel):
- """描述适配器能力、依赖和当前可用状态。"""
- id: SystemName
- name: str
- paradigm: str
- description: str
- available: bool
- mode: str
- status: str
- package: str | None = None
- setup_hint: str | None = None
- class ChatRequest(BaseModel):
- system: SystemName
- message: str = Field(min_length=1, max_length=10000)
- class ChatResponse(BaseModel):
- """统一对话响应,包含回答、召回记忆和操作轨迹。"""
- system: SystemName
- answer: str
- mode: str
- memory_context: list[MemoryItem] = Field(default_factory=list)
- memory_events: list[dict[str, Any]] = Field(default_factory=list)
- audit_events: list[AuditEvent] = Field(default_factory=list)
- class ResetRequest(BaseModel):
- system: SystemName | None = None
|