12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- from typing import Any, Optional, TypeVar
- from uuid import UUID
- from pydantic import BaseModel, Field
- from shared.api.models.base import PaginatedR2RResult, R2RResults
- T = TypeVar("T")
- class IngestionResponse(BaseModel):
- message: str = Field(
- ...,
- description="A message describing the result of the ingestion request.",
- )
- task_id: Optional[UUID] = Field(
- None,
- description="The task ID of the ingestion request.",
- )
- document_id: UUID = Field(
- ...,
- description="The ID of the document that was ingested.",
- )
- class Config:
- json_schema_extra = {
- "example": {
- "message": "Ingestion task queued successfully.",
- "task_id": "c68dc72e-fc23-5452-8f49-d7bd46088a96",
- "document_id": "9fbe403b-c11c-5aae-8ade-ef22980c3ad1",
- }
- }
- class UpdateResponse(BaseModel):
- message: str = Field(
- ...,
- description="A message describing the result of the ingestion request.",
- )
- task_id: Optional[UUID] = Field(
- None,
- description="The task ID of the ingestion request.",
- )
- document_ids: list[UUID] = Field(
- ...,
- description="The ID of the document that was ingested.",
- )
- class Config:
- json_schema_extra = {
- "example": {
- "message": "Update task queued successfully.",
- "task_id": "c68dc72e-fc23-5452-8f49-d7bd46088a96",
- "document_ids": ["9fbe403b-c11c-5aae-8ade-ef22980c3ad1"],
- }
- }
- # TODO: This can probably be cleaner
- class ListVectorIndicesResponse(BaseModel):
- indices: list[dict[str, Any]]
- WrappedIngestionResponse = R2RResults[IngestionResponse]
- WrappedMetadataUpdateResponse = R2RResults[IngestionResponse]
- WrappedUpdateResponse = R2RResults[UpdateResponse]
- WrappedListVectorIndicesResponse = PaginatedR2RResult[
- ListVectorIndicesResponse
- ]
|