# Type hints from typing import Any, Dict, List, Tuple # Standard library import ast import logging import re import warnings # Third-party packages - Data manipulation import pandas as pd from tqdm import tqdm # Third-party packages - Environment & Database from dotenv import load_dotenv from neo4j import GraphDatabase # Third-party packages - Error handling & Retry logic from tenacity import retry, stop_after_attempt, wait_exponential # Langchain - Core from langchain.chains import GraphCypherQAChain from langchain.prompts import PromptTemplate from langchain_core.documents import Document # Langchain - Models & Connectors from langchain_google_genai import ChatGoogleGenerativeAI, GoogleGenerativeAI from langchain_ollama.llms import OllamaLLM # Langchain - Graph & Experimental from langchain_community.graphs import Neo4jGraph from langchain_experimental.graph_transformers import LLMGraphTransformer # Suppress warnings warnings.filterwarnings('ignore') # Load environment variables load_dotenv()