初始化提交

This commit is contained in:
chenxin committed 2026-08-21 16:00:13 +08:00
commit 887c1f449e
963 files changed
+166869

No files matched your search

+109
View File
@@ -0,0 +1,109 @@
"""记忆 API schema。"""
from pydantic import BaseModel, ConfigDict, Field
class MemoryCreateRequest(BaseModel):
model_config = ConfigDict(
json_schema_extra={
"examples": [
{
"type": "user",
"title": "回答偏好",
"content": "用户喜欢简洁、直接、带验证结果的中文回答。",
"source": "user_explicit",
"confidence": 1.0,
"importance": 0.8,
"sensitivity": "low",
"evidence_ids": ["message_462927da6f0e4af780dd28fd58f73314"],
"character_id": "character_ec83d55746c54e47ab6f98d683032626",
}
]
}
)
type: str = Field(
default="user", max_length=60, description="记忆类型,取值见契约字典 memory.type。"
)
title: str = Field(max_length=200, description="记忆标题。")
content: str = Field(min_length=1, description="记忆正文。")
source: str = Field(
default="user_explicit", description="记忆来源,取值见契约字典 memory.source。"
)
confidence: float = Field(default=1.0, ge=0.0, le=1.0, description="置信度,范围 0.0–1.0。")
importance: float = Field(default=0.5, ge=0.0, le=1.0, description="重要性,范围 0.0–1.0。")
sensitivity: str = Field(default="low", description="敏感等级:none / low / medium / high。")
evidence_ids: list[str] = Field(default_factory=list, description="证据 ID 列表。")
character_id: str | None = Field(default=None, description="人物 ID;为空时使用当前激活人物。")
class MemoryUpdateRequest(BaseModel):
model_config = ConfigDict(
json_schema_extra={
"examples": [
{
"title": "回答偏好(已确认)",
"importance": 0.9,
"status": "active",
"evidence_ids": ["message_462927da6f0e4af780dd28fd58f73314"],
}
]
}
)
type: str | None = Field(default=None, max_length=60, description="记忆类型。")
title: str | None = Field(default=None, max_length=200, description="记忆标题。")
content: str | None = Field(default=None, description="记忆正文。")
confidence: float | None = Field(
default=None, ge=0.0, le=1.0, description="置信度,范围 0.0–1.0。"
)
importance: float | None = Field(
default=None, ge=0.0, le=1.0, description="重要性,范围 0.0–1.0。"
)
sensitivity: str | None = Field(default=None, description="敏感等级。")
status: str | None = Field(
default=None, description="记忆状态:active / archived / deleted / superseded。"
)
evidence_ids: list[str] | None = Field(default=None, description="证据 ID 列表。")
class MemoryResponse(BaseModel):
model_config = ConfigDict(
json_schema_extra={
"examples": [
{
"id": "memory_4d9c6e3b18bb4ef5a6b8ed2e902d1f1a",
"character_id": "character_ec83d55746c54e47ab6f98d683032626",
"type": "user",
"title": "回答偏好",
"content": "用户喜欢简洁、直接、带验证结果的中文回答。",
"source": "user_explicit",
"confidence": 1.0,
"importance": 0.8,
"sensitivity": "low",
"evidence_ids": ["message_462927da6f0e4af780dd28fd58f73314"],
"status": "active",
"created_at": "2026-06-19T09:12:00.000000Z",
"updated_at": "2026-06-19T09:12:00.000000Z",
"deleted_at": None,
"expires_at": None,
}
]
}
)
id: str = Field(description="记忆 ID,前缀为 memory_。")
character_id: str = Field(description="所属人物 ID。")
type: str = Field(description="记忆类型。")
title: str = Field(description="记忆标题。")
content: str = Field(description="记忆正文。")
source: str = Field(description="记忆来源。")
confidence: float = Field(description="置信度。")
importance: float = Field(description="重要性。")
sensitivity: str = Field(description="敏感等级。")
evidence_ids: list[str] = Field(description="证据 ID 列表。")
status: str = Field(description="记忆状态。")
created_at: str = Field(description="创建时间,UTC ISO 8601 字符串。")
updated_at: str = Field(description="更新时间,UTC ISO 8601 字符串。")
deleted_at: str | None = Field(description="删除时间;未删除时为空。")
expires_at: str | None = Field(description="过期时间;永不过期时为空。")