Jason Haley

Ramblings from an Independent Consultant

Study Notes: Graph RAG - Property Graph RAG (The Projects)

Last week I wrote about the notebook I created when I was working out the flow of the property graph RAG implementation. In this entry I will go through the two projects I created to provide some reusable code as well as allow for better experimentation: Related posts: Study Notes: Graph RAG - Property Graph RAG Study Notes: Graph RAG - Property Graph RAG (The Notebook) NOTE: In order to get the most out of this blog post, you should first read the related two posts. Where To Get The Code The code for this entry is in my Github repo semantic-kernel-getting-started under the samples/demos folder: PropertyGraphIngestor - is the console application that extracts entities from text documents and populates a Neo4j db PropertyGraphRAG - is the console application that does property graph RAG …

Study Notes: Graph RAG - Property Graph RAG (The Notebook)

Monday I posted my notes on this last month’s study topic of property graph RAG, which has the general information I’ve collected. In this entry I want to go through some code I created in a polyglot notebook (ie. a notebook that has C# code instead of python), when I was working through the steps needed for a property graph RAG application. Related posts: Study Notes: Graph RAG - Property Graph RAG Study Notes: Graph RAG - Property Graph RAG (The Projects) Where To Get The Code The code for this entry is in my Github repo semantic-kernel-getting-started under the notebooks folder: 1_PropertyGraphRAG.ipynb - is my initial notebook for creating the steps needed for a property graph RAG app 2_PropertyGraphRAG.ipynb - has multiple changes that improve the final retrieval step and …

Study Notes: Graph RAG - Property Graph RAG

This past month I’ve been focusing on Graph RAG. This entry is an attempt to capture some lessons learned and a place to itemize all the resources I’ve found useful. Related posts: Study Notes: Graph RAG - Property Graph RAG (The Notebook) Study Notes: Graph RAG - Property Graph RAG (The Projects) NOTE: My approach to this topic was to find a way to improve a typical RAG implementation that only uses vector similarity searching. Background For the past 5 or 6 months, I’ve casually been reading about Graph RAG but not taken a deep dive into it - until this past month. The majority of the videos, articles and code samples out there labeled as “Graph RAG” are about Knowledge or Property Graph RAG. They typically include a graph database (Neo4j is popular), often …

Study Notes: Text-to-SQL Code Sample

Yesterday I posted my notes from this week’s study topic of Text-to-SQL, which if you haven’t read it - provides more information and resources about the topic. In this entry I want to walk through a code sample I put together after playing with a few samples this week. Where To Get The Code The code for this entry is in my GitHub repo semantic-kernel-getting-started under the samples/demos/Text-to-Sql directory. Originally I considered making this a review of the NL2SQL code sample, but I ended up needing to make some changes to it, so I just copied over some of their code for my sample - that is why the nl2sql.library project is there (also there is a Nl2Sql folder in the TextToSqlConsole project with some other files from their repo). If you are looking into Text-to-SQL, I …

Study Notes: Text-to-SQL

This week I’ve been researching Text-to-SQL (also known as Natural Language to SQL), below are my study notes to compile all the resources I’ve found on the topic to date. There is also a corresponding blog entry that walks through a code example. NOTE: I am approaching this topic specifically looking at how it can be used to extend usage scenarios in a RAG application. Background Text-to-SQL (or Natural Language to SQL) is a pattern where the objective is to have an LLM generate SQL statements for a database using natural language. How it Works Similar to RAG (Retrieval Augmented Generation), Text-to-SQL is achieved by augmenting the prompt passed to the LLM with necessary schema information to help the LLM construct the proper SQL statement for the user request. NOTE: …