DTOs¶
The models/dtos subpackage contains Pydantic BaseModel data transfer objects used for API request/response shapes,
pagination, sorting, search, and email payloads.
Base DTOs¶
Base DTO classes providing common fields and validators inherited by domain-specific DTOs.
archipy.models.dtos.base_dtos.BaseDTO ¶
Bases: BaseModel
Base Data Transfer Object class.
This class extends Pydantic's BaseModel to provide common configuration for all DTOs in the application.
Source code in archipy/models/dtos/base_dtos.py
archipy.models.dtos.base_dtos.BaseDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
options: show_root_toc_entry: false heading_level: 3
Base Protobuf DTO¶
Base DTO class for Protobuf-backed data transfer objects, bridging gRPC and Pydantic models.
archipy.models.dtos.base_protobuf_dto.PROTOBUF_AVAILABLE
module-attribute
¶
archipy.models.dtos.base_protobuf_dto.BaseProtobufDTO ¶
Bases: BaseDTO
A base DTO that can be converted to and from a Protobuf message.
Requires 'google-protobuf' to be installed.
Source code in archipy/models/dtos/base_protobuf_dto.py
archipy.models.dtos.base_protobuf_dto.BaseProtobufDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.base_protobuf_dto.BaseProtobufDTO.from_proto
classmethod
¶
Converts a Protobuf message into a Pydantic DTO instance.
Source code in archipy/models/dtos/base_protobuf_dto.py
archipy.models.dtos.base_protobuf_dto.BaseProtobufDTO.to_proto ¶
Converts the Pydantic DTO instance into a Protobuf message.
Source code in archipy/models/dtos/base_protobuf_dto.py
options: show_root_toc_entry: false heading_level: 3
Pagination DTO¶
DTOs for pagination input and output, including page number, page size, and total count fields.
archipy.models.dtos.pagination_dto.PaginationDTO ¶
Bases: BaseDTO
Data Transfer Object for pagination parameters.
This DTO encapsulates pagination information for database queries and API responses, providing a standard way to specify which subset of results to retrieve.
Attributes:
| Name | Type | Description |
|---|---|---|
page |
int
|
The current page number (1-based indexing) |
page_size |
int
|
Number of items per page |
offset |
int
|
Calculated offset for database queries based on page and page_size |
Examples:
>>> from archipy.models.dtos.pagination_dto import PaginationDTO
>>>
>>> # Default pagination (page 1, 10 items per page)
>>> pagination = PaginationDTO()
>>>
>>> # Custom pagination
>>> pagination = PaginationDTO(page=2, page_size=25)
>>> print(pagination.offset) # Access offset as a property
25
>>>
>>> # Using with a database query
>>> def get_users(pagination: PaginationDTO):
... query = select(User).offset(pagination.offset).limit(pagination.page_size)
... return db.execute(query).scalars().all()
Source code in archipy/models/dtos/pagination_dto.py
archipy.models.dtos.pagination_dto.PaginationDTO.page
class-attribute
instance-attribute
¶
archipy.models.dtos.pagination_dto.PaginationDTO.page_size
class-attribute
instance-attribute
¶
archipy.models.dtos.pagination_dto.PaginationDTO.MAX_ITEMS
class-attribute
instance-attribute
¶
archipy.models.dtos.pagination_dto.PaginationDTO.offset
property
¶
Calculate the offset for database queries.
This property calculates how many records to skip based on the current page and page size.
Returns:
| Name | Type | Description |
|---|---|---|
int |
int
|
The number of records to skip |
Examples:
archipy.models.dtos.pagination_dto.PaginationDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.pagination_dto.PaginationDTO.validate_pagination ¶
Validate pagination limits to prevent excessive resource usage.
Ensures that the requested number of items (page * page_size) doesn't exceed the maximum allowed limit.
Returns:
| Type | Description |
|---|---|
Self
|
The validated model instance if valid. |
Raises:
| Type | Description |
|---|---|
OutOfRangeError
|
If the total requested items exceeds MAX_ITEMS. |
Source code in archipy/models/dtos/pagination_dto.py
options: show_root_toc_entry: false heading_level: 3
Sort DTO¶
DTOs for expressing sort order in list/search requests.
archipy.models.dtos.sort_dto.SortDTO ¶
Bases: BaseModel
Data Transfer Object for sorting parameters.
This DTO encapsulates sorting information for database queries and API responses, providing a standard way to specify how results should be ordered.
Attributes:
| Name | Type | Description |
|---|---|---|
column |
T | str
|
The name or enum value of the column to sort by |
order |
str
|
The sort direction - "ASC" for ascending, "DESC" for descending |
Examples:
>>> from archipy.models.dtos.sort_dto import SortDTO
>>> from archipy.models.types.sort_order_type import SortOrderType
>>>
>>> # Sort by name in ascending order
>>> sort = SortDTO(column="name", order=SortOrderType.ASCENDING)
>>>
>>> # Sort by creation date in descending order (newest first)
>>> sort = SortDTO(column="created_at", order="DESCENDING")
>>>
>>> # Using with a database query
>>> def get_sorted_users(sort: SortDTO = SortDTO.default()):
... query = select(User)
... if sort.order == SortOrderType.ASCENDING:
... query = query.order_by(getattr(User, sort.column).asc())
... else:
... query = query.order_by(getattr(User, sort.column).desc())
... return db.execute(query).scalars().all()
>>>
>>> # Using with enum column types
>>> from enum import Enum
>>> class UserColumns(Enum):
... ID = "id"
... NAME = "name"
... EMAIL = "email"
... CREATED_AT = "created_at"
>>>
>>> # Create a sort configuration with enum
>>> sort = SortDTO[UserColumns](column=UserColumns.NAME, order=SortOrderType.ASCENDING)
Source code in archipy/models/dtos/sort_dto.py
archipy.models.dtos.sort_dto.SortDTO.column
class-attribute
instance-attribute
¶
archipy.models.dtos.sort_dto.SortDTO.order
class-attribute
instance-attribute
¶
order: SortOrderType = Field(
default=SortOrderType.DESCENDING,
description="Sort order (ASCENDING or DESCENDING)",
)
archipy.models.dtos.sort_dto.SortDTO.default
classmethod
¶
Create a default sort configuration.
Returns a sort configuration that orders by created_at in descending order (newest first), which is a common default sorting behavior.
Returns:
| Name | Type | Description |
|---|---|---|
SortDTO |
SortDTO
|
A default sort configuration |
Examples:
>>> default_sort = SortDTO.default()
>>> print(f"Sort by {default_sort.column} {default_sort.order}")
Sort by created_at DESCENDING
Source code in archipy/models/dtos/sort_dto.py
options: show_root_toc_entry: false heading_level: 3
Search Input DTO¶
DTO for structured search input combining filter, sort, and pagination parameters.
archipy.models.dtos.search_input_dto.SearchInputDTO ¶
Bases: BaseModel
Data Transfer Object for search inputs with pagination and sorting.
This DTO encapsulates search parameters for database queries and API responses, providing a standard way to handle pagination and sorting.
Class Type Parameters:
| Name | Bound or Constraints | Description | Default |
|---|---|---|---|
T
|
The type for sort column (usually an Enum with column names). |
required |
Source code in archipy/models/dtos/search_input_dto.py
options: show_root_toc_entry: false heading_level: 3
Range DTOs¶
DTOs for expressing numeric and date range filters in queries.
archipy.models.dtos.range_dtos.Comparable ¶
Bases: Protocol
Protocol for types that support comparison operators.
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.BaseRangeDTO ¶
Bases: BaseDTO
Base Data Transfer Object for range queries.
Encapsulates a range of values with from_ and to fields. Provides validation to ensure range integrity.
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.BaseRangeDTO.from_
class-attribute
instance-attribute
¶
archipy.models.dtos.range_dtos.BaseRangeDTO.to
class-attribute
instance-attribute
¶
archipy.models.dtos.range_dtos.BaseRangeDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.range_dtos.BaseRangeDTO.validate_range ¶
Validate that from_ is less than or equal to to when both are provided.
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
The validated model instance. |
Raises:
| Type | Description |
|---|---|
OutOfRangeError
|
If from_ is greater than to. |
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.DecimalRangeDTO ¶
Bases: BaseRangeDTO[Decimal]
Data Transfer Object for decimal range queries.
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.DecimalRangeDTO.from_
class-attribute
instance-attribute
¶
archipy.models.dtos.range_dtos.DecimalRangeDTO.to
class-attribute
instance-attribute
¶
archipy.models.dtos.range_dtos.DecimalRangeDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.range_dtos.DecimalRangeDTO.convert_to_decimal
classmethod
¶
Convert input values to Decimal type.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
Decimal | str | None
|
The value to convert (None, string, or Decimal). |
required |
Returns:
| Type | Description |
|---|---|
Decimal | None
|
Decimal | None: The converted Decimal value or None. |
Raises:
| Type | Description |
|---|---|
InvalidArgumentError
|
If the value cannot be converted to Decimal. |
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.DecimalRangeDTO.validate_range ¶
Validate that from_ is less than or equal to to when both are provided.
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
The validated model instance. |
Raises:
| Type | Description |
|---|---|
OutOfRangeError
|
If from_ is greater than to. |
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.IntegerRangeDTO ¶
Bases: BaseRangeDTO[int]
Data Transfer Object for integer range queries.
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.IntegerRangeDTO.from_
class-attribute
instance-attribute
¶
archipy.models.dtos.range_dtos.IntegerRangeDTO.to
class-attribute
instance-attribute
¶
archipy.models.dtos.range_dtos.IntegerRangeDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.range_dtos.IntegerRangeDTO.validate_range ¶
Validate that from_ is less than or equal to to when both are provided.
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
The validated model instance. |
Raises:
| Type | Description |
|---|---|
OutOfRangeError
|
If from_ is greater than to. |
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.DateRangeDTO ¶
Bases: BaseRangeDTO[date]
Data Transfer Object for date range queries.
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.DateRangeDTO.from_
class-attribute
instance-attribute
¶
archipy.models.dtos.range_dtos.DateRangeDTO.to
class-attribute
instance-attribute
¶
archipy.models.dtos.range_dtos.DateRangeDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.range_dtos.DateRangeDTO.validate_range ¶
Validate that from_ is less than or equal to to when both are provided.
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
The validated model instance. |
Raises:
| Type | Description |
|---|---|
OutOfRangeError
|
If from_ is greater than to. |
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.DatetimeRangeDTO ¶
Bases: BaseRangeDTO[datetime]
Data Transfer Object for datetime range queries.
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.DatetimeRangeDTO.from_
class-attribute
instance-attribute
¶
archipy.models.dtos.range_dtos.DatetimeRangeDTO.to
class-attribute
instance-attribute
¶
archipy.models.dtos.range_dtos.DatetimeRangeDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.range_dtos.DatetimeRangeDTO.validate_range ¶
Validate that from_ is less than or equal to to when both are provided.
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
The validated model instance. |
Raises:
| Type | Description |
|---|---|
OutOfRangeError
|
If from_ is greater than to. |
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.DatetimeIntervalRangeDTO ¶
Bases: BaseRangeDTO[datetime]
Data Transfer Object for datetime range queries with interval.
Rejects requests if the number of intervals exceeds MAX_ITEMS or if interval-specific range size or 'to' age constraints are violated.
Source code in archipy/models/dtos/range_dtos.py
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | |
archipy.models.dtos.range_dtos.DatetimeIntervalRangeDTO.interval
instance-attribute
¶
archipy.models.dtos.range_dtos.DatetimeIntervalRangeDTO.MAX_ITEMS
class-attribute
¶
archipy.models.dtos.range_dtos.DatetimeIntervalRangeDTO.RANGE_SIZE_LIMITS
class-attribute
¶
RANGE_SIZE_LIMITS: dict[TimeIntervalUnitType, timedelta] = {
TimeIntervalUnitType.SECONDS: timedelta(days=2),
TimeIntervalUnitType.MINUTES: timedelta(days=7),
TimeIntervalUnitType.HOURS: timedelta(days=30),
TimeIntervalUnitType.DAYS: timedelta(days=365),
TimeIntervalUnitType.WEEKS: timedelta(days=365 * 2),
TimeIntervalUnitType.MONTHS: timedelta(days=365 * 5),
TimeIntervalUnitType.YEAR: timedelta(days=365 * 10),
}
archipy.models.dtos.range_dtos.DatetimeIntervalRangeDTO.TO_AGE_LIMITS
class-attribute
¶
TO_AGE_LIMITS: dict[TimeIntervalUnitType, timedelta] = {
TimeIntervalUnitType.SECONDS: timedelta(days=2),
TimeIntervalUnitType.MINUTES: timedelta(days=7),
TimeIntervalUnitType.HOURS: timedelta(days=30),
TimeIntervalUnitType.DAYS: timedelta(days=365 * 5),
TimeIntervalUnitType.WEEKS: timedelta(days=365 * 10),
TimeIntervalUnitType.MONTHS: timedelta(days=365 * 20),
TimeIntervalUnitType.YEAR: timedelta(days=365 * 50),
}
archipy.models.dtos.range_dtos.DatetimeIntervalRangeDTO.INTERVAL_TO_TIMEDELTA
class-attribute
¶
INTERVAL_TO_TIMEDELTA: dict[
TimeIntervalUnitType, timedelta
] = {
TimeIntervalUnitType.SECONDS: timedelta(seconds=1),
TimeIntervalUnitType.MINUTES: timedelta(minutes=1),
TimeIntervalUnitType.HOURS: timedelta(hours=1),
TimeIntervalUnitType.DAYS: timedelta(days=1),
TimeIntervalUnitType.WEEKS: timedelta(weeks=1),
TimeIntervalUnitType.MONTHS: timedelta(days=30),
TimeIntervalUnitType.YEAR: timedelta(days=365),
}
archipy.models.dtos.range_dtos.DatetimeIntervalRangeDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.range_dtos.DatetimeIntervalRangeDTO.validate_interval_constraints ¶
Validate interval based on range size, 'to' field age, and max intervals.
- Each interval has specific range size and 'to' age limits.
- Rejects if the number of intervals exceeds MAX_ITEMS.
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
The validated model instance. |
Raises:
| Type | Description |
|---|---|
OutOfRangeError
|
If interval constraints are violated or number of intervals > MAX_ITEMS. |
Source code in archipy/models/dtos/range_dtos.py
archipy.models.dtos.range_dtos.DatetimeIntervalRangeDTO.validate_range ¶
Validate that from_ is less than or equal to to when both are provided.
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
The validated model instance. |
Raises:
| Type | Description |
|---|---|
OutOfRangeError
|
If from_ is greater than to. |
Source code in archipy/models/dtos/range_dtos.py
options: show_root_toc_entry: false heading_level: 3
Email DTOs¶
DTOs for composing email messages including recipients, subject, body, and attachments.
archipy.models.dtos.email_dtos.EmailAttachmentDTO ¶
Bases: BaseDTO
Pydantic model for email attachments.
Source code in archipy/models/dtos/email_dtos.py
archipy.models.dtos.email_dtos.EmailAttachmentDTO.content
instance-attribute
¶
archipy.models.dtos.email_dtos.EmailAttachmentDTO.content_type
class-attribute
instance-attribute
¶
archipy.models.dtos.email_dtos.EmailAttachmentDTO.content_disposition
class-attribute
instance-attribute
¶
content_disposition: EmailAttachmentDispositionType = Field(
default=EmailAttachmentDispositionType.ATTACHMENT
)
archipy.models.dtos.email_dtos.EmailAttachmentDTO.content_id
class-attribute
instance-attribute
¶
archipy.models.dtos.email_dtos.EmailAttachmentDTO.attachment_type
instance-attribute
¶
archipy.models.dtos.email_dtos.EmailAttachmentDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.email_dtos.EmailAttachmentDTO.validate_attachment ¶
Validate and normalize attachment fields.
This validator performs three operations: 1. Sets content_type based on filename extension if not provided 2. Validates that attachment size does not exceed maximum allowed size 3. Ensures content_id is properly formatted with angle brackets
Returns:
| Type | Description |
|---|---|
Self
|
The validated model instance |
Raises:
| Type | Description |
|---|---|
ValueError
|
If attachment size exceeds maximum allowed size |
Source code in archipy/models/dtos/email_dtos.py
options: show_root_toc_entry: false heading_level: 3
Rate Limit Window DTO¶
DTO for a single rate-limit tier: maximum calls within a time window.
Data transfer objects for rate-limit window tiers.
archipy.models.dtos.rate_limit_window_dto.RateLimitWindowDTO ¶
Bases: BaseDTO
Data transfer object for a single rate-limit tier.
Attributes:
| Name | Type | Description |
|---|---|---|
calls_count |
int
|
Maximum allowed requests within the window. |
window_ms |
int
|
Window duration in milliseconds. |
Source code in archipy/models/dtos/rate_limit_window_dto.py
archipy.models.dtos.rate_limit_window_dto.RateLimitWindowDTO.calls_count
class-attribute
instance-attribute
¶
archipy.models.dtos.rate_limit_window_dto.RateLimitWindowDTO.window_ms
class-attribute
instance-attribute
¶
archipy.models.dtos.rate_limit_window_dto.RateLimitWindowDTO.key_suffix
property
¶
Return a stable Redis key segment for this window tier.
archipy.models.dtos.rate_limit_window_dto.RateLimitWindowDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
options: show_root_toc_entry: false heading_level: 3
FastAPI Exception Response DTO¶
DTO representing the standardized error response body returned by FastAPI exception handlers.
archipy.models.dtos.fastapi_exception_response_dto.FastAPIErrorResponseDTO ¶
Standardized error response model for OpenAPI documentation.
Source code in archipy/models/dtos/fastapi_exception_response_dto.py
archipy.models.dtos.fastapi_exception_response_dto.FastAPIErrorResponseDTO.status_code
instance-attribute
¶
archipy.models.dtos.fastapi_exception_response_dto.FastAPIErrorResponseDTO.model
instance-attribute
¶
model = {
"description": exception.message_en,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string",
"example": exception.code,
"description": "Error code identifier",
},
"detail": {
"type": "object",
"properties": detail_properties,
"required": [
"code",
"message_en",
"message_fa",
"http_status",
],
"additionalProperties": False,
"description": "Detailed error information",
},
},
}
}
},
}
archipy.models.dtos.fastapi_exception_response_dto.ValidationErrorResponseDTO ¶
Bases: FastAPIErrorResponseDTO
Specific response model for validation errors.
Source code in archipy/models/dtos/fastapi_exception_response_dto.py
archipy.models.dtos.fastapi_exception_response_dto.ValidationErrorResponseDTO.status_code
instance-attribute
¶
archipy.models.dtos.fastapi_exception_response_dto.ValidationErrorResponseDTO.model
instance-attribute
¶
model = {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string",
"example": "VALIDATION_ERROR",
"description": "Error code identifier",
},
"detail": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"example": "email",
"description": "Field name that failed validation",
},
"message": {
"type": "string",
"example": "Invalid email format",
"description": "Validation error message",
},
"value": {
"type": "string",
"example": "invalid@email",
"description": "Invalid value that caused the error",
},
},
},
"example": [
{
"field": "email",
"message": "Invalid email format",
"value": "invalid@email",
},
{
"field": "password",
"message": "Password must be at least 8 characters",
"value": "123",
},
],
},
},
}
}
},
}
options: show_root_toc_entry: false heading_level: 3
RediSearch DTOs¶
DTOs for RediSearch index schemas, document upserts, queries, aggregations, and normalized search results.
archipy.models.dtos.redis.search.AggregationDTO ¶
Bases: BaseDTO
RediSearch aggregation request parameters.
Source code in archipy/models/dtos/redis/search/aggregation_dto.py
archipy.models.dtos.redis.search.AggregationDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.AggregationDTO.query
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.AggregationDTO.group_by
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.AggregationDTO.reduce_field
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.AggregationDTO.reduce_function
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.AggregationDTO.sort_by
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.AggregationDTO.sort_direction
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.AggregationDTO.limit
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.HashDocumentUpsertDTO ¶
Bases: BaseDTO
Payload for upserting a HASH-backed RediSearch document.
Source code in archipy/models/dtos/redis/search/document_dto.py
archipy.models.dtos.redis.search.HashDocumentUpsertDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.HashDocumentUpsertDTO.fields
instance-attribute
¶
archipy.models.dtos.redis.search.HashDocumentUpsertDTO.vector_field
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.HashDocumentUpsertDTO.vector
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.JsonDocumentUpsertDTO ¶
Bases: BaseDTO
Payload for upserting a JSON-backed RediSearch document.
Source code in archipy/models/dtos/redis/search/document_dto.py
archipy.models.dtos.redis.search.JsonDocumentUpsertDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.JsonDocumentUpsertDTO.payload
instance-attribute
¶
archipy.models.dtos.redis.search.JsonDocumentUpsertDTO.json_path
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.IndexSchemaDTO ¶
Bases: BaseDTO
Schema describing fields indexed by RediSearch.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.IndexSchemaDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.IndexSchemaDTO.fields
instance-attribute
¶
archipy.models.dtos.redis.search.IndexSchemaDTO.index_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.NumericFieldConfig ¶
Bases: BaseDTO
RediSearch numeric field definition.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.NumericFieldConfig.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.NumericFieldConfig.field_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.TagFieldConfig ¶
Bases: BaseDTO
RediSearch tag field definition.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.TagFieldConfig.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.TagFieldConfig.field_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.TagFieldConfig.separator
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.TextFieldConfig ¶
Bases: BaseDTO
RediSearch text field definition.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.TextFieldConfig.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.TextFieldConfig.field_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig ¶
Bases: BaseDTO
RediSearch vector field definition.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.VectorFieldConfig.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.VectorFieldConfig.field_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.distance_metric
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.algorithm
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.vector_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.m
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.ef_construction
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.ef_runtime
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.epsilon
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.compression
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.construction_window_size
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.graph_max_degree
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.search_window_size
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.training_threshold
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.reduce
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.VectorFieldConfig.validate_algorithm_attributes ¶
Reject tuning attributes that do not apply to the selected algorithm.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.KnnQueryDTO ¶
Bases: BaseDTO
Vector KNN search parameters.
Source code in archipy/models/dtos/redis/search/search_query_dto.py
archipy.models.dtos.redis.search.KnnQueryDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.KnnQueryDTO.vector_field
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.KnnQueryDTO.filter_expr
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.KnnQueryDTO.return_fields
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.KnnQueryDTO.score_field
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.KnnQueryDTO.runtime
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchQueryDTO ¶
Bases: BaseDTO
Full-text, vector KNN, vector range, or hybrid RediSearch query.
Source code in archipy/models/dtos/redis/search/search_query_dto.py
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 | |
archipy.models.dtos.redis.search.SearchQueryDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.SearchQueryDTO.query
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchQueryDTO.return_fields
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchQueryDTO.offset
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchQueryDTO.limit
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchQueryDTO.text_scorer
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchQueryDTO.knn
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchQueryDTO.range
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchQueryDTO.is_hybrid
property
¶
Return whether the query combines full-text and vector KNN.
archipy.models.dtos.redis.search.SearchQueryDTO.is_range
property
¶
Return whether the query is a vector range search.
archipy.models.dtos.redis.search.SearchQueryDTO.from_knn
classmethod
¶
from_knn(
vector: list[float],
*,
k: int = 10,
vector_field: str = "embedding",
filter_expr: str | None = None,
return_fields: list[str] | None = None,
runtime: VectorQueryRuntimeDTO | None = None,
) -> SearchQueryDTO
Build a KNN-only search query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vector
|
list[float]
|
Query embedding vector. |
required |
k
|
int
|
Number of nearest neighbors to return. |
10
|
vector_field
|
str
|
Indexed vector field name. |
'embedding'
|
filter_expr
|
str | None
|
Optional RediSearch filter expression. |
None
|
return_fields
|
list[str] | None
|
Optional document fields to return. |
None
|
runtime
|
VectorQueryRuntimeDTO | None
|
Optional vector query runtime parameters. |
None
|
Returns:
| Type | Description |
|---|---|
SearchQueryDTO
|
SearchQueryDTO configured for vector KNN search. |
Source code in archipy/models/dtos/redis/search/search_query_dto.py
archipy.models.dtos.redis.search.SearchQueryDTO.from_range
classmethod
¶
from_range(
vector: list[float],
*,
radius: float,
vector_field: str = "embedding",
filter_expr: str | None = None,
return_fields: list[str] | None = None,
score_field: str | None = None,
limit: int = 10,
runtime: VectorQueryRuntimeDTO | None = None,
) -> SearchQueryDTO
Build a vector range search query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vector
|
list[float]
|
Query embedding vector. |
required |
radius
|
float
|
Maximum semantic distance from the query vector. |
required |
vector_field
|
str
|
Indexed vector field name. |
'embedding'
|
filter_expr
|
str | None
|
Optional RediSearch filter expression combined with range. |
None
|
return_fields
|
list[str] | None
|
Optional document fields to return. |
None
|
score_field
|
str | None
|
Optional distance field name in the response. |
None
|
limit
|
int
|
Maximum number of documents to return. |
10
|
runtime
|
VectorQueryRuntimeDTO | None
|
Optional vector query runtime parameters. |
None
|
Returns:
| Type | Description |
|---|---|
SearchQueryDTO
|
SearchQueryDTO configured for vector range search. |
Source code in archipy/models/dtos/redis/search/search_query_dto.py
archipy.models.dtos.redis.search.SearchQueryDTO.from_hybrid
classmethod
¶
from_hybrid(
text_query: str,
vector: list[float],
*,
k: int = 10,
vector_field: str = "embedding",
filter_expr: str | None = None,
text_scorer: str | None = None,
return_fields: list[str] | None = None,
runtime: VectorQueryRuntimeDTO | None = None,
) -> SearchQueryDTO
Build a hybrid full-text and vector search query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
text_query
|
str
|
Full-text query string. |
required |
vector
|
list[float]
|
Query embedding vector. |
required |
k
|
int
|
Number of nearest neighbors to return. |
10
|
vector_field
|
str
|
Indexed vector field name. |
'embedding'
|
filter_expr
|
str | None
|
Optional RediSearch filter expression. |
None
|
text_scorer
|
str | None
|
Optional full-text scorer name. |
None
|
return_fields
|
list[str] | None
|
Optional document fields to return. |
None
|
runtime
|
VectorQueryRuntimeDTO | None
|
Optional vector query runtime parameters. |
None
|
Returns:
| Type | Description |
|---|---|
SearchQueryDTO
|
SearchQueryDTO configured for hybrid search. |
Source code in archipy/models/dtos/redis/search/search_query_dto.py
archipy.models.dtos.redis.search.SearchHitDTO ¶
Bases: BaseDTO
Single RediSearch document hit.
Source code in archipy/models/dtos/redis/search/search_result_dto.py
archipy.models.dtos.redis.search.SearchHitDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.SearchHitDTO.score
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchHitDTO.fields
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchResultDTO ¶
Bases: BaseDTO
Normalized RediSearch query result.
Source code in archipy/models/dtos/redis/search/search_result_dto.py
archipy.models.dtos.redis.search.SearchResultDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.SearchResultDTO.duration_ms
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.SearchResultDTO.warnings
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.aggregation_dto ¶
archipy.models.dtos.redis.search.aggregation_dto.AggregationDTO ¶
Bases: BaseDTO
RediSearch aggregation request parameters.
Source code in archipy/models/dtos/redis/search/aggregation_dto.py
archipy.models.dtos.redis.search.aggregation_dto.AggregationDTO.query
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.aggregation_dto.AggregationDTO.group_by
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.aggregation_dto.AggregationDTO.reduce_field
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.aggregation_dto.AggregationDTO.reduce_function
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.aggregation_dto.AggregationDTO.sort_by
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.aggregation_dto.AggregationDTO.sort_direction
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.aggregation_dto.AggregationDTO.limit
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.aggregation_dto.AggregationDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.document_dto ¶
archipy.models.dtos.redis.search.document_dto.HashDocumentUpsertDTO ¶
Bases: BaseDTO
Payload for upserting a HASH-backed RediSearch document.
Source code in archipy/models/dtos/redis/search/document_dto.py
archipy.models.dtos.redis.search.document_dto.HashDocumentUpsertDTO.doc_id
instance-attribute
¶
archipy.models.dtos.redis.search.document_dto.HashDocumentUpsertDTO.fields
instance-attribute
¶
archipy.models.dtos.redis.search.document_dto.HashDocumentUpsertDTO.vector_field
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.document_dto.HashDocumentUpsertDTO.vector
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.document_dto.HashDocumentUpsertDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.document_dto.JsonDocumentUpsertDTO ¶
Bases: BaseDTO
Payload for upserting a JSON-backed RediSearch document.
Source code in archipy/models/dtos/redis/search/document_dto.py
archipy.models.dtos.redis.search.document_dto.JsonDocumentUpsertDTO.doc_id
instance-attribute
¶
archipy.models.dtos.redis.search.document_dto.JsonDocumentUpsertDTO.payload
instance-attribute
¶
archipy.models.dtos.redis.search.document_dto.JsonDocumentUpsertDTO.json_path
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.document_dto.JsonDocumentUpsertDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.index_schema_dto ¶
archipy.models.dtos.redis.search.index_schema_dto.IndexFieldConfig
module-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.TextFieldConfig ¶
Bases: BaseDTO
RediSearch text field definition.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.index_schema_dto.TextFieldConfig.field_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.TextFieldConfig.name
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.TextFieldConfig.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.index_schema_dto.TagFieldConfig ¶
Bases: BaseDTO
RediSearch tag field definition.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.index_schema_dto.TagFieldConfig.field_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.TagFieldConfig.name
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.TagFieldConfig.separator
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.TagFieldConfig.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.index_schema_dto.NumericFieldConfig ¶
Bases: BaseDTO
RediSearch numeric field definition.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.index_schema_dto.NumericFieldConfig.field_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.NumericFieldConfig.name
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.NumericFieldConfig.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig ¶
Bases: BaseDTO
RediSearch vector field definition.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.field_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.name
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.dim
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.distance_metric
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.algorithm
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.vector_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.m
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.ef_construction
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.ef_runtime
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.epsilon
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.compression
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.construction_window_size
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.graph_max_degree
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.search_window_size
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.training_threshold
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.reduce
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.index_schema_dto.VectorFieldConfig.validate_algorithm_attributes ¶
Reject tuning attributes that do not apply to the selected algorithm.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.index_schema_dto.IndexSchemaDTO ¶
Bases: BaseDTO
Schema describing fields indexed by RediSearch.
Source code in archipy/models/dtos/redis/search/index_schema_dto.py
archipy.models.dtos.redis.search.index_schema_dto.IndexSchemaDTO.fields
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.IndexSchemaDTO.index_type
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.index_schema_dto.IndexSchemaDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.search_query_dto ¶
archipy.models.dtos.redis.search.search_query_dto.VectorQueryRuntimeDTO ¶
Bases: BaseDTO
Runtime tuning parameters for vector KNN and range queries.
Source code in archipy/models/dtos/redis/search/search_query_dto.py
archipy.models.dtos.redis.search.search_query_dto.VectorQueryRuntimeDTO.ef_runtime
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.VectorQueryRuntimeDTO.epsilon
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.VectorQueryRuntimeDTO.hybrid_policy
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.VectorQueryRuntimeDTO.batch_size
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.VectorQueryRuntimeDTO.shard_k_ratio
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.VectorQueryRuntimeDTO.search_window_size
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.VectorQueryRuntimeDTO.use_search_history
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.VectorQueryRuntimeDTO.search_buffer_capacity
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.VectorQueryRuntimeDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.search_query_dto.KnnQueryDTO ¶
Bases: BaseDTO
Vector KNN search parameters.
Source code in archipy/models/dtos/redis/search/search_query_dto.py
archipy.models.dtos.redis.search.search_query_dto.KnnQueryDTO.vector
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.KnnQueryDTO.vector_field
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.KnnQueryDTO.k
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.KnnQueryDTO.filter_expr
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.KnnQueryDTO.return_fields
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.KnnQueryDTO.score_field
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.KnnQueryDTO.runtime
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.KnnQueryDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.search_query_dto.RangeQueryDTO ¶
Bases: BaseDTO
Vector range search parameters.
Source code in archipy/models/dtos/redis/search/search_query_dto.py
archipy.models.dtos.redis.search.search_query_dto.RangeQueryDTO.vector
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.RangeQueryDTO.vector_field
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.RangeQueryDTO.radius
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.RangeQueryDTO.filter_expr
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.RangeQueryDTO.return_fields
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.RangeQueryDTO.score_field
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.RangeQueryDTO.runtime
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.RangeQueryDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO ¶
Bases: BaseDTO
Full-text, vector KNN, vector range, or hybrid RediSearch query.
Source code in archipy/models/dtos/redis/search/search_query_dto.py
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 | |
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.query
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.return_fields
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.offset
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.limit
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.text_scorer
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.knn
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.range
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.is_hybrid
property
¶
Return whether the query combines full-text and vector KNN.
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.is_range
property
¶
Return whether the query is a vector range search.
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.from_knn
classmethod
¶
from_knn(
vector: list[float],
*,
k: int = 10,
vector_field: str = "embedding",
filter_expr: str | None = None,
return_fields: list[str] | None = None,
runtime: VectorQueryRuntimeDTO | None = None,
) -> SearchQueryDTO
Build a KNN-only search query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vector
|
list[float]
|
Query embedding vector. |
required |
k
|
int
|
Number of nearest neighbors to return. |
10
|
vector_field
|
str
|
Indexed vector field name. |
'embedding'
|
filter_expr
|
str | None
|
Optional RediSearch filter expression. |
None
|
return_fields
|
list[str] | None
|
Optional document fields to return. |
None
|
runtime
|
VectorQueryRuntimeDTO | None
|
Optional vector query runtime parameters. |
None
|
Returns:
| Type | Description |
|---|---|
SearchQueryDTO
|
SearchQueryDTO configured for vector KNN search. |
Source code in archipy/models/dtos/redis/search/search_query_dto.py
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.from_range
classmethod
¶
from_range(
vector: list[float],
*,
radius: float,
vector_field: str = "embedding",
filter_expr: str | None = None,
return_fields: list[str] | None = None,
score_field: str | None = None,
limit: int = 10,
runtime: VectorQueryRuntimeDTO | None = None,
) -> SearchQueryDTO
Build a vector range search query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vector
|
list[float]
|
Query embedding vector. |
required |
radius
|
float
|
Maximum semantic distance from the query vector. |
required |
vector_field
|
str
|
Indexed vector field name. |
'embedding'
|
filter_expr
|
str | None
|
Optional RediSearch filter expression combined with range. |
None
|
return_fields
|
list[str] | None
|
Optional document fields to return. |
None
|
score_field
|
str | None
|
Optional distance field name in the response. |
None
|
limit
|
int
|
Maximum number of documents to return. |
10
|
runtime
|
VectorQueryRuntimeDTO | None
|
Optional vector query runtime parameters. |
None
|
Returns:
| Type | Description |
|---|---|
SearchQueryDTO
|
SearchQueryDTO configured for vector range search. |
Source code in archipy/models/dtos/redis/search/search_query_dto.py
archipy.models.dtos.redis.search.search_query_dto.SearchQueryDTO.from_hybrid
classmethod
¶
from_hybrid(
text_query: str,
vector: list[float],
*,
k: int = 10,
vector_field: str = "embedding",
filter_expr: str | None = None,
text_scorer: str | None = None,
return_fields: list[str] | None = None,
runtime: VectorQueryRuntimeDTO | None = None,
) -> SearchQueryDTO
Build a hybrid full-text and vector search query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
text_query
|
str
|
Full-text query string. |
required |
vector
|
list[float]
|
Query embedding vector. |
required |
k
|
int
|
Number of nearest neighbors to return. |
10
|
vector_field
|
str
|
Indexed vector field name. |
'embedding'
|
filter_expr
|
str | None
|
Optional RediSearch filter expression. |
None
|
text_scorer
|
str | None
|
Optional full-text scorer name. |
None
|
return_fields
|
list[str] | None
|
Optional document fields to return. |
None
|
runtime
|
VectorQueryRuntimeDTO | None
|
Optional vector query runtime parameters. |
None
|
Returns:
| Type | Description |
|---|---|
SearchQueryDTO
|
SearchQueryDTO configured for hybrid search. |
Source code in archipy/models/dtos/redis/search/search_query_dto.py
archipy.models.dtos.redis.search.search_result_dto ¶
archipy.models.dtos.redis.search.search_result_dto.SearchHitDTO ¶
Bases: BaseDTO
Single RediSearch document hit.
Source code in archipy/models/dtos/redis/search/search_result_dto.py
archipy.models.dtos.redis.search.search_result_dto.SearchHitDTO.doc_id
instance-attribute
¶
archipy.models.dtos.redis.search.search_result_dto.SearchHitDTO.score
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_result_dto.SearchHitDTO.fields
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_result_dto.SearchHitDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
archipy.models.dtos.redis.search.search_result_dto.SearchResultDTO ¶
Bases: BaseDTO
Normalized RediSearch query result.
Source code in archipy/models/dtos/redis/search/search_result_dto.py
archipy.models.dtos.redis.search.search_result_dto.SearchResultDTO.total
instance-attribute
¶
archipy.models.dtos.redis.search.search_result_dto.SearchResultDTO.hits
instance-attribute
¶
archipy.models.dtos.redis.search.search_result_dto.SearchResultDTO.duration_ms
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_result_dto.SearchResultDTO.warnings
class-attribute
instance-attribute
¶
archipy.models.dtos.redis.search.search_result_dto.SearchResultDTO.model_config
class-attribute
instance-attribute
¶
model_config = ConfigDict(
extra="ignore",
validate_default=True,
from_attributes=True,
frozen=True,
str_strip_whitespace=True,
arbitrary_types_allowed=True,
)
options: show_root_toc_entry: false heading_level: 3