Add memory management APIs for OpenViking: list, read, write, and delete memories
This commit is contained in:
@ -5,6 +5,7 @@ from fastapi import APIRouter, Depends, HTTPException, Query, status
|
||||
|
||||
from .auth import verify_api_key
|
||||
from .schemas import (
|
||||
MemoryWriteRequest,
|
||||
MessageIngestRequest,
|
||||
ProfileRequest,
|
||||
ResourceUploadRequest,
|
||||
@ -80,6 +81,58 @@ async def delete_resource(
|
||||
raise user_auth_error(exc) from exc
|
||||
|
||||
|
||||
@router.get("/memories")
|
||||
async def list_memories(
|
||||
user_id: str = Query(min_length=1),
|
||||
user_key: str = Query(min_length=1),
|
||||
uri: str = Query(default="viking://user/memories", min_length=1),
|
||||
recursive: bool = Query(default=True),
|
||||
service: MemorySystemService = Depends(get_service),
|
||||
):
|
||||
try:
|
||||
return await service.list_memories(user_id, user_key, uri=uri, recursive=recursive)
|
||||
except PermissionError as exc:
|
||||
raise user_auth_error(exc) from exc
|
||||
|
||||
|
||||
@router.get("/memories/content")
|
||||
async def read_memory(
|
||||
user_id: str = Query(min_length=1),
|
||||
user_key: str = Query(min_length=1),
|
||||
uri: str = Query(min_length=1),
|
||||
service: MemorySystemService = Depends(get_service),
|
||||
):
|
||||
try:
|
||||
return await service.read_memory(user_id, user_key, uri)
|
||||
except PermissionError as exc:
|
||||
raise user_auth_error(exc) from exc
|
||||
|
||||
|
||||
@router.post("/memories")
|
||||
async def write_memory(
|
||||
request: MemoryWriteRequest,
|
||||
service: MemorySystemService = Depends(get_service),
|
||||
):
|
||||
try:
|
||||
return await service.write_memory(request)
|
||||
except PermissionError as exc:
|
||||
raise user_auth_error(exc) from exc
|
||||
|
||||
|
||||
@router.delete("/memories")
|
||||
async def delete_memory(
|
||||
user_id: str = Query(min_length=1),
|
||||
user_key: str = Query(min_length=1),
|
||||
uri: str = Query(min_length=1),
|
||||
recursive: bool = Query(default=False),
|
||||
service: MemorySystemService = Depends(get_service),
|
||||
):
|
||||
try:
|
||||
return await service.delete_memory(user_id, user_key, uri, recursive=recursive)
|
||||
except PermissionError as exc:
|
||||
raise user_auth_error(exc) from exc
|
||||
|
||||
|
||||
@router.post("/sessions/{session_id}/commit")
|
||||
async def commit_session(
|
||||
session_id: str,
|
||||
|
||||
Reference in New Issue
Block a user