Refactor code structure for improved readability and maintainability
This commit is contained in:
@ -13,6 +13,7 @@ conflicting candidates.
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import logging
|
||||
from typing import Any
|
||||
|
||||
@ -37,6 +38,18 @@ class ConsolidateRequest(BaseModel):
|
||||
existing_memories: list[dict[str, Any]] = Field(default_factory=list)
|
||||
|
||||
|
||||
class MemoryIngestRequest(BaseModel):
|
||||
workspace_id: str | None = None
|
||||
user_id: str
|
||||
session_id: str
|
||||
turn_id: str
|
||||
role: str = "user"
|
||||
content: str
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
source_type: str | None = None
|
||||
source_event_id: str | None = None
|
||||
|
||||
|
||||
app = FastAPI(title="Local EverMemOS POC Service", version="0.1.0")
|
||||
|
||||
|
||||
@ -50,6 +63,35 @@ async def health() -> dict[str, Any]:
|
||||
}
|
||||
|
||||
|
||||
@app.post("/api/v1/memories")
|
||||
async def ingest_memory(request: MemoryIngestRequest) -> dict[str, Any]:
|
||||
"""Accept message-level ingest for local real-adapter smoke tests.
|
||||
|
||||
This POC endpoint intentionally does not persist raw conversation content.
|
||||
It only returns a stable backend reference that Memory Gateway can store as
|
||||
control-plane metadata.
|
||||
"""
|
||||
seed = "|".join(
|
||||
[
|
||||
request.workspace_id or "",
|
||||
request.user_id,
|
||||
request.session_id,
|
||||
request.turn_id,
|
||||
request.source_event_id or "",
|
||||
]
|
||||
)
|
||||
memory_id = "em_" + hashlib.sha256(seed.encode("utf-8")).hexdigest()[:24]
|
||||
return {
|
||||
"status": "success",
|
||||
"memory_id": memory_id,
|
||||
"native_uri": f"evermemos://memories/{memory_id}",
|
||||
"metadata": {
|
||||
"schema_version": "evermemos.local.ingest.v1",
|
||||
"source_channel": request.metadata.get("source_channel") or request.metadata.get("channel"),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@app.post("/v1/sessions/consolidate")
|
||||
async def consolidate_session(request: ConsolidateRequest) -> dict[str, Any]:
|
||||
repo = InMemoryRepository()
|
||||
@ -105,4 +147,3 @@ def main() -> None:
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user