| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- from fastapi import APIRouter, Depends
 
- from sqlalchemy.ext.asyncio import AsyncSession
 
- from sqlmodel import select
 
- from app.api.deps import get_async_session
 
- from app.libs.paginate import cursor_page, CommonPage
 
- from app.models.assistant_file import AssistantFileCreate, AssistantFile
 
- from app.schemas.common import DeleteResponse
 
- from app.services.assistant.assistant_file import AssistantFileService
 
- router = APIRouter()
 
- @router.get("/{assistant_id}/files", response_model=CommonPage[AssistantFile])
 
- async def list_assistant_files(
 
-     *,
 
-     session: AsyncSession = Depends(get_async_session),
 
-     assistant_id: str,
 
- ):
 
-     """
 
-     Returns a list of assistant files.
 
-     """
 
-     return await cursor_page(select(AssistantFile).where(AssistantFile.assistant_id == assistant_id), db=session)
 
- @router.post("/{assistant_id}/files", response_model=AssistantFile)
 
- async def create_assistant_file(
 
-     *,
 
-     session: AsyncSession = Depends(get_async_session),
 
-     assistant_id: str,
 
-     body: AssistantFileCreate,
 
- ) -> AssistantFile:
 
-     """
 
-     Create an assistant file by attaching a [File](/docs/api-reference/files)
 
-     to an [assistant](/docs/api-reference/assistants).
 
-     """
 
-     return await AssistantFileService.create_assistant_file(session=session, assistant_id=assistant_id, body=body)
 
- @router.get("/{assistant_id}/files/{file_id}", response_model=AssistantFile)
 
- async def get_assistant_file(
 
-     *, session: AsyncSession = Depends(get_async_session), assistant_id: str, file_id: str
 
- ) -> AssistantFile:
 
-     """
 
-     Retrieves an AssistantFile.
 
-     """
 
-     return await AssistantFileService.get_assistant_file(session=session, assistant_id=assistant_id, file_id=file_id)
 
- @router.delete(
 
-     "/{assistant_id}/files/{file_id}",
 
-     response_model=DeleteResponse,
 
- )
 
- async def delete_assistant_file(
 
-     *, session: AsyncSession = Depends(get_async_session), assistant_id: str, file_id: str
 
- ) -> DeleteResponse:
 
-     """
 
-     Delete an assistant file.
 
-     """
 
-     return await AssistantFileService.delete_assistant_file(session=session, assistant_id=assistant_id, file_id=file_id)
 
 
  |