from __future__ import annotations from pydantic import BaseModel from typing import List, Dict, Any, Optional 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: Optional[str] 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] = []