← Back to projects

Project 04

Airline Graph-RAG Assistant

A grounded airline analytics assistant built around survey data, a Neo4j knowledge graph, and optional semantic retrieval.

What it is

Airline Graph-RAG Assistant is a Streamlit application that combines airline survey analytics stored in Neo4j with optional semantic retrieval using embeddings.

Why I built it

Airline survey data is easier to explore when structured relationships and relevant semantic context can be retrieved together without allowing generated answers to drift beyond the underlying data.

What I implemented

  • Built a Python importer that turns airline survey records into a Neo4j knowledge graph.
  • Added graph-backed analytics and optional semantic retrieval with cached embeddings.
  • Created a Streamlit interface for asking questions and exploring grounded results.
  • Kept external language models optional so the application can run in retrieval-only mode.

How it works

  1. 01

    Import survey data

    The importer reads airline survey records and creates the corresponding entities and relationships in Neo4j.

  2. 02

    Query the graph

    A question is matched to graph-backed analytics over flights, routes, fleets, and survey responses.

  3. 03

    Retrieve semantic context

    When enabled, embeddings retrieve additional relevant flight data for the question.

  4. 04

    Present grounded results

    The Streamlit interface displays an answer grounded in retrieved graph results, with external language models remaining optional.

Important features

  • Neo4j knowledge graph
  • Airline survey analytics
  • Optional semantic retrieval
  • Cached embeddings
  • Retrieval-only mode
  • Streamlit interface

Technical challenges

Grounding every response

The retrieval pipeline keeps answers tied to graph results rather than relying on unsupported model knowledge.

Supporting optional providers

Semantic retrieval and external language-model providers can be selected when credentials are available without being required for graph analytics.

Keeping embeddings current

Cached embedding files are invalidated when the selected model or retrieved flight data changes.