122 lines
6.0 KiB
Python
122 lines
6.0 KiB
Python
"""Pydantic option models for MemoryClient methods.
|
|
|
|
These models provide IDE autocompletion, runtime validation, and type safety.
|
|
Methods accept both typed options and **kwargs for backward compatibility.
|
|
|
|
Identity fields (user_id, agent_id, app_id, run_id) must be passed inside
|
|
the ``filters`` dict — the v3 API does not accept them at the top level.
|
|
"""
|
|
|
|
from typing import Any, Dict, List, Optional, Union
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class AddMemoryOptions(BaseModel):
|
|
"""Options for the add() method.
|
|
|
|
Identity fields (user_id, agent_id, app_id, run_id) must be passed inside
|
|
the ``filters`` dict — the v3 API does not accept them at the top level.
|
|
"""
|
|
|
|
filters: Optional[Dict[str, Any]] = Field(
|
|
default=None, description="Filters containing entity IDs (e.g. {'user_id': '...'})"
|
|
)
|
|
metadata: Optional[Dict[str, Any]] = Field(default=None, description="Additional metadata for the memory")
|
|
infer: Optional[bool] = Field(default=None, description="Whether to infer memories from the input")
|
|
custom_categories: Optional[List[Dict[str, Any]]] = Field(
|
|
default=None, description="Custom categories for memory classification"
|
|
)
|
|
custom_instructions: Optional[str] = Field(default=None, description="Custom instructions for fact extraction")
|
|
agent_custom_instructions: Optional[str] = Field(
|
|
default=None, description="Custom instructions for fact extraction from agent-scoped memories"
|
|
)
|
|
timestamp: Optional[int] = Field(default=None, description="Unix timestamp for the memory")
|
|
expiration_date: Optional[str] = Field(default=None, description="Expiration date in YYYY-MM-DD format")
|
|
structured_data_schema: Optional[Dict[str, Any]] = Field(
|
|
default=None, description="Schema for structured data extraction"
|
|
)
|
|
|
|
|
|
class SearchMemoryOptions(BaseModel):
|
|
"""Options for the search() method.
|
|
|
|
Identity fields (user_id, agent_id, etc.) must be passed inside the
|
|
``filters`` dict — the v2 API does not accept them at the top level.
|
|
"""
|
|
|
|
filters: Optional[Dict[str, Any]] = Field(
|
|
default=None, description="Filters for the search (e.g. {'user_id': '...'})"
|
|
)
|
|
metadata: Optional[Dict[str, Any]] = Field(default=None, description="Additional metadata for the search")
|
|
top_k: Optional[int] = Field(default=None, description="Number of results to return")
|
|
rerank: Optional[bool] = Field(default=None, description="Whether to rerank results")
|
|
threshold: Optional[float] = Field(default=None, description="Minimum similarity score threshold")
|
|
fields: Optional[List[str]] = Field(default=None, description="Fields to include in the response")
|
|
categories: Optional[List[str]] = Field(default=None, description="Categories to filter by")
|
|
show_expired: Optional[bool] = Field(default=None, description="Whether to include expired memories")
|
|
reference_date: Optional[Union[str, int]] = Field(
|
|
default=None, description="Reference date for relative time queries (YYYY-MM-DD or Unix timestamp)"
|
|
)
|
|
latest_only: Optional[bool] = Field(default=None, description="Whether to only return the latest memory version")
|
|
keyword_search: Optional[bool] = Field(default=None, description="Whether to use keyword search")
|
|
|
|
|
|
class GetAllMemoryOptions(BaseModel):
|
|
"""Options for the get_all() method.
|
|
|
|
Identity fields (user_id, agent_id, etc.) must be passed inside the
|
|
``filters`` dict — the v2 API does not accept them at the top level.
|
|
"""
|
|
|
|
filters: Optional[Dict[str, Any]] = Field(
|
|
default=None, description="Filters for retrieval (e.g. {'user_id': '...'})"
|
|
)
|
|
page: Optional[int] = Field(default=None, description="Page number for pagination")
|
|
page_size: Optional[int] = Field(default=None, description="Number of items per page")
|
|
start_date: Optional[str] = Field(
|
|
default=None, description="Filter memories created on or after this date (ISO 8601)"
|
|
)
|
|
end_date: Optional[str] = Field(
|
|
default=None, description="Filter memories created on or before this date (ISO 8601)"
|
|
)
|
|
categories: Optional[List[str]] = Field(default=None, description="Categories to filter by")
|
|
show_expired: Optional[bool] = Field(default=None, description="Whether to include expired memories")
|
|
latest_only: Optional[bool] = Field(default=None, description="Whether to only return the latest memory version")
|
|
|
|
|
|
class DeleteAllMemoryOptions(BaseModel):
|
|
"""Options for the delete_all() method.
|
|
|
|
Identity fields (user_id, agent_id, app_id, run_id) must be passed inside
|
|
the ``filters`` dict — the API does not accept them at the top level.
|
|
"""
|
|
|
|
filters: Optional[Dict[str, Any]] = Field(
|
|
default=None, description="Filters containing entity IDs (e.g. {'user_id': '...'})"
|
|
)
|
|
|
|
|
|
class UpdateMemoryOptions(BaseModel):
|
|
"""Options for the update() method."""
|
|
|
|
text: Optional[str] = Field(default=None, description="New text content for the memory")
|
|
metadata: Optional[Dict[str, Any]] = Field(default=None, description="Updated metadata")
|
|
timestamp: Optional[Union[int, float, str]] = Field(default=None, description="Updated timestamp")
|
|
expiration_date: Optional[str] = Field(default=None, description="Expiration date in YYYY-MM-DD format, or None to clear")
|
|
|
|
|
|
class ProjectUpdateOptions(BaseModel):
|
|
"""Options for project update operations."""
|
|
|
|
custom_instructions: Optional[str] = Field(default=None, description="Custom instructions for fact extraction")
|
|
agent_custom_instructions: Optional[str] = Field(
|
|
default=None, description="Custom instructions for fact extraction from agent-scoped memories"
|
|
)
|
|
custom_categories: Optional[List[Dict[str, Any]]] = Field(
|
|
default=None, description="Custom categories for classification"
|
|
)
|
|
memory_depth: Optional[str] = Field(default=None, description="Memory depth configuration")
|
|
usecase_setting: Optional[Any] = Field(default=None, description="Use case specific settings")
|
|
multilingual: Optional[bool] = Field(default=None, description="Whether to enable multilingual support")
|