August 2024 Summaries
16 posts from Neo4j
Filter
Month:
Year:
Post Summaries
Back to Blog
Neo4j is hosting a series of hands-on workshops as part of the Road to NODES, with topics ranging from Neo4j Fundamentals to App Building on Aura. The company has also integrated Microsoft's GrahRag into its database, allowing users to store and retrieve data more efficiently. Graph databases have been found to be particularly useful in handling complex relationships, and Neo4j is a powerful tool for developers and architects dealing with connected data. A knowledge graph was created to enhance language model outputs by analyzing Napoleon's history, demonstrating the accuracy and precision of this approach. Additionally, Neo4j has an inbuilt browser that users can interact with, making it easier to explore and understand its capabilities. Users are invited to join a user research panel to share their experiences and influence the future of Neo4j products.
Aug 31, 2024
507 words in the original blog post.
The general availability of Change Data Capture (CDC) in Neo4j has been announced, enabling developers to filter and process changes to the graph database in real-time. CDC provides a robust means of querying for changes, with two enrichment modes: FULL and DIFF. The feature is now available in Aura Virtual Dedicated Cloud (Enterprise) and Neo4j Enterprise subscriptions, as well as the Neo4j Connector for Confluent and Apache Kafka v5.1. Key benefits include simplified and streamlined data pipelines, event-driven architecture, and support for loosely coupled data pipelines. CDC does not provide support for certain features, such as schema/index changes and RBAC. Developers can enable CDC in the Aura Console or by running Cypher commands. The Neo4j Connector for Confluent is available on the Confluent Hub, while the Neo4j Connector for Apache Kafka is available on Neo4j.com.
Aug 30, 2024
1,669 words in the original blog post.
Generative AI (GenAI) is transforming how businesses operate and society's fabric, with the potential to alter how we work, create, communicate, and consume. GenAI has the power to automate mundane tasks, unlock new possibilities for creativity and problem-solving, and bring many opportunities and challenges as it advances and permeates various aspects of our lives. However, the rapid growth of GenAI also raises important questions about its potential unintended consequences, such as data privacy, algorithmic bias, and ethical implications of AI-generated content. As GenAI continues to evolve, it is crucial to prioritize transparency, accountability, and fairness in its development and deployment, ensuring that the benefits are realized while minimizing risks and challenges.
Aug 28, 2024
2,936 words in the original blog post.
The text discusses the development of a Neo4j client for the Commodore 64, an old home computer. The author, Director of Engineering at Neo4j, aimed to create a client that could run on the limited hardware and learn about the Bolt protocol, which is used by Neo4j. The project required implementing a TCP/IP stack, a network card emulator, and a custom input routine due to the lack of support for scanf() in the CC65 compiler. The author also implemented a Cypher shell client with basic authentication and only supports unencrypted communication. The code is written in C using the CC65 compiler and IP65 library, which provides TCP/IP functionality. The project demonstrates the challenges of working with limited hardware resources and the importance of understanding low-level protocols like Bolt.
Aug 27, 2024
5,866 words in the original blog post.
The new feature `CALL {}… IN CONCURRENT TRANSACTIONS` (CICT) in Neo4j allows for concurrent writes to Cypher subqueries, which can significantly improve performance, especially for large-scale data inserts or graph updates. This feature is particularly useful when dealing with huge transactions that would result in memory issues. By using CICT, users can split their transactions into batches of rows, breaking them down into smaller transactions that consume less memory. The feature uses a Cypher-native way to execute these batched subqueries in a single CPU thread, not in parallel. This allows for more efficient use of system resources and improved performance compared to using external libraries like APOC. The author tested CICT with a simple experiment loading 2 million nodes into an empty database, achieving significant speedups with concurrent transactions and batch sizes. The optimal configuration appears to be small batch sizes with high concurrency, but the database itself can often determine the best settings. Overall, CICT provides a simpler and cleaner way to execute large-scale data loads and graph updates, with performance comparable to APOC without its drawbacks.
Aug 20, 2024
1,701 words in the original blog post.
In this week's edition of This Week in Neo4j, the focus is on Knowledge Graphs and how they work, with a deep dive into their concept and organization. The team also explores how to start with Neo4j, learn about retrieving info from graphs, embeddings for chatbots, and analyzing Q1 earnings from PepsiCo. Additionally, there's an opportunity to join the Neo4j User Research panel, where participants can share their experiences and influence future products. Upcoming events include a livestream on Cognitive Sciences and Dynamic GraphRAG, meetups in London and other locations, and the registration for Nodes 2024 is now open. The community also features José Domínguez, Co-Founder of Blar, who presented on graph-powered code debugging with GenAI. Furthermore, articles cover Knowledge Graphs, getting started with Neo4j, building a chatbot using graphs and embeddings, and analyzing PepsiCo's Q1 earnings in a knowledge graph.
Aug 17, 2024
491 words in the original blog post.
The text discusses creating a Neo4j GraphRAG workflow using LangChain and LangGraph, two AI frameworks. The workflow involves generating Cypher query language with a Large Language Model (LLM), submitting the generated query to a graph database, retrieving query output, and returning a response based on the initial query and graph response. The introduction of Neo4j vector indexing capabilities enables semantic queries. The text provides an example of how to use LangGraph to create a workflow that combines graph query and vector search, allowing for more accurate results. The workflow consists of several components, including a conditional entry point, nodes for prompt generation, vector search, and graph query, as well as edges connecting these components. The text also discusses the importance of data in the GraphState, which represents the state of the graph, and how to access this data through the state when defining a node or function.
Aug 16, 2024
2,254 words in the original blog post.
The VectorCypherRetriever class from the GraphRAG Python package enables users to build a simple GraphRAG application by incorporating a graph-traversal step in addition to an initial vector retrieval step. This allows the LLM to answer certain questions about a knowledge graph that it would not have been able to answer using the VectorRetriever class alone. By utilizing Cypher queries, users can specify exactly what additional information to fetch along with the node retrieved through the initial vector search step. The package provides an OpenAI key for exporting and authentication purposes, and its code is open source, available on GitHub. Users are encouraged to use the package in their projects and share their insights via comments or on the GraphRAG Discord channel.
Aug 16, 2024
1,096 words in the original blog post.
This blog post details how to ingest data to later be used by a vector and GraphRAG agent using Milvus and Neo4j. Traditional RAG systems rely solely on vector databases to retrieve relevant documents, but incorporating Neo4j allows for the capture of relationships between entities and concepts, providing a more nuanced understanding of the information. To build this ingestion process, several technologies are needed, including LangChain, Ollama, Milvus, Neo4j, and Dotenv. The agent will require retrieving information from both a Milvus Vectorstore and a Neo4j Graph Database. The ingestion process involves reading source data, chunking the text content into smaller elements, upserting vector data into a local Milvus instance, and converting source documents into structured graph documents using an LLM. These graph documents can then be added to a Neo4j database instance. Running this process will output the number of documents and chunks created, as well as the nodes and relationships in the Neo4j database. The code presented in this article can be found on GitHub, with plans for future articles on creating agents using LangGraph to query both datastores for answers.
Aug 16, 2024
1,008 words in the original blog post.
The GraphRAG library is integrated into Neo4j to generate natural language summaries of communities of entities and relationships found in a knowledge graph. After constructing the knowledge graph, the GraphRAG library uses Leiden community detection algorithm and LLM prompting to extract relevant information. The extracted data can be stored in Neo4j for downstream analysis, visualization, and retrieval. A high-level indexing pipeline is implemented, allowing users to skip the graph extraction process. The dataset used is "A Christmas Carol" by Charles Dickens, which is freely accessible via the Gutenberg Project. The authors tested different configuration options, such as entity types and max gleanings value, to optimize the extraction process. They also evaluated the performance of the GraphRAG library using metrics like entity count distribution, node degree distribution, and community size per hierarchical level. To retrieve relevant information from the extracted data, a local retriever is implemented using LangChain and LlamaIndex orchestration frameworks. The global retriever architecture is also demonstrated, which iterates over all communities on a specified hierarchical level to generate intermediate summaries and a final response.
Aug 13, 2024
3,434 words in the original blog post.
The text discusses a project that utilizes Relik, a library with models for entity linking and relationship extraction, to extract structured information from unstructured news articles. The process involves setting up a Neo4j graph database to store the extracted information and using LlamaIndex to define connections between entities in the data. A coreference resolution model is used to identify expressions that refer to the same entity, and then an embedding model and a large language model are used to embed entities and answer questions about them. The project uses a news dataset obtained via Diffbot API and applies the Relik models to extract relationships and perform question answering.
Aug 12, 2024
838 words in the original blog post.
This week in Neo4j covers the history of SQL iterations and its relation to the recently published GQL standard for querying property graphs. The newsletter also discusses building a Healthcare Knowledge Graph, customizing the Property Graph Index in LlamaIndex, and features a podcast with Ashleigh Faith discussing pragmatic knowledge graphs. Additionally, it highlights upcoming events such as conferences, meetups, and the NODES 2024 conference registration is now open. Dmitrii Kamaev is featured as a community member, showcasing his expertise in biomedical research and software development. The newsletter also shares a post by Sophia Yang highlighting the use of GraphRAG with Neo4j for extracting knowledge from content sources.
Aug 10, 2024
534 words in the original blog post.
Easy Local Neo4j Cluster Setup Using k3d and K3s on Mac in 10 Minutes` is an article that guides readers through setting up a local Neo4j cluster using the lightweight wrapper `k3d` for running `K3s` (Rancher Lab's minimal Kubernetes distribution) in Docker. The setup requires minimal prerequisites, including Docker Desktop or Podman and Homebrew, with optional installation of `kubectl`, `Helm`, and `cypher-shell`. The article walks readers through installing `k3d`, creating a 3-node cluster, configuring the Neo4j Helm Charts repository, deploying the cluster, verifying its status, and accessing it using `Cypher` to confirm connectivity. This setup is suitable for both ARM and non-ARM Macs.
Aug 09, 2024
942 words in the original blog post.
The text discusses building a knowledge graph-based agent using Llama 3.1, NVIDIA NIM, and LangChain. The author argues that retrieval systems over structured information, particularly knowledge graphs, offer more consistent and robust solutions than relying entirely on large language models (LLMs) to generate database queries. They propose using dynamic query generation with function-calling capabilities to control the query generation process and ensure user input flexibility. The agent is designed to use a tool that retrieves common side effects of drugs from a knowledge graph, accepting optional parameters for drug name, patient age range, and drug manufacturer. The author demonstrates how to set up the necessary components, including the knowledge graph, LLM environment, and agent configuration, using tools like Neo4j, NVIDIA NIM, and LangChain. They highlight the benefits of function-calling capabilities in open-source models like Llama 3.1, enabling more structured interactions with external data sources and tools.
Aug 08, 2024
1,620 words in the original blog post.
A senior Data Scientist at Neo4j explores using embeddings to represent string edit distance in Neo4j, a graph database. The author uses a convolutional neural network (CNN) to create an embedding vector that represents the spelling of a string, allowing for efficient comparison of strings with similar edits. By generating embeddings and sending them to Neo4j, the author creates a graph projection and uses K-nearest neighbors to identify pairs of strings with low edit distance. The results are compared to record linkage methods, showing that the CNN approach is faster but may miss certain pairs due to its reliance on a specific blocking scheme. Overall, the author concludes that using embeddings has potential for inclusion in graph-based entity resolution pipelines.
Aug 06, 2024
1,364 words in the original blog post.
Graph databases offer a deeper understanding of organizational risk by providing a more structured and connected view of risk data, allowing for better visualization and querying capabilities. This enables the identification of crown jewel assets, maximal impact with minimum assets, similar risks based on description, and predicting severity scores, ultimately reducing subjectivity and duplicates in risk assessments. By leveraging graph algorithms, machine learning, and advanced features like vector indexes and node embeddings, organizations can gain a more nuanced understanding of their organizational risk landscape.
Aug 01, 2024
1,329 words in the original blog post.