Files
letta-server/letta/schemas/archive.py
2025-11-13 15:36:56 -08:00

41 lines
1.7 KiB
Python

from datetime import datetime
from typing import Dict, Optional
from pydantic import Field
from letta.schemas.embedding_config import EmbeddingConfig
from letta.schemas.enums import PrimitiveType, VectorDBProvider
from letta.schemas.letta_base import OrmMetadataBase
class ArchiveBase(OrmMetadataBase):
__id_prefix__ = PrimitiveType.ARCHIVE.value
name: str = Field(..., description="The name of the archive")
description: Optional[str] = Field(None, description="A description of the archive")
organization_id: str = Field(..., description="The organization this archive belongs to")
vector_db_provider: VectorDBProvider = Field(
default=VectorDBProvider.NATIVE, description="The vector database provider used for this archive's passages"
)
embedding_config: EmbeddingConfig = Field(..., description="Embedding configuration for passages in this archive")
metadata: Optional[Dict] = Field(default_factory=dict, validation_alias="metadata_", description="Additional metadata")
class Archive(ArchiveBase):
"""Representation of an archive - a collection of archival passages that can be shared between agents."""
id: str = ArchiveBase.generate_id_field()
created_at: datetime = Field(..., description="The creation date of the archive")
class ArchiveCreate(ArchiveBase):
"""Create a new archive"""
class ArchiveUpdate(ArchiveBase):
"""Update an existing archive"""
name: Optional[str] = Field(None, description="The name of the archive")
description: Optional[str] = Field(None, description="A description of the archive")
metadata: Optional[Dict] = Field(None, validation_alias="metadata_", description="Additional metadata")