Skip to content

Commit

Permalink
move podcast to examples (#15)
Browse files Browse the repository at this point in the history
  • Loading branch information
danielchalef authored Aug 22, 2024
1 parent 5150b2b commit 8141a78
Show file tree
Hide file tree
Showing 2 changed files with 489 additions and 0 deletions.
70 changes: 70 additions & 0 deletions examples/podcast/podcast_runner.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
from core import Graphiti
from core.utils.bulk_utils import BulkEpisode
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(use_bulk: bool = True):
setup_logging()
client = Graphiti(neo4j_uri, neo4j_user, neo4j_password)
await clear_data(client.driver)
messages = parse_podcast_messages()

if not use_bulk:
for i, message in enumerate(messages[3:14]):
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",
)

episodes: list[BulkEpisode] = [
BulkEpisode(
name=f"Message {i}",
content=f"{message.speaker_name} ({message.role}): {message.content}",
source_description="Podcast Transcript",
episode_type="string",
reference_time=message.actual_timestamp,
)
for i, message in enumerate(messages[3:7])
]

await client.add_episode_bulk(episodes)


asyncio.run(main())
Loading

0 comments on commit 8141a78

Please sign in to comment.