-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmodels.py
More file actions
67 lines (54 loc) · 2.1 KB
/
models.py
File metadata and controls
67 lines (54 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
# SPDX-FileCopyrightText: 2025-present deepset GmbH <info@deepset.ai>
#
# SPDX-License-Identifier: Apache-2.0
from datetime import datetime
from typing import Any
from pydantic import BaseModel, Field
from rich.repr import Result
from deepset_mcp.api.shared_models import DeepsetUser
class IndexStatus(BaseModel):
"""Status information about documents in an index."""
pending_file_count: int
failed_file_count: int
indexed_no_documents_file_count: int
indexed_file_count: int
total_file_count: int
class Index(BaseModel):
"""A deepset index."""
pipeline_index_id: str
name: str
description: str | None = None
yaml_config: str = Field(alias="config_yaml")
workspace_id: str
settings: dict[str, Any]
desired_status: str
deployed_at: datetime | None = None
last_edited_at: datetime | None = None
max_index_replica_count: int
created_at: datetime
updated_at: datetime | None = None
created_by: DeepsetUser
last_edited_by: DeepsetUser | None = None
status: IndexStatus
def __rich_repr__(self) -> Result:
"""Used to display the model in an LLM friendly way."""
yield "name", self.name
yield "description", self.description, None
yield "desired_status", self.desired_status
yield "status", self.status
yield "status", self.status
yield "created_by", f"{self.created_by.given_name} {self.created_by.family_name} ({self.created_by.id})"
yield "created_at", self.created_at.strftime("%m/%d/%Y %I:%M:%S %p")
yield (
"last_edited_by",
f"{self.last_edited_by.given_name} {self.last_edited_by.family_name} ({self.last_edited_by.id})"
if self.last_edited_by
else None,
)
yield "last_edited_at", self.last_edited_at.strftime("%m/%d/%Y %I:%M:%S %p") if self.last_edited_at else None
yield "yaml_config", self.yaml_config if self.yaml_config is not None else "Get full index to see config."
class IndexList(BaseModel):
"""Response model for listing indexes."""
data: list[Index]
has_more: bool
total: int