/NaLLM

Repository for the NaLLM project

Primary LanguagePythonApache License 2.0Apache-2.0

Project NaLLM

Welcome to the NaLLM project repository, where we are exploring and demonstrating the synergies between Neo4j and Large Language Models (LLMs). As a part of our ongoing project, we are focusing on two primary use cases - a Natural Language Interface to a Knowledge Graph and Creating a Knowledge Graph from Unstructured Data.

This repository houses both backend and frontend code, designed and organized to facilitate an intuitive journey through our project.

Blog posts

During this project we're also writing blog posts where we deep dive into our learnings and explorations.

  1. https://medium.com/neo4j/harnessing-large-language-models-with-neo4j-306ccbdd2867
  2. https://medium.com/neo4j/knowledge-graphs-llms-fine-tuning-vs-retrieval-augmented-generation-30e875d63a35

Repository Structure

Our repository is designed with an efficient and logical structure for ease of navigation:

  • Backend Code: The backend code is categorized based on use cases. This allows you to delve directly into the area of your interest and understand the mechanics at work behind the scenes.

  • Frontend Code: The frontend code is organized more generically, enabling you to understand the common interface aspects that span across different use cases.

Running the Demos

To simplify the process of running the demos, we have incorporated scripts that generate Docker images. To use these, you'll need to:

  1. Navigate into the corresponding use case directory.
  2. Follow the detailed instructions provided within each directory to build and run the Docker images.

Please note that you'll need Docker installed on your machine to build and run these images. If you haven't already, you can download Docker from here.

Contributing

We welcome contributions and feedback to improve our project and demonstrations. Please feel free to raise issues or submit pull requests.

Note

We want to emphasize that the field of AI and specifically LLMs is rapidly evolving. As such, the information, assumptions, and code contained within this repository are based on our current understanding and are subject to change as new data and technological advancements become available.

Thank you for your interest in our project. We hope you find this repository useful and informative. Stay tuned for more updates as we continue to explore the fascinating world of Neo4j and LLMs!