We are all on a journey. Thanks for taking a peek into mine!
Blog
Quarkus Neo4j: How to build a Quarkus app with Neo4j
Photo credit I’ve recently been working on expanding my horizons in different Java frameworks, and Quarkus was on my list to try.
Quarkus is a Kubernetes-native Java framework designed to reduce an application’s footprint, ideal for addressing challenges in deploying, running, and maintaining applications in cloud-based environments.
It has become a major player in list of frameworks, so naturally, I wanted to try it out! I started by following the first few steps in this blog post, as it outlines how to get a project up and running and the dependency needed for Neo4j.
read moreBlog
Basic OGM: Object Mapping in the Neo4j Java Driver
Photo credit As of the Neo4j Java Driver 5.28.5, the driver now includes a basic object mapping feature. This allows you to map Java objects to Neo4j nodes and relationships without needing to do so manually or deal with raw results.
Note: The driver’s new object mapping is not a full-fledged Object Graph Mapping (OGM) solution. For a more comprehensive option, check out the Neo4j OGM library.
Code example I put together a brief example of how to use the new object mapping feature in a Maven project.
read moreBlog
Intro to RAG: Foundations of Retrieval Augmented Generation, part 2
Photo credit In the last post, we discussed the basics of Retrieval Augmented Generation (RAG) and how it enhances the capabilities of Large Language Models (LLMs) by integrating them with external knowledge sources. We also introduced the concept of vector embeddings and their role in semantic search.
In this post, we’ll dive deeper into the different layers of RAG, including vector RAG, graph RAG, and agents. We’ll explore how these layers can be combined to create more powerful and effective AI systems.
read moreBlog
Intro to RAG: Foundations of Retrieval Augmented Generation, part 1
Photo credit Retrieval Augmented Generation (RAG) may sound complex, but it accurately represents the process of the system. RAG is a method that enhances the capabilities of Large Language Models (LLMs) by integrating them with external knowledge sources.
Each term represents a piece of the puzzle:
Retrieval - data retrieved from some external source outside the LLM (most often a database, but can include files, webpages, etc)
Augmented - "augmenting" (or adding to) an LLM’s training data.
read moreBlog
GenAI blood, sweat, and tears: Loading data to Pinecone
Photo credit As someone who is pretty familiar with relational and graph databases, I wanted to dig a little deeper into vector databases and understand the strengths and quirks they bring to the database table. I put together a conference abstract on vector RAG versus GraphRAG which got picked up, so I went to work building a demo and learning all I could.
I pivoted a few times along the way, but ended up with a Spring AI application that connects to both Pinecone (vector database) and Neo4j (graph database).
read moreBlog
How-To: Use Cypher DSL for programmatic queries
Photo credit I recently had the opportunity to play with the Cypher DSL (domain-specific language) library, and I found it difficult to figure out syntax for some of the queries I was trying to construct.
This blog post will hopefully help you understand how to construct your own programmatic queries with Cypher DSL by showing you syntax for nodes, relationships, and filtering. Then see how this in action with some examples for assembling those components into full queries translated from common clauses, functions, and result formats in Cypher.
read moreBlog
Adventures in Git: Resetting repositories when you end up in a mess
Photo credit Just when I’m feeling pretty confident about my git skills, I run into a scenario like this one that backpedals my confidence. I keep learning, though, and small improvements are still progress. :)
A few weeks ago, I was working on an update to the Graphacademy Spring Data Neo4j course, and things got out of sync. Before I knew it, I was stuck in merge conflict hell and wondering how I got there and if/how I could ever get out.
read moreBlog
Spring Data Neo4j: How to update an entity, Part 2
Photo credit After working on a new online Spring Data Neo4j course, I learned a couple more things about updating an entity. The course required a different set of scenarios than outlined in my previous SDN update blog post, so I wanted to cover those scenarios, as well.
Spring save() method First up is the out-of-the-box save() method that is provided by Spring as a default. This method takes an input of the entity object you want to save to the database.
read moreBlog
Gear Up for NODES 2024: What to Know
Photo credit The NODES 2024 conference is approaching fast, and we have a lot of exciting activities, including talks, workshops, and more. Here’s what you need to know to get ready for NODES 2024.
What is NODES? NODES is a free, virtual conference run by Neo4j for developers, data scientists, and other technical roles who want to learn more about graph databases and how they can be used to solve complex problems.
read more