Skip to content

neo4j-product-examples/genai-workshop

Repository files navigation

Neo4j GenAI Workshop

Please see genai-workshop.ipynb which serves as the self-contained workshop.

The other companion notebooks contain code for staging data, building the Neo4j Graph, and providing easy access to demos:

  1. data-prep.ipynb stages the workshop data, sampling and formatting data sourced from the H&M Personalized Fashion Recommendations Dataset.
  2. data-load.ipynb loads the staged data into Neo4j, performs text embedding, and creates a vector index.
  3. genai-workshop-w-outputs.ipynb is a reference notebook for following along and checking outputs. It is simply genai-workshop.ipynbwith cell outputs intact.
  4. genai-example-app-only.ipynb is a copy of genai-workshop.ipynb that contains only the final section: the demo LLM GraphRAG app for content generation. It assumes you have already run genai-workshop.ipynb and exists only for instructor demo purposes.

Changelog

v4 (Sep 2nd, 2024 - Present)


  • Transition from using Neo4j Sandbox to AuraDS

  • Split out data loading

    • Split out data load into a separate notebook
    • Live workshops now begin with the dataset pre-loaded to cut down on time and spend more of the course walking through GraphRAG. the data-load.ipynb is kept for reference and replication.
    • Remove neo4j_tools Python package. the functions/utilities are now included in data-load.ipynb
  • Updated Workshop Slides

  • Added more query exploration & improved explainer queries

    • Add Browser-based graph exploration in beginning of workshop
    • Include database tips & more Cypher queries in multiple steps
    • Update explainer markdown and code cells for graph patterns and GDS for clarity
    • Various other minor adjustments to markdown and code to improve course quality
  • Added genai-workshop-w-outputs.ipynb and GitHub Actions Workflow

    • genai-workshp.ipynb is now maintained with cleared outputs for better workshop experience and easier PR review
    • A GitHub actions workflow automatically tests data loading, workshop, and example-only notebooks and auto-commits genai-workshop-w-outputs.ipynb file for each PR.

  • improve LLM response quality and cleaned up code for LLM chains and vector stores

    • parameterizing customer id so don't need to recreate chains & stores for each customer
    • updated prompts to better account for seasonality and use all retrieved data
    • update to use gpt-4o
  • Improve text embedding speed and reduce code by transitioning to native genai.vector Cypher functions

  • Updated slides

  • Various other minor adjustments to markdown and code to improve course quality


  • (fix) Add langchain_community to the libraries that are pip installed in the notebooks

  • Simplify and Shorten Course

    • Shortened GDS section to just three cells to run
    • Condensed Vector Search Section
    • Condensed Loading to Single Notebook Cell
    • Switched Recommendation Retriever to a Simple KG Query
    • Adding neo4j_tools Package to hold convenience functions for loading data and reduce code footprint in main workshop notebook
    • Updated to GPT-4 throughout
    • General Notebook Cleaning - Removed duplicate load statements, updating to newest llm packages, etc.
  • Provide Better Explainers & Examples

    • Add A Chain for Printing Final Prompt to LLM with retrieval data to better explain process.
    • Added Differentiated Names for Customer Examples in Demo App.
  • Added Additional Resources

    • Added workshop slides
    • Added "demo only" notebook

  • Initial 5-part course with
    • Building the knowledge graph
    • Vector search & text embedding
    • Graph patterns to improve semantic search
    • knowledge graph inference & ML
    • Building the LLM chain and demo app for generating content

Contributing

Contributions are welcome! To contribute please:

  1. Make a PR with a descriptive name
  2. If you are updating genai-workshop.ipynb please ensure to clear all outputs before committing.
  3. Do not alter the genai-workshop-w-outputs.ipynb file. This file is autogenerated upon creating/updating PRs.