Refactor code structure for improved readability and maintainability
This commit is contained in:
90
memory_gateway/api_v2.py
Normal file
90
memory_gateway/api_v2.py
Normal file
@ -0,0 +1,90 @@
|
||||
"""Memory Gateway v2 workflow API."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import APIRouter, Depends, Query
|
||||
|
||||
from .schemas_v2 import (
|
||||
BackendRefStatus,
|
||||
BackendType,
|
||||
CommitJobView,
|
||||
CommitRequest,
|
||||
CommitResponse,
|
||||
FeedbackRequest,
|
||||
FeedbackResponse,
|
||||
IngestRequest,
|
||||
IngestResponse,
|
||||
MemoryRefType,
|
||||
MemoryRefView,
|
||||
OutboxProcessResponse,
|
||||
RetrieveRequest,
|
||||
RetrieveResponse,
|
||||
)
|
||||
from .server_auth import verify_api_key_compat
|
||||
from .services_v2 import v2_service
|
||||
|
||||
router = APIRouter(prefix="/v2", tags=["memory-v2"], dependencies=[Depends(verify_api_key_compat)])
|
||||
|
||||
|
||||
@router.post("/conversations/ingest", response_model=IngestResponse)
|
||||
async def ingest_conversation(request: IngestRequest):
|
||||
return await v2_service.ingest_conversation_turn(request)
|
||||
|
||||
|
||||
@router.post("/conversations/{session_id}/commit", response_model=CommitResponse)
|
||||
async def commit_conversation(session_id: str, request: CommitRequest):
|
||||
return await v2_service.commit_session(session_id, request)
|
||||
|
||||
|
||||
@router.get("/jobs/{job_id}", response_model=CommitJobView)
|
||||
async def get_commit_job(job_id: str):
|
||||
return v2_service.get_commit_job_view(job_id)
|
||||
|
||||
|
||||
@router.post("/context/retrieve", response_model=RetrieveResponse)
|
||||
async def retrieve_context(request: RetrieveRequest):
|
||||
return await v2_service.retrieve_context(request)
|
||||
|
||||
|
||||
@router.get("/memory/refs", response_model=list[MemoryRefView])
|
||||
async def list_memory_refs(
|
||||
workspace_id: Optional[str] = Query(default=None),
|
||||
user_id: Optional[str] = Query(default=None),
|
||||
agent_id: Optional[str] = Query(default=None),
|
||||
session_id: Optional[str] = Query(default=None),
|
||||
namespace: Optional[str] = Query(default=None),
|
||||
backend_type: Optional[BackendType] = Query(default=None),
|
||||
ref_type: Optional[MemoryRefType] = Query(default=None),
|
||||
status: Optional[BackendRefStatus] = Query(default=None),
|
||||
limit: int = Query(default=100, ge=1, le=1000),
|
||||
):
|
||||
return v2_service.list_memory_refs(
|
||||
workspace_id=workspace_id,
|
||||
user_id=user_id,
|
||||
agent_id=agent_id,
|
||||
session_id=session_id,
|
||||
namespace=namespace,
|
||||
backend_type=backend_type,
|
||||
ref_type=ref_type,
|
||||
status=status,
|
||||
limit=limit,
|
||||
)
|
||||
|
||||
|
||||
@router.post("/memory/feedback", response_model=FeedbackResponse)
|
||||
async def memory_feedback(request: FeedbackRequest):
|
||||
return await v2_service.record_memory_feedback(request)
|
||||
|
||||
|
||||
@router.post("/admin/outbox/process", response_model=OutboxProcessResponse, tags=["memory-v2-admin"])
|
||||
async def process_outbox(
|
||||
limit: int = Query(default=100, ge=1, le=1000),
|
||||
worker_id: Optional[str] = Query(default=None),
|
||||
lease_seconds: int = Query(default=300, ge=1, le=3600),
|
||||
):
|
||||
return await v2_service.process_pending_outbox_events_summary(
|
||||
limit=limit,
|
||||
worker_id=worker_id,
|
||||
lease_seconds=lease_seconds,
|
||||
)
|
||||
Reference in New Issue
Block a user