Files
rag_agent/RAG-TEST-TOOLS/models.py

37 lines
983 B
Python

from typing import List, Optional, Dict, Any
from pydantic import BaseModel, Field
from enum import Enum
class NodeType(str, Enum):
FUNCTION = "Function"
CLASS = "Class"
FILE = "File"
VARIABLE = "Variable"
NAMESPACE = "Namespace"
class EdgeType(str, Enum):
CALLS = "CALLS"
CONTAINS = "CONTAINS"
EXTENDS = "EXTENDS"
IMPLEMENTS = "IMPLEMENTS"
HAS_PARAMETER = "HAS_PARAMETER"
RETURNS = "RETURNS"
class GraphNode(BaseModel):
id: str
type: NodeType
name: str
signature: Optional[str] = None
file_path: Optional[str] = None
start_line: Optional[int] = None
end_line: Optional[int] = None
summary: Optional[str] = None
logic_flow: Optional[str] = None
embedding: Optional[List[float]] = None
raw_attributes: Dict[str, Any] = Field(default_factory=dict)
class GraphEdge(BaseModel):
source_id: str
target_id: str
type: EdgeType
properties: Dict[str, Any] = Field(default_factory=dict)