mirror of
https://github.com/wassname/Open-Assistant.git
synced 2026-09-11 11:50:17 +08:00
968 add flagged message table and endpoints (#1325)
* Added flagged message table * Added alembic migration and updated imports to match style * Added GET endpoint to query all flagged messages * Updates from linter * Added POST endpoint for processing flagged messages * Added pydantic interface model and fixed limit update bug * fixed session in admin endpoint and added require session refresh for returned update * removed unused import
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from uuid import UUID
|
||||
|
||||
import pydantic
|
||||
@@ -162,3 +163,37 @@ async def purge_user_messages(
|
||||
|
||||
logger.info(f"{before=}; {after=}")
|
||||
return PurgeResultModel(before=before, after=after, preview=preview, duration=timer.elapsed)
|
||||
|
||||
|
||||
class FlaggedMessageResponse(pydantic.BaseModel):
|
||||
message_id: UUID
|
||||
processed: bool
|
||||
created_date: Optional[datetime]
|
||||
|
||||
|
||||
@router.get("/flagged_messages", response_model=list[FlaggedMessageResponse])
|
||||
async def get_flagged_messages(
|
||||
max_count: Optional[int],
|
||||
session: deps.Session = Depends(deps.get_db),
|
||||
api_client: ApiClient = Depends(deps.get_trusted_api_client),
|
||||
) -> str:
|
||||
assert api_client.trusted
|
||||
|
||||
pr = PromptRepository(session, api_client)
|
||||
flagged_messages = pr.fetch_flagged_messages(max_count=max_count)
|
||||
resp = [FlaggedMessageResponse(**msg.__dict__) for msg in flagged_messages]
|
||||
return resp
|
||||
|
||||
|
||||
@router.post("/admin/flagged_messages/{message_id}/processed", response_model=FlaggedMessageResponse)
|
||||
async def process_flagged_messages(
|
||||
message_id: UUID,
|
||||
session: deps.Session = Depends(deps.get_db),
|
||||
api_client: ApiClient = Depends(deps.get_trusted_api_client),
|
||||
) -> str:
|
||||
assert api_client.trusted
|
||||
|
||||
pr = PromptRepository(session, api_client)
|
||||
flagged_msg = pr.process_flagged_message(message_id=message_id)
|
||||
resp = FlaggedMessageResponse(**flagged_msg.__dict__)
|
||||
return resp
|
||||
|
||||
Reference in New Issue
Block a user