from core import Graphiti from core.utils.maintenance.graph_data_operations import clear_data from dotenv import load_dotenv import os import asyncio import logging import sys from transcript_parser import parse_podcast_messages load_dotenv() neo4j_uri = os.environ.get("NEO4J_URI") or "bolt://localhost:7687" neo4j_user = os.environ.get("NEO4J_USER") or "neo4j" neo4j_password = os.environ.get("NEO4J_PASSWORD") or "password" def setup_logging(): # Create a logger logger = logging.getLogger() logger.setLevel(logging.INFO) # Set the logging level to INFO # Create console handler and set level to INFO console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(logging.INFO) # Create formatter formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ) # Add formatter to console handler console_handler.setFormatter(formatter) # Add console handler to logger logger.addHandler(console_handler) return logger async def main(): setup_logging() client = Graphiti(neo4j_uri, neo4j_user, neo4j_password) await clear_data(client.driver) messages = parse_podcast_messages() for i, message in enumerate(messages[3:50]): await client.add_episode( name=f"Message {i}", episode_body=f"{message.speaker_name} ({message.role}): {message.content}", reference_time=message.actual_timestamp, source_description="Podcast Transcript", ) asyncio.run(main())