responses.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. from datetime import datetime
  2. from typing import Any, Optional
  3. from uuid import UUID
  4. from pydantic import BaseModel
  5. from shared.abstractions.document import DocumentResponse
  6. from shared.abstractions.llm import Message
  7. from shared.abstractions.user import User
  8. from shared.api.models.base import PaginatedR2RResult, R2RResults
  9. class PromptResponse(BaseModel):
  10. id: UUID
  11. name: str
  12. template: str
  13. created_at: datetime
  14. updated_at: datetime
  15. input_types: dict[str, str]
  16. class LogEntry(BaseModel):
  17. key: str
  18. value: Any
  19. timestamp: datetime
  20. class LogResponse(BaseModel):
  21. run_id: UUID
  22. run_type: str
  23. entries: list[LogEntry]
  24. timestamp: Optional[datetime]
  25. user_id: Optional[UUID]
  26. class ServerStats(BaseModel):
  27. start_time: datetime
  28. uptime_seconds: float
  29. cpu_usage: float
  30. memory_usage: float
  31. class AnalyticsResponse(BaseModel):
  32. analytics_data: Optional[dict] = None
  33. filtered_logs: dict[str, Any]
  34. class SettingsResponse(BaseModel):
  35. config: dict[str, Any]
  36. prompts: dict[str, Any]
  37. r2r_project_name: str
  38. # r2r_version: str
  39. class ChunkResponse(BaseModel):
  40. id: UUID
  41. document_id: UUID
  42. owner_id: UUID
  43. collection_ids: list[UUID]
  44. text: str
  45. metadata: dict[str, Any]
  46. vector: Optional[list[float]] = None
  47. class CollectionResponse(BaseModel):
  48. id: UUID
  49. owner_id: Optional[UUID]
  50. name: str
  51. description: Optional[str]
  52. graph_cluster_status: str
  53. graph_sync_status: str
  54. created_at: datetime
  55. updated_at: datetime
  56. user_count: int
  57. document_count: int
  58. class ConversationResponse(BaseModel):
  59. id: UUID
  60. created_at: datetime
  61. user_id: Optional[UUID] = None
  62. name: Optional[str] = None
  63. class VerificationResult(BaseModel):
  64. verification_code: str
  65. expiry: datetime
  66. message: Optional[str] = None
  67. class ResetDataResult(BaseModel):
  68. reset_token: str
  69. expiry: datetime
  70. message: Optional[str] = None
  71. class MessageResponse(BaseModel):
  72. id: UUID
  73. message: Message
  74. metadata: dict[str, Any] = {}
  75. # Chunk Responses
  76. WrappedChunkResponse = R2RResults[ChunkResponse]
  77. WrappedChunksResponse = PaginatedR2RResult[list[ChunkResponse]]
  78. # Collection Responses
  79. WrappedCollectionResponse = R2RResults[CollectionResponse]
  80. WrappedCollectionsResponse = PaginatedR2RResult[list[CollectionResponse]]
  81. # Conversation Responses
  82. WrappedConversationMessagesResponse = R2RResults[list[MessageResponse]]
  83. WrappedConversationResponse = R2RResults[ConversationResponse]
  84. WrappedConversationsResponse = PaginatedR2RResult[list[ConversationResponse]]
  85. WrappedMessageResponse = R2RResults[MessageResponse]
  86. WrappedMessagesResponse = PaginatedR2RResult[list[MessageResponse]]
  87. # Document Responses
  88. WrappedDocumentResponse = R2RResults[DocumentResponse]
  89. WrappedDocumentsResponse = PaginatedR2RResult[list[DocumentResponse]]
  90. # Prompt Responses
  91. WrappedPromptResponse = R2RResults[PromptResponse]
  92. WrappedPromptsResponse = PaginatedR2RResult[list[PromptResponse]]
  93. # System Responses
  94. WrappedSettingsResponse = R2RResults[SettingsResponse]
  95. WrappedServerStatsResponse = R2RResults[ServerStats]
  96. # User Responses
  97. WrappedUserResponse = R2RResults[User]
  98. WrappedUsersResponse = PaginatedR2RResult[list[User]]
  99. # TODO: anything below this hasn't been reviewed
  100. WrappedLogsResponse = R2RResults[list[LogResponse]]
  101. WrappedAnalyticsResponse = R2RResults[AnalyticsResponse]
  102. WrappedVerificationResult = R2RResults[VerificationResult]
  103. WrappedResetDataResult = R2RResults[ResetDataResult]