fix tests, add SearchResult response type for search

This commit is contained in:
phernandez
2025-01-04 22:22:38 -06:00
parent e35dbab156
commit fa7e986d3b
10 changed files with 235 additions and 472 deletions
+19 -4
View File
@@ -1,9 +1,9 @@
"""Search schemas for Basic Memory."""
from typing import Optional, List
from typing import Optional, List, Union
from datetime import datetime
from enum import Enum
from pydantic import BaseModel
from pydantic import BaseModel, field_validator
class SearchItemType(str, Enum):
@@ -17,7 +17,17 @@ class SearchQuery(BaseModel):
text: str
types: Optional[List[SearchItemType]] = None
entity_types: Optional[List[str]] = None
after_date: Optional[datetime] = None
after_date: Optional[Union[datetime, str]] = None
@field_validator('after_date')
@classmethod
def validate_date(cls, v: Optional[Union[datetime, str]]) -> Optional[str]:
"""Convert datetime to ISO format if needed."""
if v is None:
return None
if isinstance(v, datetime):
return v.isoformat()
return v # Assume it's already a string
class SearchResult(BaseModel):
@@ -26,4 +36,9 @@ class SearchResult(BaseModel):
file_path: str
type: SearchItemType
score: float
metadata: dict
metadata: dict
class SearchResponse(BaseModel):
"""Wrapper for search results list."""
results: List[SearchResult]