123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- from datetime import datetime
- from typing import Any, Optional
- from uuid import UUID
- from pydantic import BaseModel
- from shared.abstractions.document import DocumentResponse
- from shared.abstractions.llm import Message
- from shared.abstractions.user import Token, User
- from shared.api.models.base import PaginatedR2RResult, R2RResults
- class PromptResponse(BaseModel):
- id: UUID
- name: str
- template: str
- created_at: datetime
- updated_at: datetime
- input_types: dict[str, str]
- class ServerStats(BaseModel):
- start_time: datetime
- uptime_seconds: float
- cpu_usage: float
- memory_usage: float
- class SettingsResponse(BaseModel):
- config: dict[str, Any]
- prompts: dict[str, Any]
- r2r_project_name: str
- # r2r_version: str
- class ChunkResponse(BaseModel):
- id: UUID
- document_id: UUID
- owner_id: UUID
- collection_ids: list[UUID]
- text: str
- metadata: dict[str, Any]
- vector: Optional[list[float]] = None
- class CollectionResponse(BaseModel):
- id: UUID
- owner_id: Optional[UUID]
- name: str
- description: Optional[str]
- graph_cluster_status: str
- graph_sync_status: str
- created_at: datetime
- updated_at: datetime
- user_count: int
- document_count: int
- class ConversationResponse(BaseModel):
- id: UUID
- created_at: datetime
- user_id: Optional[UUID] = None
- name: Optional[str] = None
- class MessageResponse(BaseModel):
- id: UUID
- message: Message
- metadata: dict[str, Any] = {}
- class ApiKey(BaseModel):
- public_key: str
- api_key: str
- key_id: str
- name: Optional[str] = None
- class ApiKeyNoPriv(BaseModel):
- public_key: str
- key_id: str
- name: Optional[str] = None
- updated_at: datetime
- description: Optional[str] = None
- class LoginResponse(BaseModel):
- access_token: Token
- refresh_token: Token
- class UsageLimit(BaseModel):
- used: int
- limit: int
- remaining: int
- class StorageTypeLimit(BaseModel):
- limit: int
- used: int
- remaining: int
- class StorageLimits(BaseModel):
- chunks: StorageTypeLimit
- documents: StorageTypeLimit
- collections: StorageTypeLimit
- class RouteUsage(BaseModel):
- route_per_min: UsageLimit
- monthly_limit: UsageLimit
- class Usage(BaseModel):
- global_per_min: UsageLimit
- monthly_limit: UsageLimit
- routes: dict[str, RouteUsage]
- class SystemDefaults(BaseModel):
- global_per_min: int
- route_per_min: Optional[int]
- monthly_limit: int
- class LimitsResponse(BaseModel):
- storage_limits: StorageLimits
- system_defaults: SystemDefaults
- user_overrides: dict
- effective_limits: SystemDefaults
- usage: Usage
- # Chunk Responses
- WrappedChunkResponse = R2RResults[ChunkResponse]
- WrappedChunksResponse = PaginatedR2RResult[list[ChunkResponse]]
- # Collection Responses
- WrappedCollectionResponse = R2RResults[CollectionResponse]
- WrappedCollectionsResponse = PaginatedR2RResult[list[CollectionResponse]]
- # Conversation Responses
- WrappedConversationMessagesResponse = R2RResults[list[MessageResponse]]
- WrappedConversationResponse = R2RResults[ConversationResponse]
- WrappedConversationsResponse = PaginatedR2RResult[list[ConversationResponse]]
- WrappedMessageResponse = R2RResults[MessageResponse]
- WrappedMessagesResponse = PaginatedR2RResult[list[MessageResponse]]
- # Document Responses
- WrappedDocumentResponse = R2RResults[DocumentResponse]
- WrappedDocumentsResponse = PaginatedR2RResult[list[DocumentResponse]]
- # Prompt Responses
- WrappedPromptResponse = R2RResults[PromptResponse]
- WrappedPromptsResponse = PaginatedR2RResult[list[PromptResponse]]
- # System Responses
- WrappedSettingsResponse = R2RResults[SettingsResponse]
- WrappedServerStatsResponse = R2RResults[ServerStats]
- # User Responses
- WrappedUserResponse = R2RResults[User]
- WrappedUsersResponse = PaginatedR2RResult[list[User]]
- WrappedAPIKeyResponse = R2RResults[ApiKey]
- WrappedAPIKeysResponse = PaginatedR2RResult[list[ApiKeyNoPriv]]
- WrappedLoginResponse = R2RResults[LoginResponse]
- WrappedLimitsResponse = R2RResults[LimitsResponse]
|