from __future__ import annotations from typing import Any from pydantic import BaseModel class GPTKeywordExtractionFormat(BaseModel): high_level_keywords: list[str] low_level_keywords: list[str] class KnowledgeGraphNode(BaseModel): id: str labels: list[str] properties: dict[str, Any] # anything else goes here class KnowledgeGraphEdge(BaseModel): id: str type: str | None source: str # id of source node target: str # id of target node properties: dict[str, Any] # anything else goes here class KnowledgeGraph(BaseModel): nodes: list[KnowledgeGraphNode] = [] edges: list[KnowledgeGraphEdge] = [] is_truncated: bool = False